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

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

Introduction

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

Prototype

public static IWidgetValueProperty enabled() 

Source Link

Document

Returns a value property for observing the enablement state of a Control , Menu (since 1.5), MenuItem (since 1.5), ScrollBar (since 1.5) or ToolItem (since 1.5).

Usage

From source file:at.bestsolution.e4.addressbook.ui.swt.AddressForm.java

License:Open Source License

public void bindControls(DataBindingContext dbc, IObservableValue master) {
    this.dbc = dbc;
    this.master = master;

    IWidgetValueProperty tProp = WidgetProperties.text(SWT.Modify);
    IViewerValueProperty sProp = ViewerProperties.singleSelection();

    {/*from ww w  .  j a va  2  s  .c om*/
        IEMFValueProperty mProp = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__STREET);
        dbc.bindValue(tProp.observe(w_street), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__ZIP);
        dbc.bindValue(tProp.observe(w_zip), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFProperties.value(AddressbookPackage.Literals.ADDRESS__CITY);
        dbc.bindValue(tProp.observe(w_city), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFProperties
                .value(FeaturePath.fromList(AddressbookPackage.Literals.ADDRESS__COUNTRY));
        dbc.bindValue(sProp.observe(v_country), mProp.observeDetail(master));
    }

    bindState();

    IWidgetValueProperty eProp = WidgetProperties.enabled();

    for (Control c : getChildren()) {
        EMFUpdateValueStrategy modelToTarget = new EMFUpdateValueStrategy();
        modelToTarget.setConverter(new Converter(Address.class, boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                return fromObject != null;
            }
        });

        final Binding b = dbc.bindValue(eProp.observe(c), master,
                new EMFUpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modelToTarget);
        master.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (event.diff.getNewValue() == null)
                    b.updateModelToTarget();
            }
        });
    }
}

From source file:at.bestsolution.e4.addressbook.ui.swt.AddressForm.java

License:Open Source License

public void bindControls(EditingDomain editingDomain, DataBindingContext dbc, IObservableValue master) {
    this.dbc = dbc;
    this.master = master;
    this.editingDomain = editingDomain;

    IWidgetValueProperty tProp = WidgetProperties.text(SWT.Modify);
    IViewerValueProperty sProp = ViewerProperties.singleSelection();

    {//from  w  w  w  .  j a  va  2s .  c o  m
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                AddressbookPackage.Literals.ADDRESS__STREET);
        dbc.bindValue(tProp.observeDelayed(PersonForm.DELAY, w_street), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                AddressbookPackage.Literals.ADDRESS__ZIP);
        dbc.bindValue(tProp.observeDelayed(PersonForm.DELAY, w_zip), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                AddressbookPackage.Literals.ADDRESS__CITY);
        dbc.bindValue(tProp.observeDelayed(PersonForm.DELAY, w_city), mProp.observeDetail(master));
    }

    {
        IEMFValueProperty mProp = EMFEditProperties.value(editingDomain,
                FeaturePath.fromList(AddressbookPackage.Literals.ADDRESS__COUNTRY));
        dbc.bindValue(sProp.observe(v_country), mProp.observeDetail(master));
    }

    bindState();

    IWidgetValueProperty eProp = WidgetProperties.enabled();

    for (Control c : getChildren()) {
        EMFUpdateValueStrategy modelToTarget = new EMFUpdateValueStrategy();
        modelToTarget.setConverter(new Converter(Address.class, boolean.class) {

            @Override
            public Object convert(Object fromObject) {
                return fromObject != null;
            }
        });

        final Binding b = dbc.bindValue(eProp.observe(c), master,
                new EMFUpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modelToTarget);
        master.addValueChangeListener(new IValueChangeListener() {

            @Override
            public void handleValueChange(ValueChangeEvent event) {
                if (event.diff.getNewValue() == null)
                    b.updateModelToTarget();
            }
        });
    }
}

From source file:ccw.preferences.HoverPreferencePage.java

License:Open Source License

