cz.cuni.amis.pogamut.base.communication.worldview.react
Class ObjectEventReactOnce<OBJECT extends IWorldObject,EVENT extends IWorldObjectEvent<OBJECT>>

java.lang.Object
  extended by cz.cuni.amis.pogamut.base.communication.worldview.react.ObjectEventReact<OBJECT,EVENT>
      extended by cz.cuni.amis.pogamut.base.communication.worldview.react.ObjectEventReactOnce<OBJECT,EVENT>
Type Parameters:
EVENT -
Direct Known Subclasses:
ObjectReactOnce

public abstract class ObjectEventReactOnce<OBJECT extends IWorldObject,EVENT extends IWorldObjectEvent<OBJECT>>
extends ObjectEventReact<OBJECT,EVENT>

This abstract class allows you to easily hook a specific event-handling behavior. It automatically register a listener for a specified IWorldObjectEvent for you and calls ObjectEventReact.react(IWorldObjectEvent) method automatically. The ObjectEventReact.react(IWorldObjectEvent) will be called only once (upon first event received).

If you need to react on every event, use ObjectEventReact.

Use ObjectEventReact.enable() and ObjectEventReact.disable() to enable react / disable react. The reaction is enabled as default.

WARNING:Use as anonymous class, but save it as a field of your class! Note, that we're using weak-references to listeners and if you do not save pointer to the object, it will be gc()ed!


Field Summary
 
Fields inherited from class cz.cuni.amis.pogamut.base.communication.worldview.react.ObjectEventReact
LEVEL_B_EVENT, LEVEL_C_EVENT, LEVEL_D_EVENT, LEVEL_E_EVENT, reactEventClass, reactListener, reactObjectClass, reactObjectEventType, reactObjectId, reactWorldView
 
Constructor Summary
ObjectEventReactOnce(java.lang.Class<?> objectClass, java.lang.Class<?> eventClass, IWorldView worldView)
           
ObjectEventReactOnce(java.lang.Class<?> objectClass, IWorldView worldView)
           
ObjectEventReactOnce(WorldObjectId objectId, java.lang.Class<?> eventClass, IWorldView worldView)
           
ObjectEventReactOnce(WorldObjectId objectId, IWorldView worldView)
           
 
Method Summary
protected  void postReact(EVENT event)
          Disables the reaction.
 
Methods inherited from class cz.cuni.amis.pogamut.base.communication.worldview.react.ObjectEventReact
disable, enable, preReact, react
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectEventReactOnce

public ObjectEventReactOnce(java.lang.Class<?> objectClass,
                            IWorldView worldView)

ObjectEventReactOnce

public ObjectEventReactOnce(java.lang.Class<?> objectClass,
                            java.lang.Class<?> eventClass,
                            IWorldView worldView)

ObjectEventReactOnce

public ObjectEventReactOnce(WorldObjectId objectId,
                            IWorldView worldView)

ObjectEventReactOnce

public ObjectEventReactOnce(WorldObjectId objectId,
                            java.lang.Class<?> eventClass,
                            IWorldView worldView)
Method Detail

postReact

protected void postReact(EVENT event)
Disables the reaction.

Overrides:
postReact in class ObjectEventReact<OBJECT extends IWorldObject,EVENT extends IWorldObjectEvent<OBJECT>>