LibreOffice 7.3 abi
Loob kuulaja eksemplari.
Paljud Uno liidesed võimaldavad spetsiaalses kuulajaliideses registreeerida kuulajaid. Tänu sellele saad kuulata teatud sündmusi ja kutsuda sobiva kuulajameetodi. Funktsioon CreateUnoListener ootab kutsutud kuulajaliidest ja edastab seejärel liidesele objekti, mida liides toetab. Objekt edastatakse seejärel kuulaja registreerimiseks meetodile.
oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )
Järgnev näide põhineb BASICu teegi objektil.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
Meetodi CreateUnoListener jaoks on vaja kahte parameetrit. Esimene on eesliide aj seda kirjeldatakse edaspidi täpsemalt. Teine parameeter on kasutatava kuulajaliidese täielik nimi.
Seejärel tuleb kuulaja lisada leviedastusobjektile. Selleks kutsu vastav kuulaja lisamise meetod. Need meetodid vastavad alati mallile "addFooListener", kus Foo on kuulajaliidese tüüp ilma X-ta. Selles näites kutsutakse meetod addContainerListener liidese XContainerListener registreerimiseks:
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 peab eksisteerima!
oLib.addContainerListener( oListener ) ' Jälgija registreerimine
Kuulaja on nüüd registreeritud. Sündmuse ilmnemisel kutsub vastav kuulaja sobiva meetodi com.sun.star.container.XContainerListener liidesest.
Eesliide kutsub registreeritud kuulajad Basicu alamprotseduuridest. Basicu käitusajasüsteem otsib neid Basicu alamprotseduure või funktsioone, mille nimi on "PrefixListenerMethode" ja nende leidmise korral kutsub need. Muul juhul ilmneb käitusajaviga.
Selles näites kasutab kuulaja liides järgmisi meetodeid:
disposing:
Kuulaja põhiliides (com.sun.star.lang.XEventListener): kõigi kuulaja liideste põhiliides
elementInserted:
Liidese com.sun.star.container.XContainerListener meetod
elementRemoved:
Liidese com.sun.star.container.XContainerListener meetod
elementReplaced:
Liidese com.sun.star.container.XContainerListener meetod
Selles näites on eesliide ContListener_. Seetõttu tuleb Basicus rakendada järgmised alamprotseduurid:
ContListener_disposing
ContListener_elementInserted
ContListener_elementRemoved
ContListener_elementReplaced
Sündmuse struktuuri tüüp, mis sisaldab teavet selle kohta kas sündmus on olemas kõigi kuulaja tüüpide jaoks. Kuulaja meetodi kutsumisel edastatakse sündmuse eksemplar meetodile parameetrina. Basicu kuulaja meetodid võivad kutsuda ka neid sündmuseobjekte, kuni Sub kirjeldusse edastatakse sobiv parameeter. Näiteks:
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
Sündmuse objekti parameetrit pole vaja sisestada, kui see objekt pole kasutusel:
' Sub kõrvaldamise miinimumrakendus
Sub ContListener_disposing
End Sub
Basicu käitusajavigade ennetamiseks peavad kuulaja meetodid olema alati rakendatud.