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.e4.xwt.tests.snipppets.Snippet004DataBindingContextErrorLabel.java

License:Open Source License

public static void main(String[] args) {
    final Display display = new Display();
    Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
        public void run() {
            Shell shell = new Shell(display);
            shell.setText("Data Binding Snippet 004");
            shell.setLayout(new GridLayout(2, false));

            new Label(shell, SWT.NONE).setText("Enter '5' to be valid:");

            Text text = new Text(shell, SWT.BORDER);
            WritableValue value = WritableValue.withValueType(String.class);
            new Label(shell, SWT.NONE).setText("Error:");

            Label errorLabel = new Label(shell, SWT.BORDER);
            errorLabel.setForeground(display.getSystemColor(SWT.COLOR_RED));
            GridDataFactory.swtDefaults().hint(200, SWT.DEFAULT).applyTo(errorLabel);

            DataBindingContext dbc = new DataBindingContext();

            // Bind the text to the value.
            dbc.bindValue(SWTObservables.observeText(text, SWT.Modify), value,
                    new UpdateValueStrategy().setAfterConvertValidator(new FiveValidator()), null);

            // Bind the error label to the validation error on the dbc.
            dbc.bindValue(SWTObservables.observeText(errorLabel),
                    new AggregateValidationStatus(dbc.getBindings(), AggregateValidationStatus.MAX_SEVERITY));

            shell.pack();//  www. j  av  a2 s . co m
            shell.open();
            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
        }
    });
    display.dispose();
}

From source file:org.eclipse.e4.xwt.tests.snipppets.Snippet019TreeViewerWithListFactory.java

License:Open Source License

protected DataBindingContext initDataBindings() {
    IObservableValue treeViewerSelectionObserveSelection = ViewersObservables
            .observeSingleSelection(beanViewer);
    IObservableValue textTextObserveWidget = SWTObservables.observeText(beanText, SWT.Modify);
    IObservableValue treeViewerValueObserveDetailValue = BeansObservables
            .observeDetailValue(treeViewerSelectionObserveSelection, "text", String.class);
    ///*from w w w . j  a v  a 2  s  .co m*/
    //
    DataBindingContext bindingContext = new DataBindingContext();
    //
    bindingContext.bindValue(textTextObserveWidget, treeViewerValueObserveDetailValue);
    //
    return bindingContext;
}

From source file:org.eclipse.e4.xwt.tests.snipppets.Snippet021MultiFieldValidation.java

License:Open Source License

private void bindEvensAndOddsGroup(DataBindingContext dbc) {
    IObservableValue targetField1 = SWTObservables.observeText(field1Target, SWT.Modify);
    final IObservableValue middleField1 = new WritableValue(null, Integer.TYPE);
    dbc.bindValue(targetField1, middleField1);

    IObservableValue targetField2 = SWTObservables.observeText(field2Target, SWT.Modify);
    final IObservableValue middleField2 = new WritableValue(null, Integer.TYPE);
    dbc.bindValue(targetField2, middleField2);

    MultiValidator validator = new MultiValidator() {
        protected IStatus validate() {
            Integer field1 = (Integer) middleField1.getValue();
            Integer field2 = (Integer) middleField2.getValue();
            if (Math.abs(field1.intValue()) % 2 != Math.abs(field2.intValue()) % 2)
                return ValidationStatus.error("Fields 1 and 2 must be both even or both odd");
            return null;
        }//from w ww .  j av a 2s. co  m
    };
    dbc.addValidationStatusProvider(validator);

    IObservableValue modelField1 = new WritableValue(new Integer(1), Integer.TYPE);
    IObservableValue modelField2 = new WritableValue(new Integer(4), Integer.TYPE);
    dbc.bindValue(validator.observeValidatedValue(middleField1), modelField1);
    dbc.bindValue(validator.observeValidatedValue(middleField2), modelField2);

    dbc.bindValue(SWTObservables.observeText(field1ModelValue, SWT.Modify), modelField1);
    dbc.bindValue(SWTObservables.observeText(field2ModelValue, SWT.Modify), modelField2);
}

From source file:org.eclipse.e4.xwt.tests.snipppets.Snippet021MultiFieldValidation.java

License:Open Source License

