model.addDisposeListener(disposeListener); preInit(); context.addBinding(this); postInit();
model.addDisposeListener(disposeListener); preInit(); context.addBinding(this); postInit();
/** * 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(); }