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

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

Introduction

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

Prototype

@Deprecated
public static ISWTObservableValue observeEnabled(Control control) 

Source Link

Document

Returns an observable value tracking the enabled state of the given control

Usage

From source file:de.walware.statet.r.internal.sweave.processing.TexTab.java

License:Open Source License

@Override
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
    fOpenTexEnabledValue = new WritableValue(realm, false, Boolean.class);
    fOpenTexOnErrorsEnabledValue = new WritableValue(realm, false, Boolean.class);
    fOutputDirValue = new WritableValue(realm, null, String.class);
    fBuildTexTypeValue = new WritableValue(realm, 0, Integer.class);
    fBuildTexBuilderIdValue = new WritableValue(realm, 0, Integer.class);
    fBuildTexRCommandsValue = new WritableValue(realm, "", String.class); //$NON-NLS-1$
    fOutputFormatValue = new WritableValue(realm, "", String.class); //$NON-NLS-1$

    final ISWTObservableValue openObs = SWTObservables.observeSelection(fOpenTexFileControl);
    dbc.bindValue(openObs, fOpenTexEnabledValue, null, null);
    dbc.bindValue(SWTObservables.observeSelection(fOpenTexFileOnErrorsControl), fOpenTexOnErrorsEnabledValue,
            null, null);//from   w ww.  j a  v  a2 s  .  c  o  m
    dbc.bindValue(new RadioGroupObservable(realm,
            new Button[] { fBuildTexFileDisabledControl, fBuildTexFileEclipseControl, fBuildTexFileRControl }),
            fBuildTexTypeValue, null, null);
    dbc.bindValue(new BuildChooserObservable(fBuildTexTypeChooser), fBuildTexBuilderIdValue, null, null);
    dbc.bindValue(SWTObservables.observeText(fConsoleCommandEditor.getTextControl(), SWT.Modify),
            fBuildTexRCommandsValue, null, null);
    dbc.bindValue(SWTObservables.observeText(fOutputFormatControl), fOutputFormatValue);

    fBuildTexBuilderIdValue.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            updateFormat();
        }
    });
    fBuildTexTypeValue.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final Object newValue = event.diff.getNewValue();
            final int typeId = (newValue instanceof Integer) ? ((Integer) newValue).intValue() : -1;
            switch (typeId) {
            case BUILDTEX_TYPE_ECLIPSE:
                updateFormat();
                break;
            case BUILDTEX_TYPE_RCONSOLE:
                if (RweaveTexLaunchDelegate.DEFAULT_BUILDTEX_R_COMMANDS
                        .equals(fBuildTexRCommandsValue.getValue())) {
                    fOutputFormatValue.setValue(RweaveTexLaunchDelegate.DEFAULT_BUILDTEX_FORMAT);
                }
                break;
            }

        }
    });

    // Enablement
    dbc.bindValue(SWTObservables.observeEnabled(fOpenTexFileOnErrorsControl), openObs, null, null);
    final Composite group = fBuildTexTypeChooser.getControl();
    dbc.bindValue(new SWTMultiEnabledObservable(realm, group.getChildren(), null),
            new ComputedValue(realm, Boolean.class) {
                @Override
                protected Object calculate() {
                    return (((Integer) fBuildTexTypeValue
                            .getValue()) == RweaveTexLaunchDelegate.BUILDTEX_TYPE_ECLIPSE);
                }
            }, null, null);
    dbc.bindValue(
            new SWTMultiEnabledObservable(realm, new Control[] { fConsoleCommandEditor.getControl() }, null),
            new ComputedValue(realm, Boolean.class) {
                @Override
                protected Object calculate() {
                    return (((Integer) fBuildTexTypeValue
                            .getValue()) == RweaveTexLaunchDelegate.BUILDTEX_TYPE_RCONSOLE);
                }
            }, null, null);
    dbc.bindValue(new SWTMultiEnabledObservable(realm, new Control[] { fOutputFormatControl }, null),
            new ComputedValue(realm, Boolean.class) {
                @Override
                protected Object calculate() {
                    return (((Integer) fBuildTexTypeValue
                            .getValue()) != RweaveTexLaunchDelegate.BUILDTEX_TYPE_ECLIPSE);
                }
            }, null, null);

    dbc.bindValue(fOutputDirControl.getObservable(), fOutputDirValue,
            new UpdateValueStrategy().setAfterGetValidator(fOutputDirControl.getValidator()), null);
}

