Example usage for org.eclipse.jface.databinding.swt SWTObservables observeText

List of usage examples for org.eclipse.jface.databinding.swt SWTObservables observeText

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.swt SWTObservables observeText.

Prototype

@Deprecated
public static ISWTObservableValue observeText(Control control, int event) 

Source Link

Document

Returns an observable observing the text attribute of the provided control.

Usage

From source file:org.eclipse.bpmn2.modeler.ui.property.AbstractBpmn2PropertiesComposite.java

License:Open Source License

protected void bind(final EStructuralFeature a, final Text text) {

    Object eGet = be.eGet(a);/*  ww  w. j a  v a 2  s. c  om*/
    if (eGet != null) {
        text.setText(eGet.toString());
    }

    IObservableValue textObserver = SWTObservables.observeText(text, SWT.Modify);
    textObserver.addValueChangeListener(new IValueChangeListener() {

        @SuppressWarnings("restriction")
        @Override
        public void handleValueChange(final ValueChangeEvent e) {

            if (!text.getText().equals(be.eGet(a))) {
                TransactionalEditingDomain editingDomain = bpmn2Editor.getEditingDomain();
                editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain) {
                    @Override
                    protected void doExecute() {
                        be.eSet(a, e.diff.getNewValue());
                    }
                });
                if (bpmn2Editor.getDiagnostics() != null) {
                    // revert the change and display error status message.
                    text.setText((String) be.eGet(a));
                    bpmn2Editor.showErrorMessage(bpmn2Editor.getDiagnostics().getMessage());
                } else
                    bpmn2Editor.showErrorMessage(null);
            }
        }
    });

    text.addFocusListener(new FocusListener() {

        @Override
        public void focusGained(FocusEvent e) {
        }

        @Override
        public void focusLost(FocusEvent e) {
            bpmn2Editor.showErrorMessage(null);
        }
    });
}

From source file:org.eclipse.bpmn2.modeler.ui.property.AbstractBpmn2PropertiesComposite.java

License:Open Source License

protected void bindInt(final EStructuralFeature a, final Text text) {

    text.addVerifyListener(new VerifyListener() {

        /**/*from  w ww. j av a 2 s . com*/
         * taken from
         * http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets
         * /Snippet19.java?view=co
         */
        @Override
        public void verifyText(VerifyEvent e) {
            String string = e.text;
            char[] chars = new char[string.length()];
            string.getChars(0, chars.length, chars, 0);
            for (int i = 0; i < chars.length; i++) {
                if (!('0' <= chars[i] && chars[i] <= '9')) {
                    e.doit = false;
                    return;
                }
            }
        }
    });

    Object eGet = be.eGet(a);
    if (eGet != null) {
        text.setText(eGet.toString());
    }

    IObservableValue textObserveTextObserveWidget = SWTObservables.observeText(text, SWT.Modify);
    textObserveTextObserveWidget.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(ValueChangeEvent event) {

            try {
                final int i = Integer.parseInt(text.getText());
                if (!be.eGet(a).equals(i)) {
                    setFeatureValue(i);
                }
            } catch (NumberFormatException e) {
                text.setText((String) be.eGet(a));
                Activator.logError(e);
            }
        }

        @SuppressWarnings("restriction")
        private void setFeatureValue(final int i) {
            RecordingCommand command = new RecordingCommand(bpmn2Editor.getEditingDomain()) {
                @Override
                protected void doExecute() {
                    be.eSet(a, i);
                }
            };
            bpmn2Editor.getEditingDomain().getCommandStack().execute(command);
            if (bpmn2Editor.getDiagnostics() != null) {
                // revert the change and display error status message.
                text.setText((String) be.eGet(a));
                bpmn2Editor.showErrorMessage(bpmn2Editor.getDiagnostics().getMessage());
            } else
                bpmn2Editor.showErrorMessage(null);
        }
    });

    text.addFocusListener(new FocusListener() {

        @Override
        public void focusGained(FocusEvent e) {
        }

        @Override
        public void focusLost(FocusEvent e) {
            bpmn2Editor.showErrorMessage(null);
        }
    });
}

From source file:org.eclipse.bpmn2.modeler.ui.property.editors.IntObjectEditor.java

License:Open Source License

