org.deduced
Class RecursiveModelListener

java.lang.Object
  extended by org.deduced.RecursiveModelListener
All Implemented Interfaces:
java.util.EventListener, PropertyListener<java.lang.Object,java.lang.Object>

public class RecursiveModelListener
extends java.lang.Object
implements PropertyListener<java.lang.Object,java.lang.Object>

This class listens to a model and all its owned child recursively. When a change to one of them occurs, the linked listener is triggered with the event.

Author:
Steve McDuff

Field Summary
private  PropertyListener<java.lang.Object,java.lang.Object> linkedListener
          linked listener to be notified of any change in the hierarchy
private  PropertyCollection<?,?> model
          the model being monitored
 
Constructor Summary
RecursiveModelListener()
          RecursiveModelListener Constructor
 
Method Summary
private  void addAllListeners()
          addAllListeners
protected  void addAllListeners(PropertyCollection<?,?> currentCollection)
          add All Listeners on a model to monitor
 PropertyListener<?,?> getLinkedListener()
          get Linked Listener
 PropertyCollection<?,?> getModel()
          get the Model being monitored
static boolean isPropagationOfListenerRequiredOnInstance(PropertyCollection<?,?> instance)
          is Propagation Of Listener Required On Instance
 void propertyChanged(PropertyChangeEvent<?,?> event)
          (non-Javadoc)
private  void removeAllListeners()
          removeAllListeners
protected  void removeAllListeners(PropertyCollection<?,?> currentCollection)
          remove All Listeners
protected  void resetModelFromDeleteEvent(PropertyCollection<?,?> collection)
          reset the Model From Delete Event
 void setLinkedListener(PropertyListener<java.lang.Object,java.lang.Object> setLinkedListener)
          set Linked Listener
 void setModel(PropertyCollection<?,?> setModel)
          set the Model being monitored
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

linkedListener

private PropertyListener<java.lang.Object,java.lang.Object> linkedListener
linked listener to be notified of any change in the hierarchy


model

private PropertyCollection<?,?> model
the model being monitored

Constructor Detail

RecursiveModelListener

public RecursiveModelListener()
RecursiveModelListener Constructor

Method Detail

getModel

public PropertyCollection<?,?> getModel()
get the Model being monitored

Returns:
the Model being monitored

getLinkedListener

public PropertyListener<?,?> getLinkedListener()
get Linked Listener

Returns:
the Linked Listener

setLinkedListener

public void setLinkedListener(PropertyListener<java.lang.Object,java.lang.Object> setLinkedListener)
set Linked Listener

Parameters:
setLinkedListener - the new Linked Listener

setModel

public void setModel(PropertyCollection<?,?> setModel)
set the Model being monitored

Parameters:
setModel - the Model to monitor

addAllListeners

private void addAllListeners()
addAllListeners


removeAllListeners

private void removeAllListeners()
removeAllListeners


removeAllListeners

protected void removeAllListeners(PropertyCollection<?,?> currentCollection)
remove All Listeners

Parameters:
currentCollection - the model to stop listening to

addAllListeners

protected void addAllListeners(PropertyCollection<?,?> currentCollection)
add All Listeners on a model to monitor

Parameters:
currentCollection - the model to monitor

propertyChanged

public void propertyChanged(PropertyChangeEvent<?,?> event)
(non-Javadoc)

Specified by:
propertyChanged in interface PropertyListener<java.lang.Object,java.lang.Object>
Parameters:
event - the event that was generated
See Also:
PropertyListener.propertyChanged(org.deduced.PropertyChangeEvent)

resetModelFromDeleteEvent

protected void resetModelFromDeleteEvent(PropertyCollection<?,?> collection)
reset the Model From Delete Event

Parameters:
collection - the model from which we received a delete signal

isPropagationOfListenerRequiredOnInstance

public static boolean isPropagationOfListenerRequiredOnInstance(PropertyCollection<?,?> instance)
is Propagation Of Listener Required On Instance

Parameters:
instance - the instance to verify
Returns:
true if a recursive listener is required on the child