public void cancelChanges() { try { editingRegion.setROI(roiViewer.getOriginalRoi()); } catch (Throwable ne) { logger.error("Problem reverting region " + editingRegion.getName(), ne); } }
public void dispose() { if (roiListener != null) { try { roiViewer.removeROIListener(roiListener); } catch (Exception ne) { logger.error("Cannot remove roi listener", ne); } } super.dispose(); }
public void setEditingRegion(final AbstractSelectionRegion<?> region) { this.editingRegion = region; this.roiViewer.setRegion(region.getROI(), region.getRegionType(), region.getCoordinateSystem()); this.roiListener = new IROIListener.Stub() { @Override public void roiChanged(ROIEvent evt) { region.setROI(evt.getROI()); } }; roiViewer.addROIListener(roiListener); Range range = xyGraph.primaryXAxis.getRange(); roiViewer.setXLowerBound(Math.min(range.getUpper(), range.getLower())); roiViewer.setXUpperBound(Math.max(range.getUpper(), range.getLower())); range = xyGraph.primaryYAxis.getRange(); roiViewer.setYLowerBound(Math.min(range.getUpper(), range.getLower())); roiViewer.setYUpperBound(Math.max(range.getUpper(), range.getLower())); nameText.setText(region.getName()); regionType.select(region.getRegionType().getIndex()); regionType.setEnabled(false); regionType.setEditable(false); int index = xyGraph.getXAxisList().indexOf(region.getCoordinateSystem().getX()); xCombo.select(index); index = xyGraph.getYAxisList().indexOf(region.getCoordinateSystem().getY()); yCombo.select(index); colorSelector.setColorValue(region.getRegionColor().getRGB()); alpha.setSelection(region.getAlpha()); mobile.setSelection(region.isMobile()); showPoints.setSelection(region.isShowPosition()); visible.setSelection(region.isVisible()); showLabel.setSelection(region.isShowLabel()); fillRegion.setSelection(region.isFill()); }
/** * Used internally * * @param parent * @param plottingSystem * @param style * @param xyGraph * @param defaultRegion * @param isImplicit Flag to tell whether the RegionComposite is used in a specific window with an * apply button or part of a view where the changes are implicit */ public RegionEditComposite( final Composite parent, final IPlottingSystem<?> plottingSystem, final int style, final XYRegionGraph xyGraph, final RegionType defaultRegion, final boolean isImplicit) { super(parent, SWT.NONE); this.setImplicit(isImplicit); this.xyGraph = xyGraph; this.plottingSystem = plottingSystem; setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); setLayout(new org.eclipse.swt.layout.GridLayout(2, false)); final Label nameLabel = new Label(this, SWT.NONE); nameLabel.setText("Name "); nameLabel.setLayoutData(new GridData()); nameText = new Text(this, SWT.BORDER | SWT.SINGLE); nameText.setToolTipText("Region name"); nameText.setLayoutData(new GridData(SWT.FILL, 0, true, false)); if (isImplicit()) { nameText.addSelectionListener( new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } final Label horiz = new Label(this, SWT.SEPARATOR | SWT.HORIZONTAL); horiz.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1)); final Label typeLabel = new Label(this, SWT.NONE); typeLabel.setText("Type"); typeLabel.setLayoutData(new GridData()); regionType = new CCombo(this, SWT.BORDER | SWT.NONE); regionType.setEditable(false); regionType.setToolTipText("Region type"); regionType.setLayoutData(new GridData(SWT.FILL, 0, true, false)); for (RegionType type : RegionType.ALL_TYPES) { regionType.add(type.getName()); } regionType.select(defaultRegion.getIndex()); xCombo = createAxisChooser(this, "X Axis", xyGraph.getXAxisList()); yCombo = createAxisChooser(this, "Y Axis", xyGraph.getYAxisList()); Label colorLabel = new Label(this, 0); colorLabel.setText("Selection Color"); colorLabel.setLayoutData(new GridData()); colorSelector = new ColorSelector(this); colorSelector.getButton().setLayoutData(new GridData()); colorSelector.setColorValue(defaultRegion.getDefaultColor().getRGB()); if (isImplicit()) { colorSelector.addListener( new IPropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent event) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } final Label horiz2 = new Label(this, SWT.SEPARATOR | SWT.HORIZONTAL); horiz2.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1)); Label alphaLabel = new Label(this, 0); alphaLabel.setText("Alpha level"); alphaLabel.setLayoutData(new GridData()); alpha = new Spinner(this, SWT.NONE); alpha.setToolTipText("Alpha transparency level of the shaded shape"); alpha.setLayoutData(new GridData()); alpha.setMinimum(0); alpha.setMaximum(255); alpha.setSelection(80); if (isImplicit()) { alpha.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } this.mobile = new Button(this, SWT.CHECK); mobile.setText(" Mobile "); mobile.setToolTipText("When true, this selection can be resized and moved around the graph."); mobile.setLayoutData(new GridData(0, 0, false, false, 2, 1)); mobile.setSelection(true); if (isImplicit()) { mobile.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } this.showPoints = new Button(this, SWT.CHECK); showPoints.setText(" Show vertex values"); showPoints.setToolTipText( "When on this will show the actual value of the point in the axes it was added."); showPoints.setLayoutData(new GridData(0, 0, false, false, 2, 1)); if (isImplicit()) { showPoints.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } this.visible = new Button(this, SWT.CHECK); visible.setText(" Show region"); visible.setToolTipText("You may turn off the visibility of this region."); visible.setLayoutData(new GridData(0, 0, false, false, 2, 1)); visible.setSelection(true); if (isImplicit()) { visible.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } this.showLabel = new Button(this, SWT.CHECK); showLabel.setText(" Show name"); showLabel.setToolTipText("Turn on to show the name of a selection region."); showLabel.setLayoutData(new GridData(0, 0, false, false, 2, 1)); showLabel.setSelection(true); if (isImplicit()) { showLabel.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } this.fillRegion = new Button(this, SWT.CHECK); fillRegion.setText(" Fill region"); fillRegion.setToolTipText("Fill the body of an area region"); fillRegion.setLayoutData(new GridData(0, 0, false, false, 2, 1)); fillRegion.setSelection(true); if (isImplicit()) { fillRegion.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AbstractSelectionRegion<?> region = getEditingRegion(); region.repaint(); } }); } final Label spacer = new Label(this, SWT.SEPARATOR | SWT.HORIZONTAL); spacer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); // We add a composite for setting the region location programmatically. final Label location = new Label(this, SWT.NONE); location.setText("Region Location"); location.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); this.roiViewer = new ROIEditTable(); roiViewer.createPartControl(this); // Should be last nameText.setText(getDefaultName(defaultRegion.getIndex())); }