Hab ich mir angesehen, und besonders das Event Handling bezüglich UI gefällt mir *überhaupt* nicht. Die On Event calls sind hart mit funktionen in derselben Bibliothek verdrahtet (bspw:
http://www.bleedyellow.com/blogs/dotdomino/entry/oop_part_2_responding_to_an_inviewedit_event17?lang=de):
Case "NOTESUIVIEW": On Event InViewEdit From Source Call OnInviewEdit
Statt dessen möchte ich einen objektorientierten Ansatz, in dem der DocumentController sich an das UI Event "hängt", und dann beliebige registrierte EventHandler durchläuft, wenn das Event auftritt.
Das erste Problem dabei ist, dass das Event Binding nur direkt mit einer Funktion gemacht werden darf, nicht mit einer Funktion eines untergeordneten Objektes. Folgerichtig geht das hier bspw. nicht:
On Event InViewEdit From Source Call Me.listeners("InViewEdit").listen()
Infolgedessen habe ich das EventBinding direkt in die Listener gekapselt. Dabei wird das NotesUIDocument über den Controller in die Listener während dem Registrieren mit dem Controller weitergegeben. Damit hätte der Controller im weitesten Sinne sämtliche Listener, und in denen wiederum findet das Event Binding statt. Wird nun die Maske geöffnet, erhalte ich einen lapidaren "Generic LSE Failure".
Warum will ich das so haben?Weil ich dann Code, der in unterschiedlichen Events benötigt wird, in jeweils einem Listener kapseln kann und durch das Registrieren von n Handlern zu einem Event die lose Kopplung erhöht wird.
Edit:
Ich kenne diese Singleton Variante und habe sie für eine Datenbank
global nicht zum Laufen gebracht. Ich kann an keiner Stelle dieses Ding zentral laden und dann in allen Views/Forms/Agenten/usw. verwenden.