@Override
public Control createControl(Composite composite, String label, int style) {
    createLabel(composite, label);/* w ww  .j av  a2s .c om*/

    final Text text = getToolkit().createText(composite, "");
    text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    text.addVerifyListener(new VerifyListener() {

        /**
         * taken from
         * http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets
         * /Snippet19.java?view=co
         */
        @Override
        public void verifyText(VerifyEvent e) {
            String string = e.text;
            char[] chars = new char[string.length()];
            string.getChars(0, chars.length, chars, 0);
            for (int i = 0; i < chars.length; i++) {
                if (!('0' <= chars[i] && chars[i] <= '9')) {
                    e.doit = false;
                    return;
                }
            }
        }
    });

    Object eGet = object.eGet(feature);
    if (eGet != null) {
        text.setText(eGet.toString());
    }

    IObservableValue textObserveTextObserveWidget = SWTObservables.observeText(text, SWT.Modify);
    textObserveTextObserveWidget.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(ValueChangeEvent event) {

            try {
                final int i = Integer.parseInt(text.getText());
                if (!object.eGet(feature).equals(i)) {
                    setFeatureValue(i);
                }
            } catch (NumberFormatException e) {
                text.setText((String) object.eGet(feature));
                Activator.logError(e);
            }
        }

        @SuppressWarnings("restriction")
        private void setFeatureValue(final int i) {
            RecordingCommand command = new RecordingCommand(getDiagramEditor().getEditingDomain()) {
                @Override
                protected void doExecute() {
                    Class eTypeClass = feature.getEType().getInstanceClass();
                    if (BigInteger.class.equals(eTypeClass)) {
                        object.eSet(feature, BigInteger.valueOf((long) i));
                    } else
                        object.eSet(feature, i);
                }
            };
            getDiagramEditor().getEditingDomain().getCommandStack().execute(command);
            if (getDiagramEditor().getDiagnostics() != null) {
                // revert the change and display error status message.
                text.setText((String) object.eGet(feature));
                ErrorUtils.showErrorMessage(getDiagramEditor().getDiagnostics().getMessage());
            } else
                ErrorUtils.showErrorMessage(null);
        }
    });

    text.addFocusListener(new FocusListener() {

        @Override
        public void focusGained(FocusEvent e) {
        }

        @Override
        public void focusLost(FocusEvent e) {
            ErrorUtils.showErrorMessage(null);
        }
    });

    return text;
}

From source file:org.eclipse.bpmn2.modeler.ui.property.editors.TextObjectEditor.java

License:Open Source License

@Override
public Control createControl(Composite composite, String label, int style) {
    createLabel(composite, label);//from   w w  w .  j a  va2 s.c om

    boolean multiLine = ((style & SWT.MULTI) != 0);
    if (multiLine)
        style |= SWT.V_SCROLL;

    text = getToolkit().createText(composite, "", style);
    GridData data = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    if (multiLine) {
        data.heightHint = 100;
    }
    text.setLayoutData(data);

    setText(PropertyUtil.getText(object, feature));

    IObservableValue textObserver = SWTObservables.observeText(text, SWT.Modify);
    textObserver.addValueChangeListener(new IValueChangeListener() {

        @SuppressWarnings("restriction")
        @Override
        public void handleValueChange(final ValueChangeEvent e) {
            updateObject(e.diff.getNewValue());
        }
    });

    text.addFocusListener(new FocusListener() {

        @Override
        public void focusGained(FocusEvent e) {
        }

        @Override
        public void focusLost(FocusEvent e) {
            ErrorUtils.showErrorMessage(null);
        }
    });

    return text;
}

From source file:org.eclipse.core.databinding.validation.jsr303.samples.Jsr303PersonSnippet.java

License:Open Source License

