public WrappedList(IObservableList list) { this.list = list; this.list.addDisposeListener(new IDisposeListener() { @Override public void handleDispose(DisposeEvent event) { if (WrappedList.this.fxInvalidationListeners != null) { WrappedList.this.fxInvalidationListeners.clear(); } WrappedList.this.dbInvalidationListener = null; if (WrappedList.this.fxChangeListeners != null) { WrappedList.this.fxChangeListeners.clear(); } WrappedList.this.dbChangeListener = null; } }); }
/** * * @param masterList * @param detailFactory * @param detailType */ public ListDetailValueObservableList(IObservableList masterList, IObservableFactory detailFactory, Object detailType) { super(masterList.getRealm()); this.masterList = masterList; this.detailFactory = detailFactory; this.detailType = detailType; this.detailList = new ArrayList(); // Add change/stale/dispose listeners on the master list. masterList.addListChangeListener(masterListListener); masterList.addStaleListener(masterStaleListener); masterList.addDisposeListener(new IDisposeListener() { public void handleDispose(DisposeEvent event) { ListDetailValueObservableList.this.dispose(); } }); ListDiff initMasterDiff = Diffs.computeListDiff(Collections.EMPTY_LIST, masterList); handleMasterListChange(initMasterDiff); }
private ControlDecorationSupport(IObservableValue<IStatus> validationStatus, IObservableList<IObservable> targetsToBeDecorated, int position, Composite composite, ControlDecorationUpdater updater) { this.position = position; this.composite = composite; this.updater = updater; this.validationStatus = validationStatus; Assert.isTrue(!this.validationStatus.isDisposed()); this.targets = targetsToBeDecorated; Assert.isTrue(!this.targets.isDisposed()); this.targetDecorations = new ArrayList<TargetDecoration>(); validationStatus.addDisposeListener(disposeListener); validationStatus.addValueChangeListener(statusChangeListener); targets.addDisposeListener(disposeListener); targets.addListChangeListener(targetsChangeListener); for (Object name : targets) targetAdded((IObservable) name); statusChanged(validationStatus.getValue()); }