Skip to content
NdjS edited this page Apr 5, 2014 · 13 revisions

Einführung

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).

Wie man Event-Typen hinzufügt

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.

Existierende Events

...Name

Was tut es, wofür ist es da.

ChangeCoordinateEvent

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.

RunEvent

Ein RunEvent wird geworfen, wenn der Button "Run" gedürckt wurden. Im Event sind dann die Koordinaten zu einem gegebenen Punkt beinhaltet.

ShowCoordinateEvent

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.

ShowFundamentalDomainEvent

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...

Clone this wiki locally