IBM Lotus Symphony
|
Ustvari primerek poslušalnika.
Več vmesnikov Uno vam omogoča, da registrirate poslušalnike na posebnih vmesnikih za poslušalnike. To vam omogoča, da poslušate specifične dogodke in prikličete ustrezno metodo poslušanja. Funkcija CreateUnoListener čaka priklicani vmesnik poslušalnika in potem posreduje vmesnik predmetu, ki ga vmesnik podpira. Predmet se nato posreduje metodi, da se registrira poslušalnik.
oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )
Naslednji primer temelji na predmetu knjižnice Basica.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
Metoda CreateUnoListener zahteva dva parametra. Prvi je predpona in je podrobno razložen spodaj. Drugi parameter je celotno ime vmesnika poslušalnika, ki ga želite uporabiti.
Poslušalnik mora biti nato dodan predmetu oddajnik. To storite tako, da kličete ustrezno metodo za dodajanje poslušalnika. Te metode vedno sledijo vzorcu "addFooListener", kjer je "Foo" vrsta vmesnika poslušalnika brez 'X'. V tem primeru se kliče metoda addContainerListener za registracijo XContainerListener:
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 must exist!
oLib.addContainerListener( oListener ) ' Register the listener
Poslušalnik je zdaj registriran. Kadar pride do dogodka, ustrezni poslušalnik kliče ustrezno metodo iz vmesnika com.sun.star.container.XContainerListener.
Predpona kliče registrirane poslušalnike iz podprograma Basica. Sistem izvajanja Basica išče podprograme ali funkcije Basica, ki imajo ime "PrefixListenerMethode" in jih kliče, kadar jih najde. V nasprotnem primeru pride do napake pri izvajanju.
V tem primeru vmesnik poslušalnika uporablja naslednje metode:
disposing:
Osnovni vmesnik poslušalnika (com.sun.star.lang.XEventListener): osnovni vmesnik za vse vmesnike poslušalnikov.
elementInserted:
Metoda vmesnika com.sun.star.container.XContainerListener
elementRemoved:
Metoda vmesnika com.sun.star.container.XContainerListener
elementReplaced:
Metoda vmesnika com.sun.star.container.XContainerListener
V tem primeru je predpona ContListener_. Naslednji podprogrami morajo zato biti implementirani v Basicu.
ContListener_disposing
ContListener_elementInserted
ContListener_elementRemoved
ContListener_elementReplaced
Vrsta strukture dogodka, ki vsebuje informacije o dogodku, obstaja za vsako vrsto poslušalnika. Kadar je klicana metoda poslušalnika, se primerek tega dogodka posreduje metodi kot parameter. Metode poslušalnika v Basicu prav tako lahko kličejo te predmete dogodkov, če je ustrezen parameter posredovan v deklaraciji Sub. Na primer:
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
Ni vam treba vključevati parametra predmeta dogodka, če se predmet ne uporablja:
' Minimal implementation of Sub disposing
Sub ContListener_disposing
End Sub
![]() |
Metode poslušalnika morajo biti vedno implementirane, da se izognete napakam izvajalnega okolja Basic. |