private void bindSumAndAddendsGroup(DataBindingContext dbc) {
    IObservableValue targetSum = SWTObservables.observeText(sumTarget, SWT.Modify);
    final IObservableValue middleSum = new WritableValue(null, Integer.TYPE);
    dbc.bindValue(targetSum, middleSum);

    final IObservableList targetAddends = new WritableList(new ArrayList(), Integer.TYPE);
    addendsTarget.setContentProvider(new ObservableListContentProvider());
    addendsTarget.setInput(targetAddends);

    addAddendButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(final SelectionEvent e) {
            InputDialog dialog = new InputDialog(getShell(), "Input addend", "Enter an integer addend", "0",
                    new IInputValidator() {
                        public String isValid(String newText) {
                            try {
                                Integer.valueOf(newText);
                                return null;
                            } catch (NumberFormatException e) {
                                return "Enter a number between " + Integer.MIN_VALUE + " and "
                                        + Integer.MAX_VALUE;
                            }/*  ww  w .j  av  a  2s  .  c  om*/
                        }
                    });
            if (dialog.open() == Window.OK) {
                targetAddends.add(Integer.valueOf(dialog.getValue()));
            }
        }
    });

    removeAddendButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) addendsTarget.getSelection();
            if (!selection.isEmpty())
                targetAddends.remove(selection.getFirstElement());
        }
    });

    IObservableValue modelSum = new WritableValue(new Integer(5), Integer.TYPE);
    dbc.bindValue(SWTObservables.observeText(sumModelValue, SWT.Modify), modelSum);

    IObservableList modelAddends = new WritableList(new ArrayList(), Integer.TYPE);

    MultiValidator validator = new MultiValidator() {
        protected IStatus validate() {
            Integer sum = (Integer) middleSum.getValue();
            int actualSum = 0;
            for (Iterator iterator = targetAddends.iterator(); iterator.hasNext();) {
                actualSum += ((Integer) iterator.next()).intValue();
            }
            if (sum.intValue() != actualSum)
                return ValidationStatus.error("Sum of addends is " + actualSum + ", expecting " + sum);
            return ValidationStatus.ok();
        }
    };
    dbc.addValidationStatusProvider(validator);

    addendsModelValue.setContentProvider(new ObservableListContentProvider());
    addendsModelValue.setInput(modelAddends);

    dbc.bindValue(validator.observeValidatedValue(middleSum), modelSum);
    dbc.bindList(validator.observeValidatedList(targetAddends), modelAddends);
}

From source file:org.eclipse.ecf.salvo.ui.internal.preferences.SignaturePreferencePage.java

License:Open Source License

protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    ///*w w  w . j  a va  2  s .  co m*/
    IObservableValue signatureObserveTextObserveWidget = SWTObservables.observeText(signature, SWT.Modify);
    IObservableValue modelSignatureObserveValue = PojoObservables.observeValue(model, "signature");
    bindingContext.bindValue(signatureObserveTextObserveWidget, modelSignatureObserveValue, null, null);
    //
    IObservableValue btnUseSignatureObserveSelectionObserveWidget_7 = SWTObservables
            .observeSelection(btnUseSignature);
    IObservableValue signatureEnabledObserveValue = PojoObservables.observeValue(signature, "enabled");
    bindingContext.bindValue(btnUseSignatureObserveSelectionObserveWidget_7, signatureEnabledObserveValue, null,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    //
    IObservableValue btnUseSignatureObserveSelectionObserveWidget_1 = SWTObservables
            .observeSelection(btnUseSignature);
    IObservableValue modelUseSignatureObserveValue = PojoObservables.observeValue(model, "useSignature");
    bindingContext.bindValue(btnUseSignatureObserveSelectionObserveWidget_1, modelUseSignatureObserveValue,
            null, null);
    //
    return bindingContext;
}

From source file:org.eclipse.emf.ecp.ecoreeditor.internal.ui.TextRenderer.java

License:Open Source License