protected DataBindingContext initDataBindings() {

    final DataBindingContext context = new DataBindingContext();

    // Page Support
    PreferencePageSupport.create(this, context);

    // ///////////////////////////
    // Label/Content providers \\
    // ///////////////////////////

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();

    IObservableMap[] columnsObservables = Properties.observeEach(contentProvider.getKnownElements(),
            HoverViewModel.hoverDisplayDomain);

    ObservableMapLabelProvider labelProvider = new ObservableMapLabelProvider(columnsObservables);

    fHoverTableViewer.setLabelProvider(labelProvider);
    fHoverTableViewer.setContentProvider(contentProvider);
    fHoverTableViewer.setInput(fViewModel.hoverObservableList);

    //////////////////////////
    // Selected hover logic \\
    //////////////////////////

    final IObservableValue selectedHover = ViewersObservables.observeSingleSelection(fHoverTableViewer);

    final IObservableValue isHoverSelected = new ComputedValue(Boolean.TYPE) {
        @Override/* w  ww.  ja  va2 s .com*/
        protected Object calculate() {
            return Boolean.valueOf(selectedHover.getValue() != null);
        }
    };

    context.bindValue(WidgetProperties.enabled().observe(fGrpSummary), isHoverSelected);
    context.bindValue(WidgetProperties.enabled().observe(fSummaryHoverModifierStringText), isHoverSelected);

    final IObservableValue stateMaskOfSelected = HoverViewModel.hoverStateMask.observeDetail(selectedHover);
    final IObservableValue modifierStringOfSelected = HoverViewModel.hoverModifierString
            .observeDetail(selectedHover);

    final UpdateValueStrategy modifierStringStrategyConvert = new UpdateValueStrategy(
            UpdateValueStrategy.POLICY_CONVERT);
    modifierStringStrategyConvert.setConverter(new HoverViewModel.StateMaskToModifierConverter());

    final Binding stateMaskToModifierBinding = context.bindValue(modifierStringOfSelected, stateMaskOfSelected,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), modifierStringStrategyConvert);

    if (!fViewModel.hoverObservableList.isEmpty()) {
        selectedHover.setValue(fViewModel.hoverObservableList.get(0));
    }

    //////////////////////
    // Validation logic \\
    //////////////////////

    MultiValidator validator = new MultiValidator() {

        @Override
        protected IStatus validate() {
            IStatus status = ValidationStatus.ok();

            if (isHoverSelected.getValue() == Boolean.TRUE) {
                status = fViewModel.stateMaskValidator.validate(stateMaskOfSelected.getValue());
            }

            if (status.isOK()) {
                Iterator<HoverDescriptor> it = fViewModel.checkedSet.iterator();
                while (it.hasNext()) {
                    int stateMask = it.next().getStateMask();
                    if (!fViewModel.isStateMaskUnique(stateMask)) {
                        status = fViewModel.stateMaskError(stateMask);
                    }
                }
            }
            return status;
        }
    };

    context.addValidationStatusProvider(validator);

    //////////////////////////
    // Checked hovers logic \\
    //////////////////////////

    // AR - because of some ordering issue problem, I am disabling the automatic
    // update from model to target of the checked hovers and...
    final UpdateSetStrategy checkedModelToTargetStrategy = new UpdateSetStrategy(
            UpdateValueStrategy.POLICY_ON_REQUEST);

    // AR - ... add an explicit binding that will be needed...
    final Binding checkedBindSet = context.bindSet(
            ViewersObservables.observeCheckedElements(fHoverTableViewer, HoverDescriptor.class),
            fViewModel.checkedSet, null, checkedModelToTargetStrategy);

    // AR - ...to manually trigger the update when new elements are added to the provider...
    IObservableSet realizedElements = contentProvider.getRealizedElements();
    realizedElements.addChangeListener(new IChangeListener() {
        @Override
        public void handleChange(ChangeEvent event) {
            checkedBindSet.updateModelToTarget();
        }
    });

    /////////////////
    // UI Bindings \\
    /////////////////

    EditingSupport modifierEditorSupport = ObservableValueEditingSupport.create(fHoverTableViewer, context,
            fHoverModifierStringTextCellEditor,
            CellEditorProperties.control().value(WidgetProperties.text(SWT.Modify)),
            HoverViewModel.hoverModifierString);

    fModifierTableViewerColumn.setEditingSupport(modifierEditorSupport);

    final UpdateValueStrategy statusMaskToModifierStrategy = new UpdateValueStrategy();
    statusMaskToModifierStrategy.setConverter(new HoverViewModel.StateMaskToModifierConverter());

    final UpdateValueStrategy modifierToStatusMaskStrategy = new UpdateValueStrategy();
    modifierToStatusMaskStrategy.setConverter(new HoverViewModel.ModifierToStateMaskConverter());

    context.bindValue(WidgetProperties.text().observe(fSummaryHoverNameLabel),
            HoverViewModel.hoverLabel.observeDetail(selectedHover));

    context.bindValue(WidgetProperties.text().observe(fSummaryHoverDescriptionLabel),
            HoverViewModel.hoverDescription.observeDetail(selectedHover));

    context.bindValue(WidgetProperties.text().observe(fSummaryHoverModifierStringText),
            HoverViewModel.hoverStateMask.observeDetail(selectedHover), modifierToStatusMaskStrategy,
            statusMaskToModifierStrategy);

    KeyListener stateMaskKeyListener = new KeyListener() {
        public void keyPressed(KeyEvent e) {

            boolean isPressedKeyModifier = e.keyCode > 0 && e.character == 0
                    && (e.keyCode & SWT.MODIFIER_MASK) != 0;
            boolean isStateKeyModifier = e.stateMask > 0 && (e.stateMask & SWT.MODIFIER_MASK) != 0;

            int mask = SWT.NONE;
            if (isPressedKeyModifier) {
                mask = e.keyCode;

                if (isStateKeyModifier) {
                    mask |= e.stateMask;
                }

                stateMaskOfSelected.setValue(mask);
                stateMaskToModifierBinding.updateModelToTarget();
            }
        }

        public void keyReleased(KeyEvent e) {
            if (e.keyCode == SWT.BS || e.keyCode == SWT.DEL) {
                stateMaskOfSelected.setValue(SWT.NONE);
                stateMaskToModifierBinding.updateModelToTarget();
            }
        }
    };

    fHoverModifierStringTextCellEditor.getControl().addKeyListener(stateMaskKeyListener);
    fSummaryHoverModifierStringText.addKeyListener(stateMaskKeyListener);

    return context;
}

