IBM Lotus Symphony
|
Vytvára inštanciu pozorovateľ.
Mnohé rozhrania Uno umožňujú registráciu pozorovateľov na špeciálnom rozhraní pozorovateľov. Toto vám umožňuje sledovať špecifické udalosti a volať príslušné metódy pozorovateľa. Funkcia CreateUnoListener čaká na volané rozhranie pozorovateľa a potom odovzdáva rozhraniu objekt, ktorý toto rozhranie podporuje. Tento objekt sa potom odovzdáva metóde na registráciu pozorovateľa.
oListener = CreateUnoListener( názov_predpony, ListenerInterfaceName )
Nasledujúci príklad sa zakladá na objekte z knižnice jazyka Basic.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
Metóda CreateUnoListener si vyžaduje dva parametre. Prvým je predpona, ktorá sa podrobnejšie vysvetľuje nižšie. Druhý parameter je plne kvalifikovaný názov rozhrania pozorovateľa, ktoré chcete používať.
Pozorovateľ sa potom musí pridať k objektu Broadcaster. Robí sa to volaním príslušnej metódy pridávania pozorovateľa. Tieto metódy vždy dodržiavajú postup "addFooListener", kde "Foo" je typ rozhrania pozorovateľa bez znaku 'X'. V tomto príklade sa volá metóda addContainerListener za účelom registrácie XContainerListener:
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 musí existovať!
oLib.addContainerListener( oListener ) ' Registrujte pozorovateľa
Pozorovateľ je teraz registrovaný. Keď nastane udalosť, príslušný pozorovateľ volá príslušnú metódu z rozhrania com.sun.star.container.XContainerListener.
Predpona volá registrovaných pozorovateľov z podprogramov jazyka Basic. Prevádzkový systém jazyka Basic hľadá podprogramy jazyka Basic alebo funkcie s názvom "PrefixListenerMethode" a keď ich nájde, volá ich. Inak nastane chyba v chode programu.
V tomto príklade rozhranie pozorovateľa používa nasledujúce metódy:
disposing:
poskytnutie k dispozícii základného rozhrania pozorovateľa (com.sun.star.lang.XEventListener): základné rozhranie pre všetkých pozorovateľov
elementInserted:
odstránenie metódy rozhrania Method of the com.sun.star.container.XContainerListener
elementRemoved:
odstránenie metódy rozhrania Method of the com.sun.star.container.XContainerListener
elementReplaced:
odstránenie metódy rozhrania Method of the com.sun.star.container.XContainerListener
V tomto prípade sa používa predpona ContListener_. Preto musia byť v jazyku Basic implementované nasledujúce podprogramy :
ContListener_disposing
ContListener_elementInserted
ContListener_elementRemoved
ContListener_elementReplaced
Typ štruktúry udalosti, ktorý obsahuje informácie o udalosti existuje pre každý typ pozorovateľa. Keď sa volá metóda pozorovateľa, inštancia tejto udalosti sa odovzdá metóde ako parameter. Základné metódy pozorovateľa tiež môžu volať tieto objekty udalostí, ak sa príslušný parameter odovzdal v deklarácii Sub. Napríklad:
Sub ContListener_disposing( oEvent )
MsgBox "poskytnutie_k_dispozícii"
MsgBox oEvent.Dbg_Properties
End Sub
Sub ContListener_elementInserted( oEvent )
MsgBox "vložený_ prvok"
MsgBox oEvent.Dbg_Properties
End Sub
Sub ContListener_elementRemoved( oEvent )
MsgBox "odstránený_prvok"
MsgBox oEvent.Dbg_Properties
End Sub
Sub ContListener_elementReplaced( oEvent )
MsgBox "nahradený_prvok"
MsgBox oEvent.Dbg_Properties
End Sub
Nemusíte zahrňovať parameter objektu udalosti, ak sa objekt nepoužíva:
' Minimálna implementácia poskytnutia k dispozícii Sub
Sub ContListener_disposing
End Sub
![]() |
Metódy načúvača sa musia vždy implementovať, ak sa chcete vyhnúť run-time chybám Basic. |