-
Notifications
You must be signed in to change notification settings - Fork 3
Events
Events sind konkrete Reaktionen auf bestimmte Ereignisse und enthalten entsprechende Kontextinformationen.
Alle Typen von Events erben von der abstrakten Klasse Event<H extends EventHandler>.
Klassen, die auf bestimmte Event-Typen reagieren wollen, implementieren das zum Event zugeordnete Interface EventHandler.
Jede Klasse, die Events abfeuern möchte, muss einen Verweis auf den EventDispatcher besitzen. Ein Singleton von diesem Dispatcher kann mittels EventDispatcher.get() eingeholt werden.
Soll ein konkretes Event e gefeuert werden, wird dies via dispatcher.fireEvent(e) erledigt.
Alle Klassen, die sich vor dem Feuern eines Events via dispatcher.addHandler(eventType, handler) registriert haben, werden die Events vom Typ eventType erhalten.
Der Event-Typ sollte, via Konvention, durch KonkretesEvent.TYPE gegeben sein (wobei KonkretesEvent eine Implementieren von Event ist).
Event-Typen werden durch Anlegen einer Event-Klasse und einer EventHandler-Klasse hinzugefügt.
Das EventHandler-Template ist
import pointGroups.gui.event.EventHandler;
public interface ConcreteHandler
extends EventHandler
{
public void onConcreteEvent(final ConcreteEvent event);
}
Das Event-Typ-Template ist
import pointGroups.gui.event.Event;
public class ConcreteEvent
extends Event<ConcreteHandler>
{
public final static Class<ConcreteHandler> TYPE =
ConcreteHandler.class;
@Override
public final Class<ConcreteHandler> getType() {
return TYPE;
}
@Override
protected void dispatch(final ConcreteHandler handler) {
handler.onConcreteEvent(this);
}
}
wobei Concrete durch konkrete Namen ersetzt werden kann.
Was tut es, wofür ist es da.
Ein ChangeCoordinateEvent wird geworfen, wenn der Benutzer in eines der Koordinatenfelder eine neue Koordinate eingibt. In dem Event werden dann alle Koordinaten mitangeben und nicht nur die geänderte Koordinate.
Ein RunEvent wird geworfen, wenn der Button "Run" gedürckt wurden. Im Event sind dann die Koordinaten zu einem gegebenen Punkt beinhaltet.
Ein ShowCoordinateEvent wird geworfen, wenn im Menü die Schaltfläche "Show Coordinates" betätigt wird.
Über die Methode getVisible() erhält man einen boolean, der angibt, ob die Koordinatenansicht ein- oder ausgeblendet werden soll. true steht hierbei für anzeigen, false für ausblenden.
Ein ShowFundamentalDomainEvent wird geworfen, wenn im Menü die Schaltfläche "Show Fundamental Domain" betätigt wird.
Über die Methode getVisible() erhält man einen boolean, der angibt, ob der Pointpicker ein- oder ausgeblendet werden soll. Siehe auch ShowCoordinateEvent.
##ShowLogEvent Ein ShowLogEvent wird geworfen, wenn im Menü die Schaltfläche "Show Log" betätigt wird. Als Folge soll das Logging-Fenster angezeigt werden.
##ShowNextEvent Ein ShowNextEvent wird geworfen, wenn im Menü die Schaltfläche "Next" betätigt wird. Es soll daraufhin der nächste Punkt in der History mit zugehörigem Schlegeldiagramm angezeigt werden anstelle des aktuell angezeigten Punktes.
##ShowPreviousEvent Ein ShowPreviousEvent wird geworfen, wenn in Menü die Schaltfläche "Previous" betätigt wird. Daraufhin soll der vorherige Punkt aus der History mit zugehörigem Schlegeldiagramm angezeigt werden.
##TutorialEvent Dieses Event wird ausgelöst, wenn im Menü die Schaltfläche "Tutorial" betätigt wird. Daraufhin soll eine kleine Einführung in die Benutzung des Programms erscheinen. Vermutlich über das öffnen einer Webseite...