From source file:com.amitinside.e4.rcp.todo.parts.PlaygroundPart.java

License:Apache License

/**
 * /*from  w  w w  .  java  2 s.c  o  m*/
 * @param parent
 */

@PostConstruct
public void createControls(Composite parent) {
    DataBindingContext ctx = new DataBindingContext();
    text1 = new Text(parent, SWT.LEAD | SWT.BORDER | SWT.MULTI);

    text1.setText("Hallo");

    text2 = new Text(parent, SWT.LEAD | SWT.BORDER | SWT.MULTI);
    text2.setText("Moin");

    ISWTObservableValue model = WidgetProperties.text(SWT.Modify).observe(text1);
    ISWTObservableValue target = WidgetProperties.text(SWT.Modify).observeDelayed(2000, text2);

    Button button = new Button(parent, SWT.CHECK);
    button.setText("Hello");
    // button.addSelectionListener(new SelectionAdapter() {
    // @Override
    // public void widgetSelected(SelectionEvent e) {
    //
    // }
    // });

    ISWTObservableValue model1 = WidgetProperties.selection().observe(button);
    ISWTObservableValue target1 = WidgetProperties.enabled().observe(text1);
    ctx.bindValue(target1, model1);

    // This assumes you have a vogella.png file
    // in folder images
}

From source file:com.google.cloud.tools.eclipse.appengine.deploy.ui.StandardDeployPreferencesPanel.java

License:Apache License

