List of usage examples for org.eclipse.jface.viewers CellEditor CellEditor
protected CellEditor(Composite parent, int style)
From source file:net.refractions.udig.project.ui.internal.properties.GeometryPropertyDescriptor.java
License:Open Source License
/** * @see org.eclipse.ui.views.properties.PropertyDescriptor#createPropertyEditor(org.eclipse.swt.widgets.Composite) *//*from w w w . j av a 2 s .co m*/ public CellEditor createPropertyEditor(Composite parent) { return new CellEditor(parent, SWT.NONE) { Geometry geometry; private Button button; private Label label; protected Control createControl(Composite comp) { Composite parent = new Composite(comp, SWT.NONE); parent.setLayout(new GridLayout(2, false)); label = new Label(parent, SWT.READ_ONLY); if (geometry != null) label.setText(getLabelProvider().getText(geometry)); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.verticalSpan = 2; label.setLayoutData(data); button = new Button(parent, SWT.PUSH | SWT.FLAT); button.setText(Messages.GeometryPropertyDescriptor_viewButton_text); data = new GridData(SWT.RIGHT, SWT.TOP, false, false); data.verticalSpan = 1; button.setLayoutData(data); button.addListener(SWT.MouseUp, new Listener() { public void handleEvent(Event event) { MapEditorPart editor = (MapEditorPart) PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage().getActiveEditor(); Map map = editor.getMap(); Envelope env = geometry.getEnvelopeInternal(); try { env = JTS.transform(env, map.getEditManager().getEditLayer().layerToMapTransform()); } catch (Exception e1) { ProjectUIPlugin.log(null, e1); } map.sendCommandASync(new SetViewportBBoxCommand(env, map.getViewportModel().getCRS())); PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().activate(editor); } }); button.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { if (e.character == '\u001b') { // Escape fireCancelEditor(); } } }); return parent; } protected Object doGetValue() { return geometry; } protected void doSetFocus() { button.setFocus(); } protected void doSetValue(Object value) { geometry = (Geometry) value; label.setText(getLabelProvider().getText(geometry)); } }; }