From source file:de.walware.statet.redocs.internal.tex.r.ui.processing.TexTab.java

License:Open Source License

@Override
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
    final ISWTObservableValue openObs = SWTObservables.observeSelection(this.fOpenTexFileControl);
    dbc.bindValue(openObs, this.fOpenTexEnabledValue, null, null);
    dbc.bindValue(SWTObservables.observeSelection(this.fOpenTexFileOnErrorsControl),
            this.fOpenTexOnErrorsEnabledValue, null, null);
    dbc.bindValue(/*from w w  w . j a v  a2  s  . co  m*/
            new RadioGroupObservable(realm, new Button[] { this.fBuildTexFileDisabledControl,
                    this.fBuildTexFileEclipseControl, this.fBuildTexFileRControl }),
            this.fBuildTexTypeValue, null, null);
    dbc.bindValue(new BuildChooserObservable(this.fBuildTexTypeChooser), this.fBuildTexBuilderIdValue, null,
            null);
    dbc.bindValue(SWTObservables.observeText(this.fConsoleCommandEditor.getTextControl(), SWT.Modify),
            this.fBuildTexRCommandsValue, null, null);
    dbc.bindValue(SWTObservables.observeText(this.fOutputFormatControl), this.fOutputFormatValue);

    this.fBuildTexBuilderIdValue.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            updateFormat();
        }
    });
    this.fBuildTexTypeValue.addValueChangeListener(new IValueChangeListener() {
        @Override
        public void handleValueChange(final ValueChangeEvent event) {
            final Object newValue = event.diff.getNewValue();
            final int typeId = (newValue instanceof Integer) ? ((Integer) newValue).intValue() : -1;
            switch (typeId) {
            case BUILDTEX_TYPE_ECLIPSE:
                updateFormat();
                break;
            case BUILDTEX_TYPE_RCONSOLE:
                if (TexRweaveLaunchDelegate.DEFAULT_BUILDTEX_R_COMMANDS
                        .equals(TexTab.this.fBuildTexRCommandsValue.getValue())) {
                    TexTab.this.fOutputFormatValue.setValue(TexRweaveLaunchDelegate.DEFAULT_BUILDTEX_FORMAT);
                }
                break;
            }

        }
    });

    // Enablement
    dbc.bindValue(SWTObservables.observeEnabled(this.fOpenTexFileOnErrorsControl), openObs, null, null);
    final Composite group = this.fBuildTexTypeChooser.getControl();
    dbc.bindValue(new SWTMultiEnabledObservable(realm, group.getChildren(), null),
            new ComputedValue(realm, Boolean.class) {
                @Override
                protected Object calculate() {
                    return (((Integer) TexTab.this.fBuildTexTypeValue
                            .getValue()) == TexRweaveLaunchDelegate.BUILDTEX_TYPE_ECLIPSE);
                }
            }, null, null);
    dbc.bindValue(new SWTMultiEnabledObservable(realm,
            new Control[] { this.fConsoleCommandEditor.getControl() }, null),
            new ComputedValue(realm, Boolean.class) {
                @Override
                protected Object calculate() {
                    return (((Integer) TexTab.this.fBuildTexTypeValue
                            .getValue()) == TexRweaveLaunchDelegate.BUILDTEX_TYPE_RCONSOLE);
                }
            }, null, null);
    dbc.bindValue(new SWTMultiEnabledObservable(realm, new Control[] { this.fOutputFormatControl }, null),
            new ComputedValue(realm, Boolean.class) {
                @Override
                protected Object calculate() {
                    return (((Integer) TexTab.this.fBuildTexTypeValue
                            .getValue()) != TexRweaveLaunchDelegate.BUILDTEX_TYPE_ECLIPSE);
                }
            }, null, null);

    dbc.bindValue(this.fOutputDirControl.getObservable(), this.fOutputDirValue,
            new UpdateValueStrategy().setAfterGetValidator(this.fOutputDirControl.getValidator()), null);
}

