schmitzm.data.event
Interface ObjectEvent

All Known Implementing Classes:
AbstractObjectEvent, GeneralObjectChangeEvent, NameChangeEvent, ObjectChangeEvent, ObjectCloseEvent

public interface ObjectEvent

Diese Klasse stellt ein allgemeines Ereignis dar, das von einem Objekt ausgeloest wird. Spezielle Ereignisse (z.B. "Objekt wurde geschlossen" oder "Objekt hat sich geaendert" oder "Eine Eigenschaft eines Objekts hat sich geaendert") werden durch Spezialisierungen dieser Klasse ausgedrueckt.

Haeufig ziehen einzelne Objekt-Aenderungen andere nach sich. z.B. Wertaenderung eines Listen-Elements einer ListProperty zieht die Aenderung der Liste mit sich und somit die Aenderung des Objekts, welches die ListProperty beinhaltet. Propagiert ein Objekt eine Aenderung also weiter nach unten erzeugt es (fuer seine Listener) ein neues Event:

 ...
 public void performObjectEvent(ObjectEvent e) {
     if ( e instanceof ObjectChangeEvent ) {
         ObjectChangeEvent oce = (ObjectChangeEvent)e;
         fireEvent( new ObjectChangeEvent(
             new Invoker( this,oce.getSource() ),
             oce.getOldValue(),
             oce.getNewValue()
         ) );
     }
 }
 ...
 
Aus diesem Grund ist ObjectEvent.getObject() nicht immer das Element, welches die Aenderung ausgeloest hat. Diese kann jedoch durch source.getRoot() ermittelt werden.

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

Method Summary
 void expandSource(Object object)
          Erweitert die Objekt-Hierarchie, die von dem Ereignis betroffen ist.
 Invoker getSource()
          Liefert die Objekt-Hierarchie, die von dem Ereignis betroffen ist.
 int getType()
          Liefert die ID des Events.
 

Method Detail

getType

int getType()
Liefert die ID des Events. Mit dieser koennen Unterereignisse differenziert werden (z.B. "Objekt hinzugefuegt", oder "Objekt entfernt" fuer Datenpool-Event)


getSource

Invoker getSource()
Liefert die Objekt-Hierarchie, die von dem Ereignis betroffen ist. Deren Wurzel ist das Objekt, welches das Ereignis ausgeloest hat.
Beispiel:

See Also:
Invoker

expandSource

void expandSource(Object object)
Erweitert die Objekt-Hierarchie, die von dem Ereignis betroffen ist. Das Objekt wird dabei der Hierarchie vorangestellt. Im folgenden ist es ueber getInvoker().getObject() referenzierbar. Das bisher ueber diesen Aufruf referenzierte Objekt erhaelt man dann ueber getInvoker().getInvoker().getObject().

Parameters:
object - neues betroffenes Objekt