@Override
 public synchronized void dispose() {
   for (final IObservable obs : this.dependencies) {
     obs.removeChangeListener(this);
   }
   super.dispose();
 }
 @Override
 public synchronized void dispose() {
   super.dispose();
   for (int i = 0; i < myObservableValues.length; i++) {
     myObservableValues[i].removeValueChangeListener(myListener);
   }
 }
 @Override
 public synchronized void dispose() {
   super.dispose();
   for (IObservableValue observable : observableValues) {
     observable.removeChangeListener(this);
     observable.dispose();
   }
 }
  public void handleChange(ChangeEvent event) {
    // We're not interested in the old and new values
    // We just return two different values so that a change event is fired
    super.fireValueChange(
        new ValueDiff() {

          @Override
          public Object getOldValue() {
            return true;
          }

          @Override
          public Object getNewValue() {
            return false;
          }
        });
  }
 public synchronized void dispose() {
   unhookListener();
   super.dispose();
 }
 @Override
 protected void fireStale() {
   stale = true;
   super.fireStale();
 }
 @Override
 public synchronized void dispose() {
   dateTime.removeSelectionListener(selectionListener);
   dateTime.removeFocusListener(focusListener);
   super.dispose();
 }