From source file:era.foss.typeeditor.spectype.AttributeDefinitionDetailViewer.java

License:Open Source License

/**
 * Show UI elements for DatatypeDefintionInteger
 *//*from www.j av  a  2 s  .co  m*/
private void createDetailsSimple() {
    AttributeDefinitionSimple attributeDefinitionSimple = (AttributeDefinitionSimple) master.getValue();

    Button defaultValueCheckbox = createDefaultValueCheckbox(attributeDefinitionSimple,
            ErfPackage.Literals.ATTRIBUTE_DEFINITION_SIMPLE__DEFAULT_VALUE);

    // label for default value
    Label defaultValueLabel = new Label(detailComposite, SWT.NONE);
    defaultValueLabel.setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_DEFINITION_SIMPLE__DEFAULT_VALUE));
    defaultValueLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));

    // text field for default value
    BindingText defaultValueTextfield = new BindingText(detailComposite, SWT.BORDER);
    defaultValueTextfield.bind(editingDomain,
            new EStructuralFeature[] { ErfPackage.Literals.ATTRIBUTE_DEFINITION_SIMPLE__DEFAULT_VALUE,
                    ErfPackage.Literals.ATTRIBUTE_VALUE_SIMPLE__THE_VALUE },
            master);
    defaultValueTextfield.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    // only enable textfield in case the checkbox is set
    dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultValueTextfield),
            SWTObservables.observeSelection(defaultValueCheckbox));

}

From source file:era.foss.typeeditor.spectype.AttributeDefinitionDetailViewer.java

License:Open Source License

/**
 * Show UI elements for DatatypeDefintionBoolean
 *///from   w  w  w. j a v a2s . c  o m
private void createDetailsBoolean() {
    AttributeDefinitionBoolean attributeDefinitionBoolean = (AttributeDefinitionBoolean) master.getValue();

    Button defaultValueEnableCheckbox = createDefaultValueCheckbox(attributeDefinitionBoolean,
            ErfPackage.Literals.ATTRIBUTE_DEFINITION_BOOLEAN__DEFAULT_VALUE);

    // label for default value
    Label defaultValueLabel = new Label(detailComposite, SWT.NONE);
    defaultValueLabel.setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_DEFINITION_BOOLEAN__DEFAULT_VALUE));
    defaultValueLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));

    // text field for default value
    BindingCheckBox defaultValueCheckBox = new BindingCheckBox(detailComposite, SWT.NONE);
    defaultValueCheckBox.bind(editingDomain,
            new EStructuralFeature[] { ErfPackage.Literals.ATTRIBUTE_DEFINITION_BOOLEAN__DEFAULT_VALUE,
                    ErfPackage.Literals.ATTRIBUTE_VALUE_BOOLEAN__THE_VALUE },
            master);
    defaultValueCheckBox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    // only enable textfield in case the checkbox is set
    dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultValueCheckBox),
            SWTObservables.observeSelection(defaultValueEnableCheckbox));

}

From source file:era.foss.typeeditor.spectype.AttributeDefinitionDetailViewer.java

License:Open Source License

/**
 * Show UI elements for DatatypeDefintionEnumeration
 *//* w w w  . jav  a 2 s.  c  o m*/
