Example usage for org.eclipse.jface.viewers CellEditor CellEditor

List of usage examples for org.eclipse.jface.viewers CellEditor CellEditor

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers CellEditor CellEditor.

Prototype

protected CellEditor(Composite parent, int style) 

Source Link

Document

Creates a new cell editor under the given parent control.

Usage

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

    };
}