/**
  * Extend to stop listening to the models if appropriate.
  *
  * @see
  *     org.eclipse.persistence.tools.workbench.utility.Model#removeCollectionChangeListener(String,
  *     CollectionChangeListener)
  */
 public synchronized void removeCollectionChangeListener(
     String collectionName, CollectionChangeListener listener) {
   super.removeCollectionChangeListener(collectionName, listener);
   if (collectionName == VALUE && this.hasNoListeners()) {
     this.disengageModels();
   }
 }
 /**
  * Extend to start listening to the nested model if necessary.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#addPropertyChangeListener(String,
  *     java.beans.PropertyChangeListener)
  */
 public synchronized void addPropertyChangeListener(
     String propertyName, PropertyChangeListener listener) {
   if (this.propertyIsRelevant(propertyName) && this.hasNoRelevantListeners()) {
     this.valueHolder.addPropertyChangeListener(ValueModel.VALUE, this.valueChangeListener);
   }
   super.addPropertyChangeListener(propertyName, listener);
 }
 /**
  * Extend to start listening to the models if necessary.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#addCollectionChangeListener(String,
  *     CollectionChangeListener)
  */
 public synchronized void addCollectionChangeListener(
     String collectionName, CollectionChangeListener listener) {
   if (collectionName == VALUE && this.hasNoListeners()) {
     this.engageModels();
   }
   super.addCollectionChangeListener(collectionName, listener);
 }
 /**
  * Extend to stop listening to the models if appropriate.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#removePropertyChangeListener(String,
  *     PropertyChangeListener)
  */
 public synchronized void removePropertyChangeListener(
     String propertyName, PropertyChangeListener listener) {
   super.removePropertyChangeListener(propertyName, listener);
   if (propertyName == VALUE && this.hasNoListeners()) {
     this.disengageModels();
   }
 }
 /**
  * Extend to start listening to the models if necessary.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#addPropertyChangeListener(String,
  *     PropertyChangeListener)
  */
 public synchronized void addPropertyChangeListener(
     String propertyName, PropertyChangeListener listener) {
   if (propertyName == VALUE && this.hasNoListeners()) {
     this.engageModels();
   }
   super.addPropertyChangeListener(propertyName, listener);
 }
 /** Build the listeners. */
 protected void initialize() {
   super.initialize();
   this.recentFilesListener = this.buildRecentFilesListener();
   this.maxSizeListener = this.buildMaxSizeListener();
 }
 /**
  * Extend to start listening to the nested model if necessary.
  *
  * @see
  *     org.eclipse.persistence.tools.workbench.utility.Model#addPropertyChangeListener(java.beans.PropertyChangeListener)
  */
 public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
   if (this.hasNoRelevantListeners()) {
     this.valueHolder.addPropertyChangeListener(ValueModel.VALUE, this.valueChangeListener);
   }
   super.addPropertyChangeListener(listener);
 }
 protected void initialize() {
   super.initialize();
   this.valueChangeListener = this.buildValueChangeListener();
 }
 protected void initialize() {
   super.initialize();
   this.subjectChangeListener = this.buildSubjectChangeListener();
 }
 /**
  * Extend to stop listening to the models if appropriate.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#removeTreeChangeListener(String,
  *     TreeChangeListener)
  */
 public synchronized void removeTreeChangeListener(String treeName, TreeChangeListener listener) {
   super.removeTreeChangeListener(treeName, listener);
   if (treeName == VALUE && this.hasNoListeners()) {
     this.disengageModels();
   }
 }
 /**
  * Extend to stop listening to the models if appropriate.
  *
  * @see
  *     org.eclipse.persistence.tools.workbench.utility.Model#removeTreeChangeListener(TreeChangeListener)
  */
 public synchronized void removeTreeChangeListener(TreeChangeListener listener) {
   super.removeTreeChangeListener(listener);
   if (this.hasNoListeners()) {
     this.disengageModels();
   }
 }
 /**
  * Extend to start listening to the models if necessary.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#addTreeChangeListener(String,
  *     TreeChangeListener)
  */
 public synchronized void addTreeChangeListener(String treeName, TreeChangeListener listener) {
   if (treeName == VALUE && this.hasNoListeners()) {
     this.engageModels();
   }
   super.addTreeChangeListener(treeName, listener);
 }
 /**
  * Extend to start listening to the models if necessary.
  *
  * @see
  *     org.eclipse.persistence.tools.workbench.utility.Model#addTreeChangeListener(TreeChangeListener)
  */
 public synchronized void addTreeChangeListener(TreeChangeListener listener) {
   if (this.hasNoListeners()) {
     this.engageModels();
   }
   super.addTreeChangeListener(listener);
 }
 /**
  * Extend to start listening to the models if necessary.
  *
  * @see org.eclipse.persistence.tools.workbench.utility.Model#addListChangeListener(String,
  *     ListChangeListener)
  */
 public synchronized void addListChangeListener(String listName, ListChangeListener listener) {
   if (listName == VALUE && this.hasNoListeners()) {
     this.engageModels();
   }
   super.addListChangeListener(listName, listener);
 }