edu.bonn.xulu.appl
Class EventManager

java.lang.Object
  extended by AbstractObjectTraceable
      extended by edu.bonn.xulu.appl.AbstractManager
          extended by edu.bonn.xulu.appl.EventManager
All Implemented Interfaces:
XuluComponent, XuluConstants, ModelListener

public class EventManager
extends AbstractManager
implements ModelListener

Ueber den Xulu-Event-Manager werden verschiedene Reaktionen auf Ereignisse bestimmter Komponenten innerhalb Xulu-Applikation gesteuert.
Hierzu koppelt sich der Event-Manager als Listener an den Xulu-Datenpool und den Xulu-Modell-Manager. Sobald von diesen ein neues Objekt/Modell gemeldet wird, koppelt sich der Modell-Manager auch an dieses neue Objekt/Modell und kann somit im Folgenden auf saemtliche Ereignisse dieses Objekts reagieren (mit einem Handler).
Der Event-Manager unterscheidet zwei Arten von Event-Handlern.

  1. Objekt-Event-Handler: Der zugehoerige Handler wird ausgefuerhrt, wenn ein bestimmtes Objekt/Modell ein bestimmtes Ereignis ausloest.
  2. globale Event-Handler: Nicht an ein spezielles Objekt gebunden. Der zugehoerige Handler wird ausgefuerhrt, unabhaengig davon, welches Objekt/Modell das entsprechende Ereignis initiiert
Neben fest definierten Event-Handlern besteht fuer den Anwender die Moeglichkeit, ueber die GUI des Event-Managers eigene Event-Handler zu spezifizieren. Zur Zeit ist ein Handler implementiert, mit dem ein Visualisierungsupdate fuer ein bestimmtes Objekt vorgenommen werden kann (siehe VisualisationHandler).

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Nested Class Summary
 
Nested classes/interfaces inherited from class edu.bonn.xulu.appl.AbstractManager
AbstractManager.ChangeEvent, AbstractManager.ContentType
 
Field Summary
protected  Vector globalEventHandler
          Speichert die globalen Event-Handler, die fuer alle Objekte gueltig sind.
protected  HandlerFactory[] handler
          Speichert die zur Verfuegung stehenden Handler.
protected  HashtableWithCollisionList objectEventHandler
          Speichert die objekt-spezifischen Event-Handler.
 
Fields inherited from class edu.bonn.xulu.appl.AbstractManager
content, duplAllowed
 
Fields inherited from interface edu.bonn.xulu.appl.XuluConstants
BUG_MAIL_ADDR, EXTENTION_BUNDLE, ICONS_DIR, LOCALES_BASE, RESOURCE_DIR, SWING_RES, VERSION, VERSION_DATE, XULU_ICON, XULU_INFOICON, XULU_STARTICON, XULU_VIS_RES, XULUERR_RES, XULUGUI_RES
 
Constructor Summary
EventManager(XuluModellingPlatform appl)
          Erzeugt den Event-Manager.
 
Method Summary
 void add(AbstractManager.ContentType comp)
          Fuegt dem Event-Manager einen Event-Handler hinzu.
 void checkComponentAndError(AbstractManager.ContentType comp)
          Prueft (fuer add/remove), ob es sich einem Objekt um einen EventHandler handelt.
 void dispose()
          Zerstoert den Event-Manager.
 Class[] getEventTypes(Object obj)
          Liefert alle Ereignis-Typen, die fuer ein bestimmtes Objekt zur Verfuegung stehen.
 HandlerFactory[] getHandlerFactories()
          Liefert alle Factorys, die fuer die Erzeugung von Event-Handlern zur Verfuegung stehen.
 void performModelEvent(ModelEvent e)
          Ruft lediglich performObjectEvent(ObjectEvent) auf.
 void performObjectEvent(ObjectEvent e)
          Verarbeitet saemtliche Ereignisse.
 void remove(AbstractManager.ContentType comp)
          Entfernt einen Event-Handler aus dem Event-Manager.
 
Methods inherited from class edu.bonn.xulu.appl.AbstractManager
add, checkDuplicateAndError, get, getAll, getCount, getDuplicatedAllowed, isDisposed, remove, removeAll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

globalEventHandler

protected Vector globalEventHandler
Speichert die globalen Event-Handler, die fuer alle Objekte gueltig sind.


objectEventHandler

protected HashtableWithCollisionList objectEventHandler
Speichert die objekt-spezifischen Event-Handler.


handler

protected HandlerFactory[] handler
Speichert die zur Verfuegung stehenden Handler.

Constructor Detail

EventManager

public EventManager(XuluModellingPlatform appl)
Erzeugt den Event-Manager.

Parameters:
appl - Xulu-Applikation in der die Event-Handler ausgefuehrt werden
Method Detail

dispose

public void dispose()
Zerstoert den Event-Manager. Durch den Aufruf von super.dispose() werden zunaechst alle Objekte (Event-Handler) aus dem Event-Manager entfernt (remove(AbstractManager.ContentType)). Anschliessend werden die Kopplungen zu allen Xulu-Objekten und -Modellen entfernt, sowie die Kopplung zum Daten-Pool und Modell-Manager.

Specified by:
dispose in interface XuluComponent
Overrides:
dispose in class AbstractManager

checkComponentAndError

public void checkComponentAndError(AbstractManager.ContentType comp)
Prueft (fuer add/remove), ob es sich einem Objekt um einen EventHandler handelt.

Specified by:
checkComponentAndError in class AbstractManager
Parameters:
comp - ContentType

add

public void add(AbstractManager.ContentType comp)
Fuegt dem Event-Manager einen Event-Handler hinzu.

Overrides:
add in class AbstractManager
Parameters:
comp - Event-Handler

remove

public void remove(AbstractManager.ContentType comp)
Entfernt einen Event-Handler aus dem Event-Manager.

Overrides:
remove in class AbstractManager
Parameters:
comp - Event-Handler
See Also:
AbstractManager.ContentType.close()

getHandlerFactories

public HandlerFactory[] getHandlerFactories()
Liefert alle Factorys, die fuer die Erzeugung von Event-Handlern zur Verfuegung stehen.


getEventTypes

public Class[] getEventTypes(Object obj)
Liefert alle Ereignis-Typen, die fuer ein bestimmtes Objekt zur Verfuegung stehen.


performObjectEvent

public void performObjectEvent(ObjectEvent e)
Verarbeitet saemtliche Ereignisse.

Parameters:
e - ein Ereignis.

performModelEvent

public void performModelEvent(ModelEvent e)
Ruft lediglich performObjectEvent(ObjectEvent) auf.

Specified by:
performModelEvent in interface ModelListener
Parameters:
e - ein Ereignis.