Funkce CreateUnoListener
Vytvořà instanci Listener.
Mnoho UNO rozhranĂ vám umoĹľnĂ registrovat listener ve speciálnĂm rozhranĂ. Tak mĹŻĹľete naslouchat urÄŤitĂ˝m událostem a volat pĹ™i nich odpovĂdajĂcĂ naslouchacĂ metodu. Funkce CreateUnoListener ÄŤeká v odpovĂdajĂcĂm rozhranĂ a potĂ© rozhranĂ pĹ™edá objektu, kterĂ˝ toto rozhranĂ podporuje. Tento objekt bude pĹ™edán zaregistrovanĂ© metodÄ›.
Syntaxe:
oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )
PĹ™Ăklad:
NásledujĂcĂ pĹ™Ăklad je zaloĹľen na knihovnÄ› objektĹŻ Basic.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
Metoda CreateUnoListener vyĹľaduje dva parametry. PrvnĂ je prefix a podrobnÄ›ji je vysvÄ›tlen nĂĹľe. DruhĂ˝ parametr je plnÄ› kvalifikovanĂ˝ název rozhranĂ Listener, kterĂ© chcete pouĹľĂt.
Listener potĂ© musĂte pĹ™idat k Broadcaster Object. To provedete zavolánĂm odpovĂdajĂcĂ metody pro pĹ™idánĂ Listeneru. Tyto metody se vĹľdy nazĂ˝vajĂ podle vzoru "addFooListener", kde "Foo" pĹ™edstavuje typ rozhranĂ Listeneru bez 'X'. V tomto pĹ™Ăkladu se volá metoda addContainerListener pro zaregistrovánĂ XContainerListener:
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 musĂ existovat!
oLib.addContainerListener( oListener ) ' Registerovat listener
NynĂ je Listener zaregistrován. KdyĹľ nastane událost, zavolá odpovĂdajĂcĂ Listener správnou metodu z rozhranĂ com.sun.star.container.XContainerListener.
Prefix volá registrované Listenery z podprogramů Basic. Za běhu Basic hledá procedury nebo funkce, které majà jméno "PrefixListenerMethode" a při nalezenà je zavolá. Jinak dojde k chybě.
V tomto pĹ™ĂpadÄ› pouĹľĂvá rozhranĂ Listener následujĂcĂ metody:
-
disposing:
-
Listener base interface (com.sun.star.lang.XEventListener): základnà rozhranà pro všechna rozhranà Listener
-
elementInserted:
-
Metoda rozhranĂ the com.sun.star.container.XContainerListener
-
elementRemoved:
-
Metoda rozhranĂ the com.sun.star.container.XContainerListener
-
elementReplaced:
-
Metoda rozhranĂ the com.sun.star.container.XContainerListener
V tomto pĹ™ĂpadÄ› je prefixem 'ContListener_'. V jazyce Basic je proto tĹ™eba implementovat následujĂcĂ podprogramy:
-
ContListener_disposing
-
ContListener_elementInserted
-
ContListener_elementRemoved
-
ContListener_elementReplaced
Pro kaĹľdĂ˝ typ Listeneru existuje typ event structure obsahujĂcĂ informace o události. KdyĹľ je zavolána metoda Listeneru, pĹ™edá se metodÄ› jako parametr instance tĂ©to události. Metody Listeneru takĂ© mohou volat tyto objekty události, je-li v deklaraci Sub pĹ™edán správnĂ˝ parametr. NapĹ™Ăklad:
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
Pokud objekt nepouĹľĂváte, nemusĂte pĹ™idávat jeho parametr:
' Minimálnà implementace Sub disposing
Sub ContListener_disposing
End Sub
Metody Listeneru musĂte vĹľdy implementovat, abyste pĹ™edešli chybám Basic.