Example usage for org.eclipse.jface.databinding.swt WidgetProperties selection

List of usage examples for org.eclipse.jface.databinding.swt WidgetProperties selection

Introduction

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

Prototype

public static IWidgetValueProperty selection() 

Source Link

Document

Returns a value property for observing the selection state of a Button , CCombo , Combo , DateTime , List , MenuItem (since 1.5), Scale , Slider (since 1.5) or Spinner .

Usage

From source file:org.eclipse.papyrus.infra.gmfdiag.widgets.editors.FontEditor.java

License:Open Source License

public FontEditor(Composite parent, int style) {
    super(parent, style);
    fontCombo = factory.createCCombo(this, style | SWT.READ_ONLY | SWT.BORDER);
    fontCombo.setLayoutData(getDefaultLayoutData());
    // fontCombo.setEditable(false);

    FontData[] fontDatas = getDisplay().getFontList(null, true);

    Arrays.sort(fontDatas, new Comparator<FontData>() {

        public int compare(FontData font1, FontData font2) {
            return Collator.getInstance().compare(font1.getName(), font2.getName());
        }/*from w  w w.  jav a 2  s .  co  m*/

    });

    Set<String> fonts = new HashSet<String>();
    for (FontData data : fontDatas) {
        if (data.getName() != null) {
            if (fonts.add(data.getName())) {
                fontCombo.add(data.getName());
            }
        }
    }

    setWidgetObservable(WidgetProperties.selection().observe(fontCombo));
}

From source file:org.eclipse.papyrus.infra.widgets.editors.BooleanCheckbox.java

License:Open Source License

/**
 * /*from   ww  w  .  j a  v a2 s. co m*/
 * Constructor. Creates a new Property Editor for a Boolean
 * value, represented as a Checkbox, with the given label
 * 
 * @param parent
 *        This editor's parent composite
 * @param style
 *        The style applied to this editor's checkbox
 * @param label
 *        The label for this editor
 */
public BooleanCheckbox(Composite parent, int style, String label) {
    super(parent);
    checkbox = factory.createButton(this, label, SWT.CHECK | style);

    IObservableValue widgetObservable = WidgetProperties.selection().observe(checkbox);
    setWidgetObservable(widgetObservable, true);
}

From source file:org.eclipse.papyrus.infra.widgets.editors.BooleanCheckbox.java

License:Open Source License

@Override
public void setModelObservable(IObservableValue modelProperty) {
    IObservableValue newWidgetObservable;

    if (this.widgetObservable != null) {
        this.widgetObservable.dispose();
    }/*  ww  w .j  a  v a2 s.c  o  m*/

    if (modelProperty instanceof AggregatedObservable) {
        this.aggregated = (AggregatedObservable) modelProperty;
        newWidgetObservable = new GrayedCheckboxObservableValue(checkbox, aggregated);
    } else {
        newWidgetObservable = WidgetProperties.selection().observe(checkbox);
    }
    setWidgetObservable(newWidgetObservable, true);
    super.setModelObservable(modelProperty);
}

From source file:org.eclipse.papyrus.infra.widgets.editors.BooleanRadio.java

License:Open Source License

/**
 * Defines a single observable value, encapsulating the ones
 * from each radio button (true / false)
 * /*from  ww  w  .  j  a va2  s  .c  o  m*/
 * @return The encapsulating observable value
 */
private IObservableValue getObservable() {
    IObservableValue trueObservable = WidgetProperties.selection().observe(trueRadio);
    IObservableValue falseObservable = WidgetProperties.selection().observe(falseRadio);

    SelectObservableValue observable = new SelectObservableValue();
    observable.addOption(true, trueObservable);
    observable.addOption(false, falseObservable);

    return observable;
}

From source file:org.eclipse.papyrus.infra.widgets.editors.BooleanToggle.java

License:Open Source License

private BooleanToggle(Composite parent, int style, String label, Image image, String text) {
    super(parent, SWT.NONE, label);

    toggleButton = factory.createButton(this, null, style | SWT.TOGGLE);
    setWidgetObservable(WidgetProperties.selection().observe(toggleButton));
    setCommitOnFocusLost(toggleButton);//from w w  w . ja  v  a  2 s .  co m
    toggleButton.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            commit();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            //Nothing
        }
    });

    setText(text);
    setImage(image);
}

From source file:org.eclipse.papyrus.infra.widgets.editors.EnumRadio.java

License:Open Source License

/**
 * Sets the content provider for this editor. The Content provider should
 * specify the values that can be set for this property
 * //from   w w w .  j ava 2s  .  com
 * @param contentProvider
 *        The Content provider returning the available values for this editor
 * @param labelProvider
 *        The label provider returning a label for each value of the
 *        content provider. If null, a default label provider will be used
 */
public void setProviders(IStaticContentProvider contentProvider, ILabelProvider labelProvider) {
    this.contentProvider = contentProvider;
    if (labelProvider != null) {
        this.labelProvider = labelProvider;
    }

    disposeButtons();
    if (widgetObservable != null) {
        widgetObservable.dispose();
    }

    SelectObservableValue observable = new SelectObservableValue();
    for (Object value : contentProvider.getElements()) {
        Button button = factory.createButton(buttonsArea, labelProvider.getText(value), SWT.RADIO);
        button.setBackground(buttonsArea.getBackground()); //For Radio buttons, we need to force the color
        button.setData(value);
        button.setToolTipText(toolTipText);
        IObservableValue buttonObservable = WidgetProperties.selection().observe(button);
        observable.addOption(value, buttonObservable);

        values.put(button, value);
    }

    setWidgetObservable(observable, true);
    updateLayout();

    doBinding();
}