private void setupProjectVersionDataBinding(DataBindingContext context) {
    ISWTObservableValue overrideButton = WidgetProperties.selection().observe(overrideDefaultVersionButton);
    ISWTObservableValue versionField = WidgetProperties.text(SWT.Modify).observe(version);
    ISWTObservableValue versionLabelEnablement = WidgetProperties.enabled().observe(versionLabel);
    ISWTObservableValue versionFieldEnablement = WidgetProperties.enabled().observe(version);

    // use an intermediary value to control the enabled state of the label and the field based on the override
    // checkbox's state
    WritableValue enablement = new WritableValue();
    context.bindValue(overrideButton, enablement);
    context.bindValue(versionLabelEnablement, enablement);
    context.bindValue(versionFieldEnablement, enablement);

    IObservableValue overrideModel = PojoProperties.value("overrideDefaultVersioning").observe(model);
    IObservableValue versionModel = PojoProperties.value("version").observe(model);

    context.bindValue(enablement, overrideModel);
    context.bindValue(versionField, versionModel);

    context.addValidationStatusProvider(
            new OverrideValidator(overrideButton, versionField, new ProjectVersionValidator()));
}

From source file:com.google.cloud.tools.eclipse.appengine.deploy.ui.StandardDeployPreferencesPanel.java

License:Apache License

private void setupAutoPromoteDataBinding(DataBindingContext context) {
    ISWTObservableValue promoteButton = WidgetProperties.selection().observe(autoPromoteButton);
    ISWTObservableValue stopPreviousVersion = WidgetProperties.selection().observe(stopPreviousVersionButton);
    ISWTObservableValue stopPreviousVersionEnablement = WidgetProperties.enabled()
            .observe(stopPreviousVersionButton);

    // use an intermediary value to control the enabled state of stopPreviousVersionButton based on the promote
    // checkbox's state
    WritableValue enablement = new WritableValue();
    context.bindValue(promoteButton, enablement);
    context.bindValue(stopPreviousVersionEnablement, enablement);

    IObservableValue promoteModel = PojoProperties.value("autoPromote").observe(model);
    IObservableValue stopPreviousVersionModel = PojoProperties.value("stopPreviousVersion").observe(model);

    context.bindValue(promoteButton, promoteModel);
    context.bindValue(stopPreviousVersion, stopPreviousVersionModel);
}

From source file:com.google.cloud.tools.eclipse.appengine.deploy.ui.StandardDeployPreferencesPanel.java

License:Apache License

private void setupBucketDataBinding(DataBindingContext context) {
    ISWTObservableValue overrideButton = WidgetProperties.selection().observe(overrideDefaultBucketButton);
    ISWTObservableValue bucketField = WidgetProperties.text(SWT.Modify).observe(bucket);
    ISWTObservableValue bucketLabelEnablement = WidgetProperties.enabled().observe(bucketLabel);
    ISWTObservableValue bucketFieldEnablement = WidgetProperties.enabled().observe(bucket);

    // use an intermediary value to control the enabled state of the label and the field based on the override
    // checkbox's state
    WritableValue enablement = new WritableValue();
    context.bindValue(overrideButton, enablement);
    context.bindValue(bucketLabelEnablement, enablement);
    context.bindValue(bucketFieldEnablement, enablement);

    IObservableValue overrideModelObservable = PojoProperties.value("overrideDefaultBucket").observe(model);
    IObservableValue bucketModelObservable = PojoProperties.value("bucket").observe(model);

    context.bindValue(enablement, overrideModelObservable);
    context.bindValue(bucketField, bucketModelObservable);

    context.addValidationStatusProvider(
            new OverrideValidator(overrideButton, bucketField, new BucketNameValidator()));
}

From source file:com.google.cloud.tools.eclipse.appengine.ui.AppEngineLibrariesSelectorGroup.java

License:Apache License

/**
 * We have three bindings for each library:
 * <ol><li>A one-way binding of the checkbox selection state to add or remove the corresponding library from our
 * selected-libraries list.</li>//from   w w  w.j a  v  a  2s.  c  o  m
 * <li>The opposite of the first, a one-way binding to set the checkbox selection state when the corresponding
 * library has been selected or if it is a dependency of another selected library.</li>
 * <li>A one-way binding to set the checkbox enablement when the corresponding library is a dependency of a selected
 * library.</li>
 * </ol>
 * @param libraryButton to which the databinding will be configured.
 */
