/** * Creates a {@link Binding} to synchronize the values of two * {@link IObservableValue observable values}. This method is an alias for * <code>bindValue(targetObservableValue, modelObservableValue, null, * null)</code>. * * @param targetObservableValue * target value, commonly a UI widget * @param modelObservableValue * model value * @return created binding * @since 1.2 */ public final <T, M> Binding bindValue(IObservableValue<T> targetObservableValue, IObservableValue<M> modelObservableValue) { return bindValue(targetObservableValue, modelObservableValue, null, null); }
DataBindingContext bindingContext = new DataBindingContext(); IObservableValue yourTextObserveTextObserveWidget = SWTObservables.observeText(yourText, SWT.Modify); IObservableValue yourModelTemplateObserveValue = BeansObservables.observeValue(yourModel, "yourInt"); bindingContext.bindValue(yourTextObserveWidget, yourModelTemplateObserveValue, null, null);
@Override public IObservableList<ValidationStatusProvider> observe(Realm realm, DataBindingContext source) { return source.getValidationStatusProviders(); }
/** * Creates a new aggregate validation status observable for the given data * binding context. * * @param dbc * a data binding context * @param strategy * a strategy constant, one of {@link #MERGED} or * {@link #MAX_SEVERITY}. * @since 1.1 */ public AggregateValidationStatus(DataBindingContext dbc, int strategy) { this(dbc.getValidationRealm(), dbc.getValidationStatusProviders(), strategy); }
public ConfigurationFormToolkit ( final FormToolkit providedToolkit ) { this.toolkit = providedToolkit; this.toolkitCreated = false; this.dbc = new DataBindingContext (); }
Realm realm = state.bindingContext.getValidationRealm(); IObservableValue observeTarget = BeanProperties.value( controlProperty ).observe( realm, control ); UpdateValueStrategy targetToModel; state.bindingContext.bindValue( observeTarget, observeModel, targetToModel, modelToTarget );
public void handleDispose(DisposeEvent staleEvent) { Binding.this.context.getValidationRealm().exec(new Runnable() { public void run() { if (!isDisposed()) dispose(); } }); } };
/** * Initializes this binding with the given context and adds it to the list * of bindings of the context. * <p> * Subclasses may extend, but must call the super implementation. * </p> * * @param context */ public final void init(DataBindingContext context) { this.context = context; if (target.isDisposed()) throw new IllegalArgumentException("Target observable is disposed"); //$NON-NLS-1$ if (model.isDisposed()) throw new IllegalArgumentException("Model observable is disposed"); //$NON-NLS-1$ this.disposeListener = event -> { if (context != null) { context.getValidationRealm().exec(Binding.this::dispose); } }; target.addDisposeListener(disposeListener); model.addDisposeListener(disposeListener); preInit(); if (context.getValidationRealm().isCurrent()) { context.addBinding(this); } else { context.getValidationRealm().exec(() -> context.addBinding(Binding.this)); } postInit(); }
public void save( final SwtMetawidget metawidget ) { // Our bindings State state = getState( metawidget ); state.bindingContext.updateModels(); for ( Object validationStatusProvider : state.bindingContext.getValidationStatusProviders() ) { Binding binding = (Binding) validationStatusProvider; BindingStatus bindingStatus = (BindingStatus) binding.getValidationStatus().getValue(); if ( bindingStatus.isOK() ) { continue; } throw WidgetProcessorException.newException( bindingStatus.getException() ); } // Nested Metawidgets if ( state.nestedMetawidgets != null ) { for ( SwtMetawidget nestedMetawidget : state.nestedMetawidgets ) { save( nestedMetawidget ); } } }
/** * Adds the given binding to this data binding context. This will also add * the given binding to the list of validation status providers. * * @param binding * The binding to add. * @see #addValidationStatusProvider(ValidationStatusProvider) * @see #getValidationStatusProviders() */ public void addBinding(Binding binding) { addValidationStatusProvider(binding); bindings.add(binding); }
/** * Creates a {@link Binding} to synchronize the values of two * {@link IObservableList observable lists}. This method is an alias for * <code>bindList(targetObservableList, modelObservableList, null, * null)</code>. * * @param targetObservableList * target list, commonly a list representing a list in the UI * @param modelObservableList * model list * @return created binding * * @see UpdateListStrategy * @since 1.2 */ public final Binding bindList(IObservableList targetObservableList, IObservableList modelObservableList) { return bindList(targetObservableList, modelObservableList, null, null); }
model.addDisposeListener(disposeListener); preInit(); context.addBinding(this); postInit();
public ConfigurationFormToolkit ( final FormToolkit providedToolkit ) { this.toolkit = providedToolkit; this.toolkitCreated = false; this.dbc = new DataBindingContext (); }
@Override public IObservableList getModels() { return Observables.staticObservableList(context.getValidationRealm(), Collections.singletonList(model)); } }
/** * Creates a new aggregate validation status observable for the given data * binding context. * * @param dbc * a data binding context * @param strategy * a strategy constant, one of {@link #MERGED} or * {@link #MAX_SEVERITY}. * @since 1.1 */ public AggregateValidationStatus(DataBindingContext dbc, int strategy) { this(dbc.getValidationRealm(), dbc.getValidationStatusProviders(), strategy); }
/** * Adds the given binding to this data binding context. This will also add * the given binding to the list of validation status providers. * * @param binding * The binding to add. * @see #addValidationStatusProvider(ValidationStatusProvider) * @see #getValidationStatusProviders() */ public void addBinding(Binding binding) { addValidationStatusProvider(binding); bindings.add(binding); }
/** * Creates a {@link Binding} to synchronize the values of two * {@link IObservableList observable lists}. This method is an alias for * <code>bindList(targetObservableList, modelObservableList, null, * null)</code>. * * @param targetObservableList * target list, commonly a list representing a list in the UI * @param modelObservableList * model list * @return created binding * * @see UpdateListStrategy * @since 1.2 */ public final Binding bindList(IObservableList targetObservableList, IObservableList modelObservableList) { return bindList(targetObservableList, modelObservableList, null, null); }
model.addDisposeListener(disposeListener); preInit(); context.addBinding(this); postInit();
/** * Creates a {@link Binding} to synchronize the values of two * {@link IObservableValue observable values}. This method is an alias for * <code>bindValue(targetObservableValue, modelObservableValue, null, * null)</code>. * * @param targetObservableValue * target value, commonly a UI widget * @param modelObservableValue * model value * @return created binding * @since 1.2 */ public final Binding bindValue(IObservableValue targetObservableValue, IObservableValue modelObservableValue) { return bindValue(targetObservableValue, modelObservableValue, null, null); }
private void bindValues() { final DataBindingContext ctx = new DataBindingContext(); { rValue = new WritableValue(); bindValue(ctx, rootName, ClasspathEntryInfo.class, ClasspathEntryInfo.P_SYMBOLIC_NAME, rValue); bindValue(ctx, rootFingerprint, ClasspathEntryInfo.class, ClasspathEntryInfo.P_FINGERPRINT, rValue); bindValue(ctx, rootVersion, ClasspathEntryInfo.class, ClasspathEntryInfo.P_VERSION, rValue); } { mValue = new WritableValue(); bindValue(ctx, modelCoordinate, ModelArchiveMetadata.class, ModelArchiveMetadata.P_COORDINATE, mValue); final IObservableValue widgetValue = ViewerProperties.singlePostSelection().observe(modelStatus); final IObservableValue modelValue = BeanProperties.value(ModelArchiveMetadata.class, ModelArchiveMetadata.P_STATUS).observeDetail(mValue); ctx.bindValue(widgetValue, modelValue); } }