CreateUnoListener Function
Vytvorí príklad Listeneru.
Veľa UNO rozhraní vám umožní registrovať listener v špeciálnych rozhraniach. To vám dovolí počúvať špecifických udalostiach a zavolať vhodnú metódu listeneru. Funkcia CreateUnoListener čaká v zodpovedajúcom rozhraní a až potom posunie rozhranie objektu, ktorý toto rozhranie podporuje. Tento objekt bude odovzdaný metóde registrovanej listenerom.
Syntax:
oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )
Príklad:
Nasledujúci príklad je založený na knižnici objektov Basic.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
Metóda CreateUnoListener vyžaduje dva parametre. Prvý je prefix a podrobnejšie je vysvetlený nižšie. Druhý parameter je plne kvalifikovaný názvom rozhrania Listener, ktoré chcete použiť.
Listener potom musíte pridať k Broadcaster Object. To urobíte zavolaním vhodnej metódy na pridanie Listeneru. Tieto metódy sa vždy volajú podľa vzoru "addFooListener", kde "Foo" predstavuje typ rozhrania Listeneru bez 'X'. V tomto príklade sa volá metóda addContainerListener na zaregistrovanie XContainerListener:
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 musí existovať!
oLib.addContainerListener( oListener ) ' Registrovať listener
Teraz je Listener zaregistrovaný. Keď nastane udalosť, zavolá sa zodpovedajúci Listener správnou metódou z rozhrania com.sun.star.container.XContainerListener Interface.
Prefix volá registrované Listenery z podprogramov Basic. Za behu Basic hľadá procedúry alebo funkcie, ktoré majú meno "PrefixListenerMethode" a pri nájdení ich zavolá. Inak dôjde k chybe.
V tomto prípade používa rozhranie Listener nasledujúce metódy:
-
disposing:
-
Listener base interface (com.sun.star.lang.XEventListener): základné rozhrania pre všetky rozhrania Listener
-
elementInserted:
-
metóda rozhrania com.sun.star.container.XContainerListener
-
elementRemoved:
-
metóda rozhrania com.sun.star.container.XContainerListener
-
elementReplaced:
-
metóda rozhrania com.sun.star.container.XContainerListener
V tomto prípade je prefixom 'ContListener_'. V jazyku Basic je preto potrebné implementovať nasledujúce podprogramy:
-
ContListener_disposing
-
ContListener_elementInserted
-
ContListener_elementRemoved
-
ContListener_elementReplaced
Pre každý typ Listeneru existuje štruktúra udalosti, obsahujúca informácie o udalosti. Keď je volaná metóda Listeneru, príklad tejto udalosti sa odovzdá metóde ako parameter. Základné metódy Listeneru sa môžu tiež volať ako udalosti objektov, pokiaľ je deklarácii Sub odovzdaný správny parameter.
Sub ContListener_disposing( oEvent )
MsgBox "disposing"
MsgBox oEvent.Dbg_Properties
End Sub
Sub ContListener_elementInserted( oEvent )
MsgBox "elementInserted"
MsgBox oEvent.Dbg_Properties
End Sub
Sub ContListener_elementRemoved( oEvent )
MsgBox "elementRemoved"
MsgBox oEvent.Dbg_Properties
End Sub
Sub ContListener_elementReplaced( oEvent )
MsgBox "elementReplaced"
MsgBox oEvent.Dbg_Properties
End Sub
Pokiaľ objekt nepoužívate nemusíte pridávať jeho parameter:
' Minimálna implementácia príkazu Sub
Sub ContListener_disposing
End Sub
Metódy Listeneru musíte vždy implementovať , aby ste predišli chybám Basic.