private void setupDatabindingForButton(final Button libraryButton) {
    final Library library = (Library) libraryButton.getData();
    ISWTObservableValue libraryButtonSelection = WidgetProperties.selection().observe(libraryButton);
    ISWTObservableValue libraryButtonEnablement = WidgetProperties.enabled().observe(libraryButton);
    // library selection UI -> model
    bindingContext.bindValue(libraryButtonSelection, new NullComputedValue(getDisplayRealm()),
            new UpdateValueStrategy()
                    .setConverter(new HandleLibrarySelectionConverter(selectedLibraries, library)),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
    // UI <- library selection model
    bindingContext.bindValue(libraryButtonSelection,
            new DependentLibrarySelected(getDisplayRealm(), library.getId(), true /* resultIfFound */) {
                @Override
                protected Object calculate() {
                    if (libraryButton.getData(BUTTON_MANUAL_SELECTION_KEY) != null) {
                        return true;
                    } else {
                        return super.calculate();
                    }
                }
            }, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy());
    // UI enablement <- library is a dependency
    bindingContext.bindValue(libraryButtonEnablement,
            new DependentLibrarySelected(getDisplayRealm(), library.getId(), false /* resultIfFound */),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), new UpdateValueStrategy());
}

From source file:com.htmlhifive.tools.jslint.dialog.ConfirmLicenseDialog.java

License:Apache License

/**
 * ???./*from  w  w w  . j  a va  2s .c  o  m*/
 */
private void initialDataBinding() {

    DataBindingContext context = new DataBindingContext();

    // OK?Validator
    UpdateValueStrategy strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {
        @Override
        public IStatus validate(Object value) {
            getButton(IDialogConstants.OK_ID).setEnabled((Boolean) value);
            return null;
        }
    });
    IObservableValue obsSelectiveAcceptLicense = WidgetProperties.selection().observe(btnAcceptLicense);
    IObservableValue obsEnabledOkButton = WidgetProperties.enabled().observe(getButton(IDialogConstants.OK_ID));
    context.bindValue(obsSelectiveAcceptLicense, obsEnabledOkButton, null, null);

}

From source file:com.planetmayo.debrief.satc_rcp.ui.contributions.BaseContributionView.java

License:Open Source License

/**
 * binds model value to specified slider, label and checkBox with specified
 * converters returns writable value which is used to store direct ui value
 *//*www  .  j  av  a2s.  c  om*/
protected WritableValue bindSliderLabelCheckbox(DataBindingContext context, final IObservableValue modelValue,
        Scale slider, Label label, Button checkBox, PrefixSuffixLabelConverter labelValueConverter,
        BooleanToNullConverter<?> checkBoxValueConverter, UnitConverter unitConverter) {
    final WritableValue uiProxy = new WritableValue(modelValue.getValue(), modelValue.getValueType());

    IObservableValue sliderValue = WidgetProperties.selection().observe(slider);
    IObservableValue labelValue = WidgetProperties.text().observe(label);

    if (unitConverter != null) {
        IConverter modelToUI = new CompoundConverter(unitConverter.getModelToUI(), new IntegerConverter());
        context.bindValue(sliderValue, uiProxy, UIUtils.converterStrategy(unitConverter.getUIToModel()),
                UIUtils.converterStrategy(modelToUI));
    } else {
        context.bindValue(sliderValue, uiProxy);
    }
    if (checkBox != null) {
        IObservableValue sliderEnabled = WidgetProperties.enabled().observe(slider);
        IObservableValue checkBoxValue = WidgetProperties.selection().observe(checkBox);
        context.bindValue(checkBoxValue, modelValue, UIUtils.converterStrategy(checkBoxValueConverter),
                UIUtils.converterStrategy(new NullToBooleanConverter()));
        context.bindValue(sliderEnabled, modelValue, null,
                UIUtils.converterStrategy(new NullToBooleanConverter()));
    }

    context.bindValue(labelValue, uiProxy, null, UIUtils.converterStrategy(labelValueConverter));
    context.bindValue(uiProxy, modelValue, new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);
    slider.addListener(SWT.MouseUp, new Listener() {
        @Override
        public void handleEvent(Event arg0) {
            modelValue.setValue(uiProxy.getValue());
        }
    });
    slider.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            if ((e.stateMask & SWT.BUTTON1) == 0) {
                modelValue.setValue(uiProxy.getValue());
            }
        }
    });
    return uiProxy;
}