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