public static void main(String[] args) {
    // Display state of JSR-303 Bean Support
    System.out.println("JSR-303 Bean Support available?: " + Jsr303BeanValidationSupport.isAvailable());
    System.out.println("OSGi context?: " + Jsr303BeanValidationSupport.isOSGi());
    System.out.println("JSR-303 Bean Support ValidatorFactory Implementation: "
            + Jsr303BeanValidationSupport.getValidatorFactoryClassName());
    System.out.println("JSR-303 Bean Support strategy resolver?: " + Jsr303BeanValidationSupport.getStrategy());

    // Create UI+Binding
    final Display display = new Display();
    Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
        public void run() {
            final Shell shell = new Shell(display);

            shell.setLayout(new FillLayout());

            Composite parent = new Composite(shell, SWT.NONE);
            parent.setLayout(new GridLayout(2, false));
            parent.setLayoutData(new GridData(GridData.FILL_BOTH));
            Person model = new Person();

            // UI Name
            Label nameLabel = new Label(parent, SWT.NONE);
            nameLabel.setText("Name:");
            Text nameText = new Text(parent, SWT.BORDER);
            nameText.setLayoutData(new GridData(GridData.FILL_BOTH));

            // UI Email
            Label emailLabel = new Label(parent, SWT.NONE);
            emailLabel.setText("Email:");
            Text emailText = new Text(parent, SWT.BORDER);
            emailText.setLayoutData(new GridData(GridData.FILL_BOTH));

            DataBindingContext dataBindingContext = new DataBindingContext(SWTObservables.getRealm(display));

            // Binding Name
            IObservableValue nameTextObserveTextObserveWidget = SWTObservables.observeText(nameText,
                    SWT.Modify);//from w  w  w. java 2s  .  c  o m
            IObservableValue modelNameObserveValue = PojoObservables.observeValue(model, "name");

            Binding binding = dataBindingContext.bindValue(nameTextObserveTextObserveWidget,
                    modelNameObserveValue, Jsr303BeansUpdateValueStrategyFactory.create(modelNameObserveValue),
                    null);
            ControlDecorationSupport.create(binding, SWT.LEFT, parent);

            // Binding Email
            IObservableValue emailTextObserveTextObserveWidget = SWTObservables.observeText(emailText,
                    SWT.Modify);
            IObservableValue modelEmailObserveValue = PojoObservables.observeValue(model, "email");

            binding = dataBindingContext.bindValue(emailTextObserveTextObserveWidget, modelEmailObserveValue,
                    Jsr303BeansUpdateValueStrategyFactory.create(modelEmailObserveValue), null);
            ControlDecorationSupport.create(binding, SWT.LEFT, parent);

            shell.setSize(200, 100);
            shell.open();

            // The SWT event loop
            Display display = Display.getCurrent();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch()) {
                    display.sleep();
                }
            }
        }
    });
}

From source file:org.eclipse.core.databinding.validation.jsr303.samples.rcp.editor.OverviewPage.java

License:Open Source License

private void createBindings() {

    Person person = getEditor().getPerson();
    DataBindingContext dataBindingContext = new DataBindingContext();

    // Binding name
    IObservableValue textObserveTextObserveWidget = SWTObservables.observeText(personNameText, SWT.Modify);
    IObservableValue modelNameObserveValue = PojoObservables.observeValue(person, "name");
    Binding binding = dataBindingContext.bindValue(textObserveTextObserveWidget, modelNameObserveValue,
            Jsr303BeansUpdateValueStrategyFactory.create(modelNameObserveValue), null);
    ControlDecorationSupport.create(binding, SWT.LEFT, parent);

    // Binding email
    IObservableValue emailTextObserveTextObserveWidget = SWTObservables.observeText(personEmailText,
            SWT.Modify);/*from  w  w w .  ja  v  a 2 s  .c  om*/
    IObservableValue modelEmailObserveValue = PojoObservables.observeValue(person, "email");
    binding = dataBindingContext.bindValue(emailTextObserveTextObserveWidget, modelEmailObserveValue,
            Jsr303BeansUpdateValueStrategyFactory.create(modelEmailObserveValue), null);
    ControlDecorationSupport.create(binding, SWT.LEFT, parent);
}

From source file:org.eclipse.e4.demo.contacts.views.DetailComposite.java

License:Open Source License

private Text createText(final Composite parent, final String labelText, final String property) {
    final Label label = new Label(parent, SWT.NONE);
    label.setText(labelText + "   "); // the extra space is due to a bug in
    // font formatting when using css
    // styling/*w ww .  jav  a 2 s  .c  o  m*/
    GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    gridData.horizontalIndent = 20;
    label.setLayoutData(gridData);

    final Text text = new Text(parent, SWT.NONE);

    GridData gridData2 = new GridData(GridData.FILL_HORIZONTAL);
    gridData2.horizontalIndent = 0;
    if (!generalGroup) {
        gridData2.horizontalSpan = 2;
    } else {
        gridData2.horizontalSpan = 1;
        if (labelText.equals("Title:")) {
            // The label image is set with data binding
            imageLabel = new Label(parent, SWT.NONE);
            GridData gridData3 = new GridData();
            gridData3.verticalSpan = 5;
            imageLabel.setLayoutData(gridData3);
        }
    }
    text.setLayoutData(gridData2);

    if (property != null) {
        if (property.equals("name")) {
            dbc.bindValue(SWTObservables.observeText(text, SWT.Modify),
                    new AggregateNameObservableValue(contactValue));
        } else {
            dbc.bindValue(SWTObservables.observeText(text, SWT.Modify),
                    PojoObservables.observeDetailValue(contactValue, property, String.class));
        }
    }

    text.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            if (commitChanges) {
                setDirty(true);
            }
        }
    });

    return text;
}

