prev up next

Previous: Event-Queue und Scheduler Up: Implementation Next: Handler

Plugins und Plugin-Registry

Um die schrittweise Erweiterung der API um neue Szenengraphobjekte und deren spezifische Funktionalität nach einem einfachen Schema zu ermöglichen, wurde ein Plugin-Mechanismus implementiert. Jede Klasse, die ein bestimmtes Event für eine bestimmte Sorte Knoten verarbeiten kann, muß bei der Plugin-Registry der Laufzeitumgebung unter dem Klassennamen des Knotens und dem Eventnamen registriert werden. Die Zeile


runtime.register("Group.addChild", plugin);

registriert beispielsweise das Plugin plugin für die Bearbeitung von addChild-Events, die von Knoten der Klasse Group ausgelöst werden. addChild-Events der Subklassen von Group (z.B. TransformGroup) müssen extra registriert werden. Ein Plugin kann für die Bearbeitung beliebig vieler Eventtypen registriert werden. Wenn z.B. das Plugin plugin die addChild- und die setTeransform-Events von TransformGroup ebenfalls verarbeiten kann, so wird es mit den Zeilen


runtime.register("TransformGroup.addChild", plugin);
runtime.register("TransformGroup.setTransform", plugin);

zweimal bei der Registry vermerkt (s. gestrichelte Pfeile in Abbildung 2.5).

Wenn der Scheduler ein Event aus der Event-Queue herausgenommen hat, ruft er die execute-Methode des zuständigen Plugins mit dem Event als Parameter auf.


prev up next
Previous: Event-Queue und Scheduler Up: Implementation Next: Handler