@Override
protected Binding bindValue(Control text, IObservableValue modelValue, DataBindingContext dataBindingContext,
        UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {

    final IObservableValue value = SWTObservables.observeDelayedValue(600,
            SWTObservables.observeText(text, SWT.Modify));
    final Binding binding = dataBindingContext.bindValue(value, modelValue, targetToModel, modelToTarget);
    return binding;
}

From source file:org.eclipse.emf.ecp.edit.internal.swt.controls.AbstractTextControl.java

License:Open Source License

@Override
public Binding bindValue() {
    final IObservableValue value = SWTObservables.observeText(text, SWT.FocusOut);
    final TargetToModelUpdateStrategy targetToModelUpdateStrategy = new TargetToModelUpdateStrategy();
    final ModelToTargetUpdateStrategy modelToTargetUpdateStrategy = new ModelToTargetUpdateStrategy();
    final Binding binding = getDataBindingContext().bindValue(value, getModelValue(),
            targetToModelUpdateStrategy, modelToTargetUpdateStrategy);

    createTooltipBinding(targetToModelUpdateStrategy, modelToTargetUpdateStrategy);

    return binding;
}

From source file:org.eclipse.emf.ecp.edit.internal.swt.controls.NumericalControl.java

License:Open Source License

@Override
public Binding bindValue() {
    // TODO: FocusOut doesn't seem to fire in case the same invalid text is entered twice
    final IObservableValue value = SWTObservables.observeText(getText(), SWT.FocusOut);
    final NumericalTargetToModelUpdateStrategy targetToModelStrategy = new NumericalTargetToModelUpdateStrategy();
    final NumericalModelToTargetUpdateStrategy modelToTargetStrategy = new NumericalModelToTargetUpdateStrategy();
    final Binding binding = getDataBindingContext().bindValue(value, getModelValue(), targetToModelStrategy,
            modelToTargetStrategy);/* w w  w  .  ja  v a 2  s  . c  o  m*/

    createTooltipBinding(targetToModelStrategy, modelToTargetStrategy);

    if (isEmbedded()) {
        // focus out is not fired if control is embedded;
        // use value change listener to get same behavior for control
        value.addValueChangeListener(new IValueChangeListener() {
            @Override
            public void handleValueChange(ValueChangeEvent event) {
                final Object newValue = event.diff.getNewValue();
                final DecimalFormat format = NumericalHelper.setupFormat(getLocale(), getInstanceClass());
                try {
                    final Number number = format.parse((String) newValue);
                    value.setValue(format.format(number));
                    binding.updateTargetToModel();
                } catch (final ParseException ex) {
                    targetToModelStrategy.revertToOldValue(value);
                }
            }
        });
    }

    return binding;
}

From source file:org.eclipse.emf.ecp.edit.internal.swt.controls.XmlDateControlText.java

License:Open Source License

@Override
public Binding bindValue() {
    final IObservableValue value = SWTObservables.observeText(getText(), SWT.FocusOut);
    final DateTargetToModelUpdateStrategy targetToModelUpdateStrategy = new DateTargetToModelUpdateStrategy();
    final DateModelToTargetUpdateStrategy modelToTargetUpdateStrategy = new DateModelToTargetUpdateStrategy();
    final Binding binding = getDataBindingContext().bindValue(value, getModelValue(),
            targetToModelUpdateStrategy, modelToTargetUpdateStrategy);
    createTooltipBinding(targetToModelUpdateStrategy, modelToTargetUpdateStrategy);
    return binding;
}

From source file:org.eclipse.emf.ecp.editor.mecontrols.METextControl.java

License:Open Source License

/**
 * {@inheritDoc}//  w  w w  .j a v  a2  s  .  c  o  m
 * 
 * @return A Text Control.
 */
@Override
public Control createControl(Composite parent, int style) {
    Object feature = getItemPropertyDescriptor().getFeature(getModelElement());
    this.attribute = (EAttribute) feature;

    composite = getToolkit().createComposite(parent, style);
    composite.setBackgroundMode(SWT.INHERIT_FORCE);
    GridLayoutFactory.fillDefaults().numColumns(2).spacing(2, 0).applyTo(composite);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(composite);

    labelWidgetImage = getToolkit().createLabel(composite, "    ");
    labelWidgetImage.setBackground(parent.getBackground());

    text = getToolkit().createText(composite, new String(), style | SWT.SINGLE | SWT.BORDER);
    text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    if (!getItemPropertyDescriptor().canSetProperty(getModelElement())) {
        text.setEditable(false);
    }
    IObservableValue model = EMFEditObservables.observeValue(getEditingDomain(), getModelElement(), attribute);
    EMFDataBindingContext dbc = new EMFDataBindingContext();
    ISWTObservableValue observeText = SWTObservables.observeText(text, SWT.FocusOut);
    dbc.bindValue(observeText, model, null, null);
    return composite;
}