Example usage for org.eclipse.jface.preference PreferenceDialog open

List of usage examples for org.eclipse.jface.preference PreferenceDialog open

Introduction

In this page you can find the example usage for org.eclipse.jface.preference PreferenceDialog open.

Prototype

public int open() 

Source Link

Document

Opens this window, creating it first if it has not yet been created.

Usage

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