in src/application/org.openjdk.jmc.console.agent/src/main/java/org/openjdk/jmc/console/agent/manager/wizards/PresetManagerPage.java [96:232]
private Composite createPresetTableContainer(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new FillLayout());
tableInspector = new TableInspector(container,
TableInspector.MULTI | TableInspector.ADD_BUTTON | TableInspector.EDIT_BUTTON
| TableInspector.DUPLICATE_BUTTON | TableInspector.REMOVE_BUTTON
| TableInspector.IMPORT_FILES_BUTTON | TableInspector.EXPORT_FILE_BUTTON) {
@Override
protected void addColumns() {
addColumn(ID_PRESET, new ColumnLabelProvider() {
@Override
public String getText(Object element) {
if (!(element instanceof IPreset)) {
throw new IllegalArgumentException("element must be an IPreset"); // $NON-NLS-1$
}
IPreset preset = (IPreset) element;
return preset.getFileName() + " - " + preset.getEvents().length + " "
+ Messages.PresetManagerPage_MESSAGE_EVENTS;
}
@Override
public Image getImage(Object element) {
return AgentPlugin.getDefault().getImage(AgentPlugin.ICON_AGENT);
}
});
}
@Override
protected void onAddButtonSelected(IStructuredSelection selection) {
IPreset preset = repository.createPreset();
while (displayWizard(preset)) {
try {
repository.addPreset(preset);
} catch (IllegalArgumentException | IOException e) {
if (DialogToolkit.openConfirmOnUiThread(
Messages.PresetManagerPage_MESSAGE_PRESET_MANAGER_UNABLE_TO_SAVE_THE_PRESET,
e.getLocalizedMessage())) {
continue;
}
}
break;
}
tableInspector.getViewer().refresh();
}
@Override
protected void onEditButtonSelected(IStructuredSelection selection) {
IPreset original = (IPreset) selection.getFirstElement();
IPreset workingCopy = original.createWorkingCopy();
while (displayWizard(workingCopy)) {
try {
repository.updatePreset(original, workingCopy);
} catch (IllegalArgumentException | IOException e) {
if (DialogToolkit.openConfirmOnUiThread(
Messages.PresetManagerPage_MESSAGE_PRESET_MANAGER_UNABLE_TO_SAVE_THE_PRESET,
e.getLocalizedMessage())) {
continue;
}
}
break;
}
tableInspector.getViewer().refresh();
}
@Override
protected void onDuplicateButtonSelected(IStructuredSelection selection) {
IPreset original = (IPreset) selection.getFirstElement();
IPreset duplicate = original.createDuplicate();
try {
repository.addPreset(duplicate);
} catch (IllegalArgumentException | IOException e) {
DialogToolkit.openConfirmOnUiThread(
Messages.PresetManagerPage_MESSAGE_PRESET_MANAGER_UNABLE_TO_SAVE_THE_PRESET,
e.getLocalizedMessage());
}
tableInspector.getViewer().refresh();
}
@Override
protected void onRemoveButtonSelected(IStructuredSelection selection) {
for (Object preset : selection) {
repository.removePreset((IPreset) preset);
}
tableInspector.getViewer().refresh();
}
@Override
protected void onImportFilesButtonSelected(IStructuredSelection selection) {
String[] files = openFileDialog(Messages.PresetManagerPage_MESSAGE_IMPORT_EXTERNAL_PRESET_FILES,
new String[] {PRESET_XML_EXTENSION}, SWT.OPEN | SWT.MULTI);
if (files.length != 0) {
for (String path : files) {
File file = new File(path);
try {
repository.importPreset(file);
} catch (IOException | SAXException e) {
DialogToolkit.openConfirmOnUiThread(
Messages.PresetManagerPage_MESSAGE_PRESET_MANAGER_UNABLE_TO_IMPORT_THE_PRESET,
e.getLocalizedMessage());
}
}
}
tableInspector.getViewer().refresh();
}
@Override
protected void onExportFileButtonSelected(IStructuredSelection selection) {
String[] files = openFileDialog(Messages.PresetManagerPage_MESSAGE_EXPORT_PRESET_TO_A_FILE,
new String[] {PRESET_XML_EXTENSION}, SWT.SAVE | SWT.SINGLE);
if (files.length == 0) {
return;
}
File file = new File(files[0]);
try {
repository.exportPreset((IPreset) selection.getFirstElement(), file);
} catch (IOException e) {
DialogToolkit.openConfirmOnUiThread(
Messages.PresetManagerPage_MESSAGE_PRESET_MANAGER_UNABLE_TO_EXPORT_THE_PRESET,
e.getLocalizedMessage());
}
}
};
tableInspector.setContentProvider(new PresetTableContentProvider());
return container;
}