Download "MAVERIG - Mosaik Advanced Visualization EnviRonment for

Transcript
Projektdokumentation
in der Event-Klasse enthalten ist. Über die Methode demand kann ein Event entsprechend gefordert werden. Die Event-Klasse hält in der Liste __handlers alle am Event
interessierten Komponenten, die beim Feuern des Events zu benachrichtigen sind.
Das An- und Abmelden von Komponenten geschieht über die beiden Methoden
handle und unhandle der Event-Klasse. Über die Methode fire der Event-Klasse wird
das Event mit den entsprechenden Argumenten schließlich gefeuert.
Abbildung 6.1 enthält weiterhin die Implementierung der beiden Presenter-Klassen
ScenarioPanelPresenter und ToolbarPresenter, die aufzeigen, wie das Anmelden an
einem Event funktioniert. Um zum Beispiel den ScenarioPanelPresenter am ModusEvent (mode_event) anzumelden, ist lediglich die Zeile self.model.mode_event +=
self.on_mode erforderlich. Dies ist möglich, weil die Standard-Operatoren „+“ und
„-“ in der Event-Klasse mit der Anmelde- beziehungsweise der Abmelde-Methode
überschrieben sind. Im Falle dieses Beispiels ruft der ScenarioPanelPresenter die Methode on_mode auf, wenn das Modus-Event gefeuert wird. Mit allen anderen Events
verhält es sich synonym zum aufgezeigten Beispiel.
Abbildung 6.1.: Implementierung des Event-Konzepts auf Klassenebene.
maverig.models.modelSimulation.py
Wenn ein Benutzer ein Szenario erstellt hat und die Simulation startet, wird im
Hintergrund ein Simulationsprozess gestartet, um die Anwendung nicht zu blockieren. Dabei stellt das Untermodell SimulationServer Methoden zur Modellaktualisierung und Fehlerbehandlung bereit. Diese Methoden sind vom Simulationsprozess
aus über ein ServerProxy-Objekt aufru ar. Der Simulationsprozess sendet Funkti-
69