private Composite createPresetTableContainer()

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;
	}