private void createDetailsEnumeration() {
    final AttributeDefinitionEnumeration attributeDefinitionEnum = (AttributeDefinitionEnumeration) master
            .getValue();

    // create label for multiValued property
    Label label = new Label(detailComposite, SWT.NONE);
    label.setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__MULTI_VALUED));
    label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false));

    // create checkbox for multiValued property
    EAttribute[] isMultiValued = { ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__MULTI_VALUED };
    BindingCheckBox multiValuedCheckbox = new BindingCheckBox(detailComposite, SWT.NONE);
    multiValuedCheckbox.setLayoutData(new GridData(SWT.LEFT, SWT.DEFAULT, true, false));
    multiValuedCheckbox.bind(editingDomain, isMultiValued, master);

    // create checkbox for enabling default value
    Button defaultValueCheckbox = createDefaultValueCheckbox(attributeDefinitionEnum,
            ErfPackage.Literals.ATTRIBUTE_DEFINITION_ENUMERATION__DEFAULT_VALUE);

    // create table for selecting default EnumValue elements
    Table defaultValueTable = new Table(detailComposite,
            SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK);
    defaultValueTable.setLinesVisible(true);
    defaultValueTable.setHeaderVisible(true);

    final CheckboxTableViewer defaultValueTableViewer = new CheckboxTableViewer(defaultValueTable);
    defaultValueTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    final ObservableListContentProvider cp = new ObservableListContentProvider();
    defaultValueTableViewer.setContentProvider(cp);

    TableViewerColumn column = new TableViewerColumn(defaultValueTableViewer, SWT.NONE);

    column.getColumn().setResizable(false);
    column.getColumn().setMoveable(false);
    column.getColumn().setText(Ui.getUiName(ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES));
    column.getColumn().pack();

    // set label provider
    IValueProperty elementProperty = EMFEditProperties.value(editingDomain,
            FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.IDENTIFIABLE__LONG_NAME }));
    IObservableMap attributeMap = elementProperty.observeDetail(cp.getKnownElements());
    column.setLabelProvider(new ObservableMapCellLabelProvider(attributeMap));

    // Add provider for the check stare of the table viewer
    // A value is checked if it is referred by the Default value of the AttributeDefintionEnumeration
    defaultValueTableViewer.setCheckStateProvider(new ICheckStateProvider() {
        @Override
        public boolean isGrayed(Object element) {
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            AttributeValueEnumeration enumDefaultValue = attributeDefinitionEnum.getDefaultValue();
            return enumDefaultValue != null && enumDefaultValue.getValues().contains(element);
        }
    });

    // If a EnumValue is selected add it to the list of Default values for the AttributeDefintionEnumeration
    // Otherwise remove it from the list of default values
    defaultValueTableViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            // we don't need to check if the default value object is null as
            // in this case table viewer is disabled
            assert (attributeDefinitionEnum.getDefaultValue() != null);

            EnumValue enumValue = ((EnumValue) event.getElement());
            Command command = null;

            if (event.getChecked() == true) {
                command = AddCommand.create(editingDomain, attributeDefinitionEnum.getDefaultValue(),
                        ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES, enumValue);
            } else {
                command = RemoveCommand.create(editingDomain, attributeDefinitionEnum.getDefaultValue(),
                        ErfPackage.Literals.ATTRIBUTE_VALUE_ENUMERATION__VALUES, enumValue);
            }
            editingDomain.getCommandStack().execute(command);
        }
    });

    // observe values of DatatypeDefinition selected for the AttributeDefintionEnumeration
    IEMFListProperty enumerationProperty = EMFProperties.list(
            FeaturePath.fromList(new EStructuralFeature[] { ErfPackage.Literals.ATTRIBUTE_DEFINITION__TYPE,
                    ErfPackage.Literals.DATATYPE_DEFINITION_ENUMERATION__SPECIFIED_VALUES }));
    IObservableList dataTypeEnumValueObserver = enumerationProperty.observe(attributeDefinitionEnum);
    defaultValueTableViewer.setInput(dataTypeEnumValueObserver);

    // only enable table viewer in case a default value exists
    dataBindingContext.bindValue(SWTObservables.observeEnabled(defaultValueTable),
            SWTObservables.observeSelection(defaultValueCheckbox));

}

From source file:gov.nasa.ensemble.core.detail.emf.util.EMFDetailUtils.java

License:Open Source License

/**
 * Bind the control's enabled state and editability (for Text controls) with respect to the target object's feature value. If equalityCheck is true, the control is editable and enabled if
 * target.eGet(feature).equals(value), otherwise if the equalityCheeck is false, then the control is editable and enabled if !target.eGet(feature).equals(value)
 * /*from   w ww . j ava2s . c  o  m*/
 * @param dbc
 *            data binding context
 * @param control
 *            to control editability and enabled state
 * @param target
 *            model to observe
 * @param feature
 *            to observe
 * @param value
 *            to check for equality
 * @param equalityCheck
 *            true if equality implies enabled/editable
 */