From source file:org.eclipse.e4.demo.viewer.PropertiesElement.java

License:Open Source License

protected Binding bind(Text text, EStructuralFeature feature) {
    if (selectedObject == null)
        return null;
    IObservableValue observable = EMFObservables.observeValue(selectedObject, feature);
    return dbc.bindValue(SWTObservables.observeText(text, SWT.Modify), observable, null, null);
}

From source file:org.eclipse.e4.demo.viewer.PropertiesSash.java

License:Open Source License

protected Binding bindList(Text text, EStructuralFeature feature) {
    IObservableValue observable = EMFObservables.observeValue(selectedObject, feature);
    // NOTE: Do not use SWT.Modify as it might cause StackOverflow
    // when stack is dragged
    return dbc.bindValue(SWTObservables.observeText(text, SWT.FocusOut), observable, new UpdateValueStrategy() { // Text to EMF model
        @Override//from www  .  j ava 2  s  .c  om
        public Object convert(Object value) {
            if (!(value instanceof String))
                return super.convert(value);

            String[] parts = ((String) value).split(", ");
            EList<Integer> emfList = new BasicEList<Integer>(parts.length);
            for (String part : parts) {
                try {
                    emfList.add(Integer.decode(part));
                } catch (NumberFormatException e) {
                    // can't process; pass to superclass
                    return super.convert(value);
                }
            }
            return emfList;
        }
    }, new UpdateValueStrategy() { // EMF model to Text
        @Override
        public Object convert(Object value) {
            if (!(value instanceof EList<?>))
                return super.convert(value);
            StringBuffer result = new StringBuffer();
            for (Object element : (EList<?>) value) {
                if (result.length() != 0)
                    result.append(", ");
                result.append(element.toString());
            }
            return result.toString();
        }
    });
}

From source file:org.eclipse.e4.xwt.databinding.JFaceXWTDataBinding.java

License:Open Source License

protected static IObservableValue observePropertyValue(Control control, String propertyName,
        UpdateSourceTrigger updateSourceTrigger) {
    if (TEXT.equalsIgnoreCase(propertyName)) {
        if (control instanceof Text || control instanceof StyledText) {
            int event = SWT.None;
            switch (updateSourceTrigger) {
            case Default:
                event = SWT.FocusOut;/* w w w.ja v a  2 s  .c  o m*/
                break;
            case LostFocus:
                event = SWT.FocusOut;
                break;
            case PropertyChanged:
                event = SWT.Modify;
                break;
            default:
                throw new IllegalStateException("UpdateSourceTrigger of value " + updateSourceTrigger.name());
            }
            IObservableValue observableValue = SWTObservables.observeText(control, event);
            if (observableValue != null) {
                return observableValue;
            }
        }
        // widget button is not supported at 3.4 version.
        if (SWT.getVersion() == 3449 && control instanceof Button) {
            return null;
        }
        try {
            IObservableValue observableValue = SWTObservables.observeText(control);
            if (observableValue != null) {
                return observableValue;
            }
        } catch (IllegalArgumentException e) {
            throw new XWTException(e);
        }
    } else {
        if (propertyName == null) {
            return null;
        }
        String getterName = "observe" + propertyName.substring(0, 1).toUpperCase() + propertyName.substring(1);
        Method method;
        try {
            method = SWTObservables.class.getMethod(getterName, CONTROL_ARGUMENT_TYPES);
            if (method == null) {
                for (Method element : SWTObservables.class.getMethods()) {
                    if (element.getParameterTypes().length != 0) {
                        continue;
                    }
                    if (element.getName().equalsIgnoreCase(getterName)) {
                        method = element;
                        break;
                    }
                }
            }
            if (method != null) {
                IObservableValue observableValue = (IObservableValue) method.invoke(null, control);
                if (observableValue != null) {
                    return observableValue;
                }
            }
        } catch (Exception e) {
            throw new XWTException(e);
        }
    }
    IMetaclass mateclass = XWT.getMetaclass(control);
    IProperty property = mateclass.findProperty(propertyName);
    if (property instanceof EventProperty) {
        return new EventPropertyObservableValue(control, (EventProperty) property);
    }
    return null;
}