List of usage examples for org.eclipse.jface.preference PreferenceDialog open
public int open()
From source file:org.dawnsci.plotting.tools.diffraction.DiffractionTool.java
License:Open Source License
private void createActions() { final Action exportMeta = new Action("Export metadata to file", Activator.getImageDescriptor("icons/mask-export-wiz.png")) { public void run() { try { IWizard wiz = EclipseUtils.openWizard(PersistenceExportWizard.ID, false); WizardDialog wd = new WizardDialog(Display.getCurrent().getActiveShell(), wiz); wd.setTitle(wiz.getWindowTitle()); wd.open();//from ww w . j a v a2 s .c om } catch (Exception e) { logger.error("Problem opening export!", e); } } }; final Action importMeta = new Action("Import metadata from file", Activator.getImageDescriptor("icons/mask-import-wiz.png")) { public void run() { try { IWizard wiz = EclipseUtils.openWizard(PersistenceImportWizard.ID, false); WizardDialog wd = new WizardDialog(Display.getCurrent().getActiveShell(), wiz); wd.setTitle(wiz.getWindowTitle()); wd.open(); } catch (Exception e) { logger.error("Problem opening import!", e); } } }; final Action showDefault = new Action("Show the original/default value column", Activator.getImageDescriptor("icons/plot-tool-diffraction-default.gif")) { public void run() { defaultColumn.getColumn().setWidth(isChecked() ? 80 : 0); defaultColumn.getColumn().setResizable(!isChecked()); } }; showDefault.setChecked(false); final Action reset = new Action("Reset selected field", Activator.getImageDescriptor("icons/reset.gif")) { @Override public void run() { final TreeNode node = (TreeNode) ((StructuredSelection) viewer.getSelection()).getFirstElement(); if (node instanceof NumericNode) { ((NumericNode<?>) node).reset(); viewer.refresh(node); } } }; final Action resetAll = new Action("Reset all fields", Activator.getImageDescriptor("icons/reset_red.png")) { @Override public void run() { boolean ok = MessageDialog.openConfirm(Display.getDefault().getActiveShell(), "Confirm Reset All", "Are you sure that you would like to reset all values?"); if (!ok) return; filteredTree.clearText(); if (service.getLockedDiffractionMetaData() != null) { model.reset(); viewer.refresh(); resetExpansion(); } else { model.reset(); createDiffractionModel(true); viewer.refresh(); } } }; final Action copy = new Action("Copy value", Activator.getImageDescriptor("icons/copy.gif")) { @Override public void run() { copiedNode = (TreeNode) ((StructuredSelection) viewer.getSelection()).getFirstElement(); } }; final Action paste = new Action("Paste value", Activator.getImageDescriptor("icons/paste.gif")) { @SuppressWarnings("unchecked") @Override public void run() { if (copiedNode != null) { Object object = ((StructuredSelection) viewer.getSelection()).getFirstElement(); if (object instanceof NumericNode) { NumericNode<Quantity> nn = (NumericNode<Quantity>) object; if (!nn.isEditable()) { MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Cannot paste", "The item '" + nn.getLabel() + "' is not writable.\n\nPlease choose a different value to paste to."); return; } try { nn.mergeValue(copiedNode); } catch (Throwable e) { try { if (EclipseUtils.getActivePage() .findView("org.eclipse.pde.runtime.LogView") == null) { EclipseUtils.getActivePage().showView("org.eclipse.pde.runtime.LogView"); } } catch (PartInitException pe) { // Ignored. } IStatus status = new Status(IStatus.INFO, Activator.PLUGIN_ID, "Cannot past into '" + nn.getLabel() + "'", e); Activator.getPluginLog().log(status); } viewer.refresh(object); } } } }; final Action centre = new Action("One-click beam centre", IAction.AS_PUSH_BUTTON) { @Override public void run() { logger.debug("1-click clicked"); IPlottingSystem plotter = getPlottingSystem(); if (plotter == null) { logger.debug("No plotting system found"); return; } try { clearRegions(plotter); if (tmpRegion != null) { plotter.removeRegion(tmpRegion); } tmpRegion = plotter.createRegion(RegionUtils.getUniqueName("BeamCentrePicker", plotter), IRegion.RegionType.POINT); tmpRegion.setUserRegion(false); tmpRegion.setVisible(false); refine.setEnabled(true); } catch (Exception e) { logger.error("Cannot add beam centre", e); } } }; centre.setImageDescriptor(Activator.getImageDescriptor("icons/centre.png")); final Action fitRing = new Action("Fit ring", IAction.AS_PUSH_BUTTON) { @Override public void run() { logger.debug("Fit ring clicked"); IPlottingSystem plotter = getPlottingSystem(); if (plotter == null) { logger.debug("No plotting system found"); return; } try { clearRegions(plotter); if (tmpRegion != null) { plotter.removeRegion(tmpRegion); } tmpRegion = plotter.createRegion(RegionUtils.getUniqueName("RingPicker", plotter), IRegion.RegionType.ELLIPSEFIT); tmpRegion.setShowLabel(false); tmpRegion.setUserRegion(false); tmpRegion.addROIListener(roiListener); findOuter.setEnabled(true); refine.setEnabled(true); } catch (Exception e) { logger.error("Cannot add ring", e); } } }; fitRing.setImageDescriptor(Activator.getImageDescriptor("icons/eclipsecirclepoints.png")); fitRing.setToolTipText("Select 3 or 4 points on ring to fit a circle or 5 points or more for an ellipse"); refine = new Action("Refine beam centre", IAction.AS_PUSH_BUTTON) { class Compare implements Comparator<IPeak> { @Override public int compare(IPeak o1, IPeak o2) { if (o1.getPosition() > o2.getPosition()) { return 1; } if (o1.getPosition() < o2.getPosition()) { return -1; } return 0; } } @SuppressWarnings("unchecked") private List<IPeak> loadPeaks() { IToolPage radialTool = getToolSystem() .getToolPage("org.dawb.workbench.plotting.tools.radialProfileTool"); IToolPage fittingTool = ((IToolPageSystem) radialTool.getToolPlottingSystem()) .getToolPage("org.dawb.workbench.plotting.tools.fittingTool"); if (fittingTool != null) { List<IPeak> fittedPeaks = (List<IPeak>) fittingTool.getAdapter(IPeak.class); if (fittedPeaks != null) { Collections.sort(fittedPeaks, new Compare()); ArrayList<IPeak> peaks = new ArrayList<IPeak>(fittedPeaks.size()); if (peaks != null && peaks.size() > 0) peaks.clear(); for (IPeak peak : fittedPeaks) { peaks.add(peak); } return peaks; } } return null; } @Override public void run() { final IPlottingSystem plotter = getPlottingSystem(); final IImageTrace t = getImageTrace(); if (tmpRegion.getRegionType() == RegionType.ELLIPSEFIT || tmpRegion.getRegionType() == RegionType.CIRCLEFIT) { final Display display = control.getDisplay(); if (t != null) { Job job = new Job("Circle fit refinement") { @Override protected IStatus run(final IProgressMonitor monitor) { IROI roi = runEllipseFit(monitor, display, plotter, t, tmpRegion.getROI(), true, RADIAL_DELTA); if (roi == null) return Status.CANCEL_STATUS; return drawRing(monitor, display, plotter, roi, true); } }; job.setPriority(Job.SHORT); // job.setUser(true); job.schedule(); } return; } try { Collection<IRegion> regions = plotter.getRegions(RegionType.SECTOR); if (regions.size() == 0) { throw new IllegalStateException(); } SectorROI sroi = (SectorROI) regions.iterator().next().getROI(); Dataset dataset = (Dataset) t.getData(); Dataset mask = (Dataset) t.getMask(); final BeamCenterRefinement beamOffset = new BeamCenterRefinement(dataset, mask, sroi); List<IPeak> peaks = loadPeaks(); if (peaks == null) throw new Exception("Cannot find peaks!"); beamOffset.setInitPeaks(peaks); beamOffset.optimize(getDiffractionMetaData().getDetector2DProperties().getBeamCentreCoords()); } catch (Throwable ne) { /** * Long discussion with Iralki on this. The algorithm must be set up in a particular way to * run at the moment. */ ConfigurableMessageDialog dialog = new ConfigurableMessageDialog( Display.getDefault().getActiveShell(), "Experimental Refinement Algorithm Incomplete", null, "Could not read peak positions to start refinement.\nThis tool is still under development. To perform the refinement, use the following procedure:\n\n" + "1. Open the 'Diffraction' tool in a dedicated view (action on the right of the toolbar).\n" + "2. Open the 'Radial Profile' tool (from the plot containing the image).\n" + "3. Select a sector which bisects the rings wanted.\n" + "4. In the 'Radial Profile' tool press 'Lock to Metadata' button.\n" + "5. Select 'q' from the 'Select x axis values' list in the 'Radial Profile' toolbar.\n" + "6. In the 'Radial Profile' tool select peak fitting.\n" + "7. Set up a peak fit on all the rings which the radial profile found.\n" + "8. Now run the refine action in the diffraction tool again.\n\n" + "Please note that the algorithm may not converge. A job is run for the refinement which may be stopped.\n" + "Please contact your support representative for more training/help with refinement.\n\n" + "(NOTE: This dialog can be kept open as a guide while doing the proceedure.)", MessageDialog.INFORMATION, new String[] { IDialogConstants.OK_LABEL }, 0); dialog.setShellStyle(SWT.SHELL_TRIM | SWT.MODELESS); dialog.open(); } } }; refine.setImageDescriptor(Activator.getImageDescriptor("icons/refine.png")); refine.setEnabled(false); findOuter = new Action("Find outer rings", IAction.AS_PUSH_BUTTON) { @Override public void run() { logger.debug("Find outer rings clicked"); if (tmpRegion.getRegionType() == RegionType.ELLIPSEFIT || tmpRegion.getRegionType() == RegionType.CIRCLEFIT) { final IPlottingSystem plotter = getPlottingSystem(); final IImageTrace t = getImageTrace(); final Display display = control.getDisplay(); if (t != null) { Job job = new Job("Ellipse rings finding") { @Override protected IStatus run(final IProgressMonitor monitor) { IROI roi = tmpRegion.getROI(); boolean circle = roi instanceof CircularROI; roi = runEllipseFit(monitor, display, plotter, t, roi, circle, RADIAL_DELTA); if (roi == null) return Status.CANCEL_STATUS; IStatus stat = drawRing(monitor, display, plotter, roi, circle); if (stat.isOK()) { stat = runFindOuterRings(monitor, display, plotter, t, roi); } return stat; } }; job.setPriority(Job.SHORT); // job.setUser(true); job.schedule(); } return; } else { ConfigurableMessageDialog dialog = new ConfigurableMessageDialog( Display.getDefault().getActiveShell(), "Rings locator - no initial ring", null, "Please define an initial ring", MessageDialog.INFORMATION, new String[] { IDialogConstants.OK_LABEL }, 0); dialog.setShellStyle(SWT.SHELL_TRIM | SWT.MODELESS); dialog.open(); } } }; findOuter.setImageDescriptor(Activator.getImageDescriptor("icons/findmorerings.png")); findOuter.setToolTipText("Find outer rings"); findOuter.setEnabled(false); calibrate = new Action("Calibrate against standard", IAction.AS_PUSH_BUTTON) { @Override public void run() { CalibrationStandards standards = CalibrationFactory.getCalibrationStandards(); String name = standards.getSelectedCalibrant(); if (name != null) { logger.debug("Calibrating against {}", name); final List<HKL> spacings = standards.getCalibrationPeakMap(name).getHKLs(); final IPlottingSystem plotter = getPlottingSystem(); final IImageTrace t = getImageTrace(); final Display display = control.getDisplay(); if (t != null) { Job job = new Job("Calibrating detector") { @Override protected IStatus run(final IProgressMonitor monitor) { return runCalibrateDetector(monitor, display, plotter, spacings); } }; job.setPriority(Job.SHORT); // job.setUser(true); job.schedule(); } return; } else { ConfigurableMessageDialog dialog = new ConfigurableMessageDialog( Display.getDefault().getActiveShell(), "Calibrator - no standard selected", null, "Please define calibrant", MessageDialog.INFORMATION, new String[] { IDialogConstants.OK_LABEL }, 0); dialog.setShellStyle(SWT.SHELL_TRIM | SWT.MODELESS); dialog.open(); } } }; calibrate.setImageDescriptor(Activator.getImageDescriptor("icons/findmorerings.png")); calibrate.setToolTipText( "Calibrate detector using rings - this is an experimental feature and does not work robustly"); calibrate.setEnabled(false); if (lock == null) lock = new Action( "Lock the diffraction data and apply it to newly opened files.\nThis will also leave the rings on the image when the tool is deactivated.", IAction.AS_CHECK_BOX) { @Override public void run() { if (isChecked()) { IDiffractionMetadata data = activeDiffractionTool.getDiffractionMetaData().clone(); service.setLockedDiffractionMetaData(data); } else { // Also clears cached data because we may have // changed the meta data. service.setLockedDiffractionMetaData(null); } activeDiffractionTool.createDiffractionModel(true); } }; lock.setImageDescriptor(Activator.getImageDescriptor("icons/lock.png")); this.calPref = new Action("Configure Calibrants...") { @Override public void run() { PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DiffractionPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; Action configDetectors = new Action("Configure Detectors...") { @Override public void run() { PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DiffractionDetectorPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; Action configDefaultMeta = new Action("Configure Default Metadata...") { @Override public void run() { PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DiffractionDefaultsPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; this.calibrantActions = new MenuAction("Calibrants"); calibrantActions.setImageDescriptor(Activator.getImageDescriptor("/icons/calibrant_rings.png")); this.calibrantGroup = new CheckableActionGroup(); updateCalibrationActions(CalibrationFactory.getCalibrationStandards()); MenuAction dropdown = new MenuAction("Resolution rings"); dropdown.setImageDescriptor(Activator.getImageDescriptor("/icons/resolution_rings.png")); if (!hide) { augmenter = new DiffractionImageAugmenter(getPlottingSystem()); augmenter.addActions(dropdown); } IToolBarManager toolMan = getSite().getActionBars().getToolBarManager(); final MenuManager menuMan = new MenuManager(); // false by default if (!hide) { toolMan.add(importMeta); toolMan.add(exportMeta); toolMan.add(new Separator()); toolMan.add(lock); toolMan.add(new Separator()); toolMan.add(dropdown); toolMan.add(calibrantActions); toolMan.add(new Separator()); toolMan.add(centre); toolMan.add(fitRing); toolMan.add(refine); toolMan.add(findOuter); toolMan.add(calibrate); toolMan.add(new Separator()); toolMan.add(reset); toolMan.add(resetAll); toolMan.add(new Separator()); toolMan.add(showDefault); toolMan.add(new Separator()); } menuMan.add(dropdown); menuMan.add(centre); menuMan.add(fitRing); menuMan.add(refine); menuMan.add(findOuter); menuMan.add(calibrate); menuMan.add(new Separator()); menuMan.add(reset); menuMan.add(resetAll); menuMan.add(new Separator()); menuMan.add(copy); menuMan.add(paste); menuMan.add(new Separator()); menuMan.add(showDefault); menuMan.add(new Separator()); menuMan.add(calPref); final Menu menu = menuMan.createContextMenu(viewer.getControl()); viewer.getControl().setMenu(menu); if (!hide) { getSite().getActionBars().getMenuManager().add(new Separator()); getSite().getActionBars().getMenuManager().add(calPref); getSite().getActionBars().getMenuManager().add(configDetectors); getSite().getActionBars().getMenuManager().add(configDefaultMeta); getSite().getActionBars().getMenuManager().add(new Separator()); } }
From source file:org.dawnsci.plotting.tools.fitting.AbstractFittingTool.java
License:Open Source License
@Override public void createControl(Composite parent) { this.composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(1, false)); GridUtils.removeMargins(composite);/* w ww. j a v a 2 s . c o m*/ viewer = new TableViewer(composite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); createColumns(viewer); FittingViewerComparator vc = new FittingViewerComparator(); viewer.setComparator(vc); for (int i = 0; i < viewer.getTable().getColumnCount(); i++) { viewer.getTable().getColumn(i).addSelectionListener(getTableColumnSortListener(vc, i)); } viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH)); viewer.setContentProvider(createContentProvider()); createActions(); getSite().setSelectionProvider(viewer); this.viewUpdateListener = new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { final StructuredSelection sel = (StructuredSelection) event.getSelection(); if (fittedFunctions != null && sel != null && sel.getFirstElement() != null) { if (sel.getFirstElement() instanceof NullFunction) return; fittedFunctions.setSelectedFit((FittedFunction) sel.getFirstElement()); viewer.refresh(); } } }; viewer.addSelectionChangedListener(viewUpdateListener); algorithmMessage = new Link(composite, SWT.NONE); algorithmMessage.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); algorithmMessage.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (e.text != null && e.text.startsWith("configure")) { if (!isActive()) return; PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), FittingPreferencePage.ID, null, null); if (pref != null) pref.open(); } else { } } }); activate(); }
From source file:org.dawnsci.plotting.tools.fitting.OpenFittingToolPreferencesAction.java
License:Open Source License
@Override public void run() { PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), OpenFittingToolPreferencesAction.ID, new String[] { OpenFittingToolPreferencesAction.ID }, null); dialog.open(); }
From source file:org.dawnsci.plotting.tools.fitting.PeakFittingTool.java
License:Open Source License
/** * We use the old actions here for simplicity of configuration. * //from w w w.ja va2s. c o m * TODO consider moving to commands. */ protected void createActions() { final Action createNewSelection = new Action("New fit selection.", IAction.AS_PUSH_BUTTON) { public void run() { createNewFit(); } }; createNewSelection.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit.png")); getSite().getActionBars().getToolBarManager().add(createNewSelection); final Action addMode = new Action("Add peaks to those already found", IAction.AS_CHECK_BOX) { public void run() { setAddingPeaks(isChecked()); Activator.getPlottingPreferenceStore().setValue(FittingConstants.ADD_PEAK_MODE, isChecked()); if (!isChecked()) { if (fitRegion != null) { getPlottingSystem().removeRegion(fitRegion); fitRegion = null; } } } }; addMode.setImageDescriptor(Activator.getImageDescriptor("icons/add.png")); getSite().getActionBars().getToolBarManager().add(addMode); addMode.setChecked(Activator.getPlottingPreferenceStore().getBoolean(FittingConstants.ADD_PEAK_MODE)); setAddingPeaks(addMode.isChecked()); getSite().getActionBars().getToolBarManager().add(new Separator()); final Action showAnns = new Action("Show annotations at the peak position.", IAction.AS_CHECK_BOX) { public void run() { final boolean isChecked = isChecked(); Activator.getPlottingPreferenceStore().setValue(FittingConstants.SHOW_ANNOTATION_AT_PEAK, isChecked); if (fittedFunctions != null) fittedFunctions.setAnnotationsVisible(isChecked); } }; showAnns.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit-showAnnotation.png")); getSite().getActionBars().getToolBarManager().add(showAnns); showAnns.setChecked( Activator.getPlottingPreferenceStore().getBoolean(FittingConstants.SHOW_ANNOTATION_AT_PEAK)); final Action showTrace = new Action("Show fitting traces.", IAction.AS_CHECK_BOX) { public void run() { final boolean isChecked = isChecked(); Activator.getPlottingPreferenceStore().setValue(FittingConstants.SHOW_FITTING_TRACE, isChecked); if (fittedFunctions != null) fittedFunctions.setTracesVisible(isChecked); } }; showTrace.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit-showFittingTrace.png")); getSite().getActionBars().getToolBarManager().add(showTrace); showTrace .setChecked(Activator.getPlottingPreferenceStore().getBoolean(FittingConstants.SHOW_FITTING_TRACE)); final Action showPeak = new Action("Show peak lines.", IAction.AS_CHECK_BOX) { public void run() { final boolean isChecked = isChecked(); Activator.getPlottingPreferenceStore().setValue(FittingConstants.SHOW_PEAK_SELECTIONS, isChecked); if (fittedFunctions != null) fittedFunctions.setPeaksVisible(isChecked); } }; showPeak.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit-showPeakLine.png")); getSite().getActionBars().getToolBarManager().add(showPeak); showPeak.setChecked( Activator.getPlottingPreferenceStore().getBoolean(FittingConstants.SHOW_PEAK_SELECTIONS)); final Action showFWHM = new Action("Show selection regions for full width, half max.", IAction.AS_CHECK_BOX) { public void run() { final boolean isChecked = isChecked(); Activator.getPlottingPreferenceStore().setValue(FittingConstants.SHOW_FWHM_SELECTIONS, isChecked); if (fittedFunctions != null) fittedFunctions.setAreasVisible(isChecked); } }; showFWHM.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit-showFWHM.png")); getSite().getActionBars().getToolBarManager().add(showFWHM); showFWHM.setChecked( Activator.getPlottingPreferenceStore().getBoolean(FittingConstants.SHOW_FWHM_SELECTIONS)); final Separator sep = new Separator(getClass().getName() + ".separator1"); getSite().getActionBars().getToolBarManager().add(sep); final Action savePeak = new Action("Store peak.", IAction.AS_PUSH_BUTTON) { public void run() { try { fittedFunctions.saveSelectedPeak(getPlottingSystem()); } catch (Exception e) { logger.error("Cannot rename stored peak ", e); } viewer.refresh(); } }; savePeak.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit-savePeak.png")); getSite().getActionBars().getToolBarManager().add(savePeak); final Separator sep3 = new Separator(getClass().getName() + ".separator3"); getSite().getActionBars().getToolBarManager().add(sep3); final MenuAction peakType = new MenuAction("Peak type to fit"); peakType.setToolTipText("Peak type to fit"); peakType.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-peak-fit-peak-type.png")); CheckableActionGroup group = new CheckableActionGroup(); Action selectedPeakAction = null; final Map<String, Class<? extends IPeak>> peakFunctions = FunctionFactory.getPeakFns(); for (final String peakName : peakFunctions.keySet()) { final Action action = new Action(peakName, IAction.AS_CHECK_BOX) { public void run() { Activator.getPlottingPreferenceStore().setValue(FittingConstants.PEAK_TYPE, peakName); setChecked(true); if (fittingJob != null && isActive()) fittingJob.fit(false); peakType.setSelectedAction(this); } }; peakType.add(action); group.add(action); if (peakName.equals(Activator.getPlottingPreferenceStore().getString(FittingConstants.PEAK_TYPE))) { selectedPeakAction = action; } } if (selectedPeakAction != null) { peakType.setSelectedAction(selectedPeakAction); selectedPeakAction.setChecked(true); } getSite().getActionBars().getToolBarManager().add(peakType); getSite().getActionBars().getMenuManager().add(peakType); final Separator sep2 = new Separator(getClass().getName() + ".separator2"); getSite().getActionBars().getToolBarManager().add(sep2); this.tracesMenu = new MenuAction("Traces"); tracesMenu.setToolTipText("Choose trace for fit."); tracesMenu.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-trace-choice.png")); getSite().getActionBars().getToolBarManager().add(tracesMenu); getSite().getActionBars().getMenuManager().add(tracesMenu); this.numberPeaks = new MenuAction("Number peaks to fit"); numberPeaks.setToolTipText("Number peaks to fit"); group = new CheckableActionGroup(); final int npeak = Activator.getPlottingPreferenceStore() .getDefaultInt(FittingConstants.PEAK_NUMBER_CHOICES); for (int ipeak = 1; ipeak <= npeak; ipeak++) { final int peak = ipeak; final Action action = new Action("Fit " + String.valueOf(ipeak) + " Peaks", IAction.AS_CHECK_BOX) { public void run() { Activator.getPlottingPreferenceStore().setValue(FittingConstants.PEAK_NUMBER, peak); } }; action.setImageDescriptor(IconUtils.createIconDescriptor(String.valueOf(ipeak))); numberPeaks.add(action); group.add(action); action.setChecked(false); action.setToolTipText("Fit " + ipeak + " peak(s)"); } final Action preferences = new Action("Preferences...") { public void run() { if (!isActive()) return; PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), FittingPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; final Action npeaks = new Action("Fit n Peaks", IAction.AS_CHECK_BOX) { public void run() { preferences.run(); } }; npeaks.setImageDescriptor(IconUtils.createIconDescriptor("n")); numberPeaks.add(npeaks); group.add(npeaks); npeaks.setChecked(false); npeaks.setToolTipText("Fit n peaks"); final int ipeak = Activator.getPlottingPreferenceStore().getInt(FittingConstants.PEAK_NUMBER); if (ipeak < 11) { numberPeaks.setSelectedAction(ipeak - 1); numberPeaks.setCheckedAction(ipeak - 1, true); } else { numberPeaks.setSelectedAction(npeaks); npeaks.setChecked(true); } getSite().getActionBars().getToolBarManager().add(numberPeaks); //getSite().getActionBars().getMenuManager().add(numberPeaks); final Action clear = new Action("Clear all", Activator.getImageDescriptor("icons/plot-tool-peak-fit-clear.png")) { public void run() { clearAll(); } }; clear.setToolTipText("Clear all regions found in the fitting"); getSite().getActionBars().getToolBarManager().add(clear); getSite().getActionBars().getMenuManager().add(clear); final Action delete = new Action("Delete peak selected", Activator.getImageDescriptor("icons/delete.gif")) { public void run() { if (!isActive()) return; if (fittedFunctions != null) fittedFunctions.deleteSelectedFunction(getPlottingSystem()); pushFunctionsToPlotter(); viewer.refresh(); createNewFit(); } }; delete.setToolTipText("Delete peak selected, if any"); getSite().getActionBars().getToolBarManager().add(delete); getSite().getActionBars().getMenuManager().add(preferences); final Action export = new Action("Export...", IAction.AS_PUSH_BUTTON) { public void run() { try { EclipseUtils.openWizard(FittedPeaksExportWizard.ID, true); } catch (Exception e) { logger.error("Cannot open wizard " + FittedPeaksExportWizard.ID, e); } } }; final MenuManager menuManager = new MenuManager(); menuManager.add(clear); menuManager.add(delete); menuManager.add(savePeak); menuManager.add(new Separator()); menuManager.add(showAnns); menuManager.add(showTrace); menuManager.add(showPeak); menuManager.add(showFWHM); menuManager.add(new Separator()); menuManager.add(export); viewer.getControl().setMenu(menuManager.createContextMenu(viewer.getControl())); }
From source file:org.dawnsci.plotting.tools.grid.GridTool.java
License:Open Source License
private void createActions() { createToolPageActions();/* w w w . ja v a2 s . c o m*/ this.beamCenterAction = new Action("Beam centre", Activator.getImageDescriptor("/icons/beam_centre.png")) { @Override public void run() { drawBeamCentre(isChecked()); } }; beamCenterAction.setChecked(false); getSite().getActionBars().getToolBarManager().add(beamCenterAction); getSite().getActionBars().getToolBarManager().add(new Separator()); final Action preferences = new Action("Preferences...") { public void run() { //if (!isActive()) return; PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "uk.ac.diamond.scisoft.analysis.rcp.gridScanPreferencePage", null, null); if (pref != null) pref.open(); } }; getSite().getActionBars().getMenuManager().add(preferences); }
From source file:org.dawnsci.plotting.tools.InfoPixelTool.java
License:Open Source License
private void createActions() { final Action copy = new Action("Copy point values to clipboard", Activator.getImageDescriptor("icons/plot-tool-measure-copy.png")) { @Override//w w w .j a v a 2 s.c o m public void run() { if (!isActive()) return; final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); if (sel != null && sel.getFirstElement() != null) { Object selected = sel.getFirstElement(); if (selected instanceof IRegion) { final IRegion region = (IRegion) sel.getFirstElement(); if (region == null || region.getROI() == null) return; final IROI bounds = region.getROI(); if (bounds.getPointRef() == null) return; final Clipboard cb = new Clipboard(composite.getDisplay()); TextTransfer textTransfer = TextTransfer.getInstance(); cb.setContents(new Object[] { region.getName() + " " + bounds }, new Transfer[] { textTransfer }); } } } }; copy.setToolTipText("Copies the point values as text to clipboard which can then be pasted externally."); getSite().getActionBars().getToolBarManager().add(copy); getSite().getActionBars().getMenuManager().add(copy); final Action delete = new Action("Delete selected point", Activator.getImageDescriptor("icons/plot-tool-measure-delete.png")) { @Override public void run() { if (!isActive()) return; final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); // ignore table item at index 0 as represents current point if (sel != null && sel.getFirstElement() != null && viewer.getTable().getSelectionIndex() != 0) { final IRegion region = (IRegion) sel.getFirstElement(); getPlottingSystem().removeRegion(region); viewer.refresh(); } } }; delete.setToolTipText("Delete selected point, if there is one."); getSite().getActionBars().getToolBarManager().add(delete); getSite().getActionBars().getMenuManager().add(delete); final Separator sep = new Separator(getClass().getName() + ".separator1"); getSite().getActionBars().getToolBarManager().add(sep); getSite().getActionBars().getMenuManager().add(sep); final Action show = new Action("Show all vertex values", IAction.AS_CHECK_BOX) { @Override public void run() { if (!isActive()) return; final Object[] oa = ((IStructuredContentProvider) viewer.getContentProvider()).getElements(null); for (Object object : oa) { if (object instanceof IRegion) ((IRegion) object).setShowPosition(isChecked()); } } }; show.setToolTipText("Show vertices in all visible regions"); show.setImageDescriptor(Activator.getImageDescriptor("icons/plot-tool-measure-vertices.png")); final Action preferences = new Action("Preferences...") { public void run() { if (!isActive()) return; PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), InfoPixelPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; getSite().getActionBars().getToolBarManager().add(show); getSite().getActionBars().getMenuManager().add(show); getSite().getActionBars().getMenuManager().add(preferences); createRightClickMenu(); }
From source file:org.dawnsci.plotting.tools.powdercheck.PowderCheckTool.java
License:Open Source License
private void createActions() { final MenuAction modeSelect = new MenuAction("Select Check Mode"); fullImage = new Action("Full Image") { @Override//from ww w . j a va2 s. co m public void run() { modeSelect.setSelectedAction(this); sashForm.setMaximizedControl(system.getPlotComposite()); if (updatePlotJob == null) { update(); } if (updatePlotJob == null) return; updatePlotJob.cancel(); updatePlotJob.setCheckMode(PowderCheckMode.FullImage); updatePlotJob.schedule(); } }; fullImage.setToolTipText("Integrate the entire image, showing lines at calibrant positions"); fullImage.setImageDescriptor(Activator.getImageDescriptor("icons/pixel.png")); modeSelect.add(fullImage); modeSelect.setSelectedAction(fullImage); final Action quad = new Action("Sections") { @Override public void run() { modeSelect.setSelectedAction(this); sashForm.setMaximizedControl(system.getPlotComposite()); if (updatePlotJob == null) update(); updatePlotJob.cancel(); updatePlotJob.setCheckMode(PowderCheckMode.Quadrants); updatePlotJob.schedule(); } }; quad.setToolTipText("Integrate the 4 quadrants, showing lines at calibrant positions"); quad.setImageDescriptor(Activator.getImageDescriptor("icons/CalibrationCheck.png")); modeSelect.add(quad); final Action peakfit = new Action("Peak Fit") { @Override public void run() { modeSelect.setSelectedAction(this); Display.getDefault().syncExec(new Runnable() { @Override public void run() { viewer.getTable().clearAll(); } }); sashForm.setMaximizedControl(null); if (updatePlotJob == null) update(); updatePlotJob.cancel(); updatePlotJob.setCheckMode(PowderCheckMode.PeakFit); updatePlotJob.setAxisMode(xAxis); updatePlotJob.schedule(); } }; peakfit.setToolTipText("Integrate the entire image, peak fit, and compare with calibrant positions"); peakfit.setImageDescriptor(Activator.getImageDescriptor("icons/peakfit.png")); modeSelect.add(peakfit); final MenuAction axisSelect = new MenuAction("Select Axis"); final Action qAction = new Action("Q") { @Override public void run() { axisSelect.setSelectedAction(this); xAxis = XAxis.Q; updateAndRun(); } }; final Action tthAction = new Action("2\u03b8") { @Override public void run() { axisSelect.setSelectedAction(this); xAxis = XAxis.ANGLE; updateAndRun(); } }; final Action cake = new Action("Cake") { @Override public void run() { modeSelect.setSelectedAction(this); sashForm.setMaximizedControl(system.getPlotComposite()); updatePlotJob.cancel(); updatePlotJob.setCheckMode(PowderCheckMode.Cake); updatePlotJob.schedule(); } }; cake.setImageDescriptor(Activator.getImageDescriptor("icons/cake.png")); this.calPref = new Action("Configure Calibrants...") { @Override public void run() { PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DiffractionPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; this.calibrantActions = new MenuAction("Calibrants"); this.calibrantGroup = new CheckableActionGroup(); updateCalibrationActions(CalibrationFactory.getCalibrationStandards()); cake.setToolTipText("2D integration"); modeSelect.add(cake); axisSelect.add(qAction); axisSelect.add(tthAction); axisSelect.setSelectedAction(qAction); getSite().getActionBars().getToolBarManager().add(modeSelect); getSite().getActionBars().getToolBarManager().add(axisSelect); getSite().getActionBars().getMenuManager().add(modeSelect); getSite().getActionBars().getMenuManager().add(axisSelect); getSite().getActionBars().getMenuManager().add(this.calibrantActions); }
From source file:org.dawnsci.plotting.tools.region.MeasurementTool.java
License:Open Source License
protected void createActions() { getSite().getActionBars().getToolBarManager().add(getReselectAction()); getSite().getActionBars().getToolBarManager().add(new Separator()); if (getToolPageRole() == ToolPageRole.ROLE_2D) { final Action calibrate = new Action( "Calibrate axes using a measurement and apply these axes to other plots.\nThese axes can then be applied to other plots by keeping the\nmeasurement tool open using 'open in a dedicated view'.", IAction.AS_PUSH_BUTTON) { public void run() { MeasurementCalibrationDialog dialog = new MeasurementCalibrationDialog(MeasurementTool.this); dialog.open();//w w w . j a v a 2 s . com } }; calibrate.setImageDescriptor(Activator.getImageDescriptor("icons/measurement_calibrate.png")); final Action applyCalibrated = new Action( "Apply calibrated axes to any images opened while this tool is active.", IAction.AS_CHECK_BOX) { public void run() { updateCalibrateTraceListener(isChecked()); } }; applyCalibrated.setChecked(true); applyCalibrated.setImageDescriptor(Activator.getImageDescriptor("icons/axis.png")); updateCalibrateTraceListener(true); getSite().getActionBars().getToolBarManager().add(calibrate); getSite().getActionBars().getToolBarManager().add(applyCalibrated); getSite().getActionBars().getToolBarManager().add(new Separator()); } final Action exportRegion = new Action("Export region to file", Activator.getImageDescriptor("icons/mask-export-wiz.png")) { public void run() { try { IWizard wiz = EclipseUtils.openWizard(PersistenceExportWizard.ID, false); WizardDialog wd = new WizardDialog(Display.getCurrent().getActiveShell(), wiz); wd.setTitle(wiz.getWindowTitle()); wd.open(); } catch (Exception e) { logger.error("Problem opening import!", e); } } }; final Action importRegion = new Action("Import region from file", Activator.getImageDescriptor("icons/mask-import-wiz.png")) { public void run() { try { IWizard wiz = EclipseUtils.openWizard(PersistenceImportWizard.ID, false); WizardDialog wd = new WizardDialog(Display.getCurrent().getActiveShell(), wiz); wd.setTitle(wiz.getWindowTitle()); wd.open(); } catch (Exception e) { logger.error("Problem opening import!", e); } } }; final Action copy = new Action("Copy region values to clipboard", Activator.getImageDescriptor("icons/plot-tool-measure-copy.png")) { public void run() { if (!isActive()) return; final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); if (!(sel.getFirstElement() instanceof IRegion)) return; if (sel != null && sel.getFirstElement() != null) { final IRegion region = (IRegion) sel.getFirstElement(); if (region == null || region.getROI() == null) return; final IROI bounds = region.getROI(); if (bounds.getPointRef() == null) return; final Clipboard cb = new Clipboard(composite.getDisplay()); TextTransfer textTransfer = TextTransfer.getInstance(); cb.setContents(new Object[] { region.getName() + " " + bounds }, new Transfer[] { textTransfer }); } } }; copy.setToolTipText("Copies the region values as text to clipboard which can then be pasted externally."); final Action delete = new Action("Delete selected region", Activator.getImageDescriptor("icons/RegionDelete.png")) { public void run() { if (!isActive()) return; final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); if (!(sel.getFirstElement() instanceof IRegion)) return; if (sel != null && sel.getFirstElement() != null) { final IRegion region = (IRegion) sel.getFirstElement(); getPlottingSystem().removeRegion(region); } } }; delete.setToolTipText("Delete selected region, if there is one."); final Action show = new Action("Show all vertex values", Activator.getImageDescriptor("icons/plot-tool-measure-vertices.png")) { public void run() { if (!isActive()) return; final Object[] oa = ((IStructuredContentProvider) viewer.getContentProvider()).getElements(null); for (Object object : oa) { if (object instanceof IRegion) ((IRegion) object).setShowPosition(true); } } }; show.setToolTipText("Show vertices in all visible regions"); final Action clear = new Action("Show no vertex values", Activator.getImageDescriptor("icons/plot-tool-measure-clear.png")) { public void run() { if (!isActive()) return; final Object[] oa = ((IStructuredContentProvider) viewer.getContentProvider()).getElements(null); for (Object object : oa) { if (object instanceof IRegion) ((IRegion) object).setShowPosition(false); } } }; clear.setToolTipText("Clear all vertices shown in the plotting"); final Action preferences = new Action("Preferences...") { public void run() { if (!isActive()) return; PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), RegionEditorPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; preferences.setToolTipText("Open Region Editor preferences"); getSite().getActionBars().getToolBarManager().add(importRegion); getSite().getActionBars().getToolBarManager().add(exportRegion); getSite().getActionBars().getToolBarManager().add(new Separator()); getSite().getActionBars().getToolBarManager().add(copy); getSite().getActionBars().getMenuManager().add(copy); getSite().getActionBars().getToolBarManager().add(delete); getSite().getActionBars().getMenuManager().add(delete); final Separator sep = new Separator(getClass().getName() + ".separator1"); getSite().getActionBars().getToolBarManager().add(sep); getSite().getActionBars().getMenuManager().add(sep); getSite().getActionBars().getToolBarManager().add(show); getSite().getActionBars().getMenuManager().add(show); getSite().getActionBars().getToolBarManager().add(clear); getSite().getActionBars().getMenuManager().add(clear); getSite().getActionBars().getMenuManager().add(preferences); createRightClickMenu(); }
From source file:org.dawnsci.plotting.tools.region.RegionEditorTool.java
License:Open Source License
private void createActions() { final IPreferenceStore store = Activator.getPlottingPreferenceStore(); IToolBarManager toolBarMan = getSite().getActionBars().getToolBarManager(); IMenuManager menuMan = getSite().getActionBars().getMenuManager(); final Action immobileWhenAdded = new Action("Allow regions to be moved graphically", IAction.AS_CHECK_BOX) { public void run() { store.setValue(RegionEditorConstants.MOBILE_REGION_SETTING, isChecked()); // We also set all regions mobile or immobile final Collection<IRegion> regions = getPlottingSystem().getRegions(); for (IRegion iRegion : regions) { if (iRegion.isUserRegion() && iRegion.isVisible()) iRegion.setMobile(isChecked()); }/*from ww w. j av a2 s . co m*/ } }; immobileWhenAdded.setImageDescriptor(Activator.getImageDescriptor("icons/traffic-light-green.png")); immobileWhenAdded.setChecked(store.getBoolean(RegionEditorConstants.MOBILE_REGION_SETTING)); store.addPropertyChangeListener(new IPropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent event) { if (isActive()) { if (isInterestedProperty(event)) { boolean isChecked = store.getBoolean(RegionEditorConstants.MOBILE_REGION_SETTING); immobileWhenAdded.setChecked(isChecked); // We also set all regions mobile or immobile final Collection<IRegion> regions = getPlottingSystem().getRegions(); for (IRegion iRegion : regions) { if (iRegion.isUserRegion() && iRegion.isVisible()) iRegion.setMobile(isChecked); } } } } private boolean isInterestedProperty(PropertyChangeEvent event) { return RegionEditorConstants.MOBILE_REGION_SETTING.equals(event.getProperty()); } }); final Action expandAll = new Action("Expand All", Activator.getImageDescriptor("icons/expand_all.png")) { public void run() { if (viewer != null) { viewer.expandAll(); } } }; expandAll.setToolTipText("Expand All"); final Action collapseAll = new Action("Collapse All", Activator.getImageDescriptor("icons/collapse_all.png")) { public void run() { if (viewer != null) { viewer.collapseAll(); } } }; collapseAll.setToolTipText("Collapse All"); final Action exportRegion = new Action("Export region to file", Activator.getImageDescriptor("icons/mask-export-wiz.png")) { public void run() { try { IWizard wiz = EclipseUtils.openWizard(PersistenceExportWizard.ID, false); WizardDialog wd = new WizardDialog(Display.getCurrent().getActiveShell(), wiz); wd.setTitle(wiz.getWindowTitle()); wd.open(); } catch (Exception e) { logger.error("Problem opening import!", e); } } }; final Action importRegion = new Action("Import region from file", Activator.getImageDescriptor("icons/mask-import-wiz.png")) { public void run() { try { IWizard wiz = EclipseUtils.openWizard(PersistenceImportWizard.ID, false); WizardDialog wd = new WizardDialog(Display.getCurrent().getActiveShell(), wiz); wd.setTitle(wiz.getWindowTitle()); wd.open(); } catch (Exception e) { logger.error("Problem opening import!", e); } } }; final Action copy = new Action("Copy region values to clipboard", Activator.getImageDescriptor("icons/plot-tool-measure-copy.png")) { public void run() { if (!isActive()) return; ITreeSelection selected = (ITreeSelection) viewer.getSelection(); Iterator<?> it = selected.iterator(); String txtCopy = ""; while (it.hasNext()) { Object object = (Object) it.next(); if (object instanceof RegionEditorNode) { RegionEditorNode regionNode = (RegionEditorNode) object; IRegion region = regionNode.getRegion(); if (region == null || region.getROI() == null) return; IROI bounds = region.getROI(); if (bounds.getPointRef() == null) return; txtCopy = txtCopy + region.getName() + " " + bounds + System.getProperty("line.separator"); } } if (txtCopy.isEmpty()) return; Clipboard cb = new Clipboard(control.getDisplay()); TextTransfer textTransfer = TextTransfer.getInstance(); cb.setContents(new Object[] { txtCopy }, new Transfer[] { textTransfer }); } }; copy.setToolTipText( "Copies the selected region values as text to clipboard which can then be pasted externally"); final MenuAction removeRegionDropDown = new MenuAction("Delete selection region(s)"); removeRegionDropDown.setId(BasePlottingConstants.REMOVE_REGION); final Action show = new Action("Show all vertex values", Activator.getImageDescriptor("icons/plot-tool-measure-vertices.png")) { public void run() { if (!isActive()) return; showRegionVertices(true); } }; show.setToolTipText("Show vertices in all visible regions"); final Action clear = new Action("Show no vertex values", Activator.getImageDescriptor("icons/plot-tool-measure-clear.png")) { public void run() { if (!isActive()) return; showRegionVertices(false); } }; clear.setToolTipText("Clear all vertices shown in the plotting"); final Action preferences = new Action("Preferences...") { public void run() { if (!isActive()) return; PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), RegionEditorPreferencePage.ID, null, null); if (pref != null) pref.open(); } }; preferences.setToolTipText("Open Region Editor preferences"); final Action refresh = new Action("Refresh all regions") { public void run() { if (viewer != null) { createRegionEditorModel(true); viewer.refresh(); } } }; //toolbar buttons toolBarMan.add(new Separator()); toolBarMan.add(getReselectAction()); toolBarMan.add(new Separator()); toolBarMan.add(expandAll); toolBarMan.add(collapseAll); toolBarMan.add(new Separator()); toolBarMan.add(importRegion); toolBarMan.add(exportRegion); toolBarMan.add(new Separator()); toolBarMan.add(copy); toolBarMan.add(show); toolBarMan.add(clear); toolBarMan.add(new Separator()); ActionContributionItem deleteMenu = (ActionContributionItem) getPlottingSystem().getActionBars() .getToolBarManager().find(BasePlottingConstants.REMOVE_REGION); MenuAction deleteMenuAction = (MenuAction) deleteMenu.getAction(); toolBarMan.add(deleteMenuAction); // right click menu buttons MenuManager rightClickMenuMan = new MenuManager(); addRightClickMenuCheckActions(rightClickMenuMan); rightClickMenuMan.add(copy); rightClickMenuMan.add(show); rightClickMenuMan.add(clear); rightClickMenuMan.add(deleteMenuAction); viewer.getControl().setMenu(rightClickMenuMan.createContextMenu(viewer.getControl())); // menu buttons menuMan.add(copy); menuMan.add(show); menuMan.add(clear); menuMan.add(new Separator()); menuMan.add(deleteMenuAction); menuMan.add(new Separator()); menuMan.add(preferences); menuMan.add(refresh); }
From source file:org.dawnsci.spectrum.ui.views.SpectrumTracesView.java
License:Open Source License
private void makeActions() { removeAction = new Action("Remove From List", Activator.imageDescriptorFromPlugin("org.dawnsci.spectrum.ui", "icons/delete.gif")) { public void run() { ISelection selection = viewer.getSelection(); List<?> obj = ((IStructuredSelection) selection).toList(); for (Object ob : obj) manager.removeFile(((ISpectrumFile) ob).getLongName()); //Todo change selection if (manager.isEmpty()) system.clear();/* www.j a va 2 s . c o m*/ int i = viewer.getTable().getItemCount(); if (i > 0) { Object ob = viewer.getTable().getItem(i - 1).getData(); viewer.setSelection(new StructuredSelection(ob), true); } } }; removeAction.setToolTipText("Remove selected files from list"); configDefaults = new Action("Configure Default Dataset Names...", Activator.imageDescriptorFromPlugin("org.dawnsci.spectrum.ui", "icons/book-brown-setting.png")) { @Override public void run() { PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "org.dawnsci.spectrum.ui.preferences.page", null, null); if (pref != null) pref.open(); } }; }