public static void bindControlViability(DataBindingContext dbc, Control control, EObject target,
        EStructuralFeature feature, Object value, boolean equalityCheck) {
    bindControlViability(dbc, target, feature, value, SWTObservables.observeEnabled(control), equalityCheck);
    if (control instanceof Text) {
        bindControlViability(dbc, target, feature, value, SWTObservables.observeEditable(control),
                equalityCheck);
    }
}

From source file:gov.nasa.ensemble.core.detail.emf.util.EMFDetailUtils.java

License:Open Source License

public static void bindControlViability(DataBindingContext dbc, IObservableValue observable,
        Control[] controls) {/*from   w  ww  .  j  a  v a 2 s  .  co m*/
    for (Control control : controls) {
        try {
            Binding binding = dbc.bindValue(SWTObservables.observeEditable(control), observable);
            dbc.addBinding(binding);
            binding.updateModelToTarget();
        } catch (IllegalArgumentException e) { /* some controls just cannot be controlled as such */
        } catch (Exception e) {
            LogUtil.error("cannot create binding", e);
        }
        try {
            Binding binding = dbc.bindValue(SWTObservables.observeEnabled(control), observable);
            dbc.addBinding(binding);
            binding.updateModelToTarget();
        } catch (IllegalArgumentException e) { /* some controls just cannot be controlled as such */
        } catch (Exception e) {
            LogUtil.error("cannot create binding", e);
        }
    }
}

From source file:gov.nasa.ensemble.core.model.plan.temporal.provider.TemporalDetailProvider.java

License:Open Source License

private void bindEditabilityAndCalculatedVariable(DataBindingContext dbc, EObject target, Object feature,
        Control control) {/*  w ww .  ja  v a 2  s  . c  om*/
    ISWTObservableValue textEditability = SWTObservables.observeEnabled(control);
    IObservableValue calculatedVariableValue = observeCalculatedVariable(target);
    final CalculatedVariable calculatedVariable = getCalculatedVariable(feature);
    UpdateValueStrategy calculatedVariableToEditability = new UpdateValueStrategy() {
        @Override
        public Object convert(Object value) {
            if (value instanceof Set) {
                return !(((Set) value).contains(calculatedVariable));
            }
            if (value == calculatedVariable) {
                return false;
            }
            return true;
        }
    };
    Binding editabilityBinding = dbc.bindValue(textEditability, calculatedVariableValue, null,
            calculatedVariableToEditability);
    dbc.addBinding(editabilityBinding);
}

From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerTypeSelectionWizardPage.java

License:Open Source License