From source file:org.eclipse.papyrus.widgets.editors.BooleanCheckbox.java

License:Open Source License

/**
 * //from w  ww . j  av  a  2s .  c  o m
 * Constructor. Creates a new Property Editor for a Boolean
 * value, represented as a Checkbox, with the given label
 * 
 * @param parent
 *        This editor's parent composite
 * @param style
 *        The style applied to this editor's checkbox
 * @param label
 *        The label for this editor
 */
public BooleanCheckbox(Composite parent, int style, String label) {
    super(parent);
    checkbox = factory.createButton(this, label, SWT.CHECK | style);
    //checkbox = new Button(this, SWT.CHECK | style);

    setWidgetObservable(WidgetProperties.selection().observe(checkbox), true);

    setCommitOnFocusLost(checkbox);
}

From source file:org.eclipse.papyrus.widgets.editors.BooleanToggle.java

License:Open Source License

private BooleanToggle(Composite parent, int style, String label, Image image, String text) {
    super(parent, SWT.NONE, label);

    toggleButton = factory.createButton(this, null, style | SWT.TOGGLE);
    setWidgetObservable(WidgetProperties.selection().observe(toggleButton));
    setCommitOnFocusLost(toggleButton);//from   ww  w . j  av a  2  s.co  m

    setText(text);
    setImage(image);
}

From source file:org.eclipse.papyrus.widgets.editors.EnumRadio.java

License:Open Source License

@Override
protected void doBinding() {
    disposeButtons();//from   w ww  .j a  v a  2s  . c o m

    if (modelProperty != null && contentProvider != null) {
        SelectObservableValue observable = new SelectObservableValue();
        for (Object value : contentProvider.getElements()) {
            Button button = factory.createButton(buttonsArea, labelProvider.getText(value), SWT.RADIO);
            button.setBackground(buttonsArea.getBackground()); //For Radio buttons, we need to force the color
            button.setData(value);
            button.setToolTipText(toolTipText);
            IObservableValue buttonObservable = WidgetProperties.selection().observe(button);
            observable.addOption(value, buttonObservable);

            values.put(button, value);
        }

        setWidgetObservable(observable);

        super.doBinding();
    }

    updateLayout();
}

From source file:org.eclipse.pde.ds.ui.internal.editor.OverviewPage.java

License:Open Source License

public void bind(DataBindingContext bindingContext) {
    final EditingDomain editingDomain = ((DSEditor) getEditor()).getEditingDomain();

    /**//  w ww  .ja va2s  . c  om
     * Bind Component composite
     */
    // component name
    bindingContext.bindValue(WidgetProperties.text(SWT.FocusOut).observe(_componentComposite.getTextName()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Name())
                    .observeDetail(getObservedValue()),
            null, null);
    // component impl
    bindingContext.bindValue(
            WidgetProperties.text(SWT.FocusOut).observe(_componentComposite.getTextImplementation()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Implementation())
                    .value(ScrPackage.eINSTANCE.getImplementation_Class()).observeDetail(getObservedValue()),
            new EMFUpdateValueStrategy() {
                @Override
                public Object convert(Object value) {
                    if (((String) value).trim().equals(""))
                        return null;
                    return super.convert(value);
                }
            }, null);

    // component activate
    bindingContext.bindValue(WidgetProperties.text(SWT.FocusOut).observe(_componentComposite.getTextActivate()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Activate())
                    .observeDetail(getObservedValue()),
            null, null);

    // component deactivate
    bindingContext.bindValue(
            WidgetProperties.text(SWT.FocusOut).observe(_componentComposite.getTextDeactivate()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Deactivate())
                    .observeDetail(getObservedValue()),
            null, null);

    // component modified
    bindingContext.bindValue(WidgetProperties.text(SWT.FocusOut).observe(_componentComposite.getTextModified()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Modified())
                    .observeDetail(getObservedValue()),
            null, null);

    /**
     * Bind Options composite
     */
    // component factory ID
    bindingContext.bindValue(WidgetProperties.text(SWT.FocusOut).observe(_optionsComposite.getTextFactory()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Factory())
                    .observeDetail(getObservedValue()),
            null, null);
    // component configuration policy
    bindingContext.bindValue(
            ViewerProperties.singleSelection().observe(_optionsComposite.getComboViewerConfigurationPolicy()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_ConfigurationPolicy())
                    .observeDetail(getObservedValue()),
            null, null);
    // component enablement
    bindingContext.bindValue(WidgetProperties.selection().observe(_optionsComposite.getButtonEnabled()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Enabled())
                    .observeDetail(getObservedValue()),
            null, null);
    // component immediacy
    bindingContext.bindValue(WidgetProperties.selection().observe(_optionsComposite.getButtonImmediate()),
            EMFEditProperties.value(editingDomain, ScrPackage.eINSTANCE.getComponent_Immediate())
                    .observeDetail(getObservedValue()),
            null, null);

    // perform bindings to get a message manager up to date
    // FIXME this is just not good to do such a thing :)
    bindingContext.updateModels();
    editingDomain.getCommandStack().flush();
}