/**
  * 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#addPropertyChangeListener(String,
  *     PropertyChangeListener)
  */
 public synchronized void addPropertyChangeListener(
     String propertyName, PropertyChangeListener listener) {
   if (propertyName == VALUE && this.hasNoListeners()) {
     this.engageModels();
   }
   super.addPropertyChangeListener(propertyName, listener);
 }
 /**
  * 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);
 }
 /**
  * Extend to start listening to the models if necessary.
  *
  * @see
  *     org.eclipse.persistence.tools.workbench.utility.Model#addPropertyChangeListener(PropertyChangeListener)
  */
 public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
   if (this.hasNoListeners()) {
     this.engageModels();
   }
   super.addPropertyChangeListener(listener);
 }