private void createBindings() {
    // create new Context
    this.ctx = new DataBindingContext();

    //      /*from ww w  .java  2  s  . c  om*/
    //      // Binding for the antenna only option
    //      this.ctx.bindValue(SWTObservables.observeSelection(this.deviceTypeAntennaButton),
    //         EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__ANTENNA), new UpdateValueStrategy(), new UpdateValueStrategy());

    // Binding for GPS ingest & output
    this.ctx.bindValue(SWTObservables.observeSelection(this.ingestGPSCheckbox),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__INGESTS_GPS),
            new UpdateValueStrategy(), new UpdateValueStrategy());

    this.ctx.bindValue(SWTObservables.observeSelection(this.outputGPSCheckbox),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__OUTPUTS_GPS),
            new UpdateValueStrategy(), new UpdateValueStrategy());

    // Need custom update value strat for the group binding since false -> true and true -> false
    UpdateValueStrategy tunerTypeGroupUVS = new UpdateValueStrategy();
    tunerTypeGroupUVS.setConverter(new IConverter() {

        @Override
        public Object getToType() {
            return Boolean.class;
        }

        @Override
        public Object getFromType() {
            return Boolean.class;
        }

        @Override
        public Object convert(Object fromObject) {
            return !((Boolean) fromObject).booleanValue();
        }
    });

    this.ctx.bindValue(SWTObservables.observeEnabled(this.tunerTypeGroup),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__ANTENNA),
            new UpdateValueStrategy(), tunerTypeGroupUVS);

    this.ctx.bindValue(SWTObservables.observeEnabled(this.receiveOnlyTunerButton),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__ANTENNA),
            new UpdateValueStrategy(), tunerTypeGroupUVS);

    this.ctx.bindValue(SWTObservables.observeEnabled(this.transmitOnlyTunerButton),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__ANTENNA),
            new UpdateValueStrategy(), tunerTypeGroupUVS);

    this.ctx.bindValue(SWTObservables.observeEnabled(this.bothRxTxButton),
            EMFObservables.observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__ANTENNA),
            new UpdateValueStrategy(), tunerTypeGroupUVS);

    // Bindings for the tuner type is difficult since it is a 3 way with the third option being both the 1st and 2nd so listeners are used.
    this.bothRxTxButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FrontEndTunerTypeSelectionWizardPage.this.feiDevice.setRxTuner(true);
            FrontEndTunerTypeSelectionWizardPage.this.feiDevice.setTxTuner(true);
        }
    });

    this.receiveOnlyTunerButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FrontEndTunerTypeSelectionWizardPage.this.feiDevice.setRxTuner(true);
            FrontEndTunerTypeSelectionWizardPage.this.feiDevice.setTxTuner(false);
        }
    });

    this.transmitOnlyTunerButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FrontEndTunerTypeSelectionWizardPage.this.feiDevice.setRxTuner(false);
            FrontEndTunerTypeSelectionWizardPage.this.feiDevice.setTxTuner(true);
        }
    });

    IWizardPage[] wizPages = this.getWizard().getPages();
    ScaDeviceProjectPropertiesWizardPage propWizPage = null;

    for (IWizardPage wizPage : wizPages) {
        if (wizPage instanceof ScaDeviceProjectPropertiesWizardPage) {
            propWizPage = (ScaDeviceProjectPropertiesWizardPage) wizPage;
            break;
        }
    }

    // This must come after the creation of the page support since creation of page support updates the 
    // error message.  The WizardPageSupport doesn't update the error message because no UI elements have changed
    // so this is a bit of a hack.
    if (propWizPage != null) {
        this.validator = new FrontEndProjectValidator(propWizPage.getProjectSettings(), this);
        ctx.addValidationStatusProvider(validator);
        IObservableValue validationStatus = validator.getValidationStatus();
        validationStatus.addChangeListener(new IChangeListener() {

            @Override
            public void handleChange(ChangeEvent event) {
                if (validator != null) {
                    updateErrorMessage();
                }
            }
        });

        updateErrorMessage();
    }

}

From source file:gov.redhawk.prf.internal.ui.editor.detailspart.BasicSimplePropertyDetailsPage.java

License:Open Source License

public List<Binding> bindButton(final DataBindingContext context, final Button rangeButton, final Text minText,
        final Text maxText) {

    final EMFUpdateValueStrategy targetToModel = new EMFUpdateValueStrategy();
    targetToModel.setConverter(new Converter(Boolean.class, Range.class) {

        @Override//from www  .  j a  v a2s  .c o  m
        public Object convert(final Object fromObject) {
            if ((Boolean) fromObject) {
                return PrfFactory.eINSTANCE.createRange();
            } else {
                return null;
            }
        }
    });

    final EMFUpdateValueStrategy modelToTarget = new EMFUpdateValueStrategy();
    modelToTarget.setConverter(new Converter(Range.class, Boolean.class) {

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

    });

    final List<Binding> buttonBindings = new ArrayList<Binding>();
    buttonBindings.add(context.bindValue(SWTObservables.observeSelection(rangeButton),
            EMFEditObservables.observeValue(getEditingDomain(), this.input, this.property.getRange()),
            targetToModel, modelToTarget));

    buttonBindings.add(context.bindValue(SWTObservables.observeEnabled(minText),
            SWTObservables.observeSelection(rangeButton)));
    buttonBindings.add(context.bindValue(SWTObservables.observeEnabled(maxText),
            SWTObservables.observeSelection(rangeButton)));
    return buttonBindings;
}