Vsebina
Kazalo 🔎︎

# Funkcija CreateUnoListener

Ustvari instanco prisluškovalca (Listener).

Številni vmesniki Uno omogočajo registracijo prisluškovalcev za poseben prisluškovalni vmesnik. Tako lahko prisluškujete določenim dogodkom in sprožite ustrezno metodo prisluškovalca. Funkcija CreateUnoListener čaka na klicani prisluškovalni vmesnik in nato posreduje vmesniku predmet, ki ta vmesnik podpira. Ta predmet se potem posreduje metode za registracijo prisluškovalca.

### Skladnja:

oPrisluskovalec = CreateUnoListener( PrefixIme, ImePrislVmesnika )

### Primer:

Naslednji primer se naslanja na predmet iz knjižnice Basic.

    Dim oListener
    oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )

Metoda CreateUnoListener zahteva dva parametra. Prvi parameter je predpona in ga bomo razložili natančneje spodaj. Drugi parameter je popolnoma kvalificirano ime prisluškovalnega vmesnika, ki ga želite uporabljati.

Prisluškovalca (Listener) moramo potem dodati predmetu Oddajnik (Broadcaster). V ta namen moramo poklicati ustrezno metodo za dodajanje Prisluškovalcev. Metode vedno imenujemo po vzorcu »addTaleListener«, kjer je »Tale« vrsta prisluškovalnega vmesnika brez 'X'. V tem primeru pokličemo metodo addContainerListener, ki registrira XContainerListener:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1 mora obstajati!
    oLib.addContainerListener( oListener ) ' Registriraj prisluškovalca

Prisluškovalec je sedaj registriran. Ko pride do dogodka, ustrezni Prisluškovalec pokliče zahtevano metodo v vmesniku com.sun.star.container.XContainerListener.

Prefix kliče registrirane Prisluškovalce v procedurah Basic. Sistem Basic za izvajanje išče procedure ali funkcije, ki imajo ime »PrefixListenerMethode« in jih pokliče, če jih odkrije. V nasprotnem primeru pride do napake med izvajanjem.

V naslednjem primeru uporablja prisluškovalni vmesnik naslednje metode:

- disposing:

- temeljni prisluškovalni vmesnik (com.sun.star.lang.XEventListener): temeljni vmesnik za vse prisluškovalne vmesnike

- elementInserted:

- Metoda vmesnika com.sun.star.container.XContainerListener

- elementRemoved:

- Metoda vmesnika com.sun.star.container.XContainerListener

- elementReplaced:

- Metoda vmesnika com.sun.star.container.XContainerListener

Naslednji primer uporablja prefiks ContListener_. Naslednje procedure morajo zato biti implementirane v Basicu:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Vrsta strukture za dogodek, ki vsebuje informacijo o dogodku, obstaja za vsako vrsto prisluškovalca. Kadar se kliče prisluškovalčevo metodo, dobi metoda kot parameter instanco tega dogodka. Metode za prisluškovalce v Basicu lahko tudi kličejo te dogodkovne predmete, če deklaracija Sub nudi ustrezen parameter. Primer:

    Sub ContListener_disposing( oEvent )
        MsgBox "disposing – zapiramo"
        MsgBox oEvent.Dbg_Properties
    End Sub

    Sub ContListener_elementInserted( oEvent )
        MsgBox "elementInserted – element dodan"
        MsgBox oEvent.Dbg_Properties
    End Sub

    Sub ContListener_elementRemoved( oEvent )
        MsgBox "elementRemoved – element odstranjen"
        MsgBox oEvent.Dbg_Properties
    End Sub

    Sub ContListener_elementReplaced( oEvent )
        MsgBox "elementReplaced – element zamenjan"
        MsgBox oEvent.Dbg_Properties
    End Sub

Če predmeta ne uporabljate, parametra za dogodkovni predmet ni potrebno vključiti:

    ' Minimalna implementacija Sub disposing
    Sub ContListener_disposing
    End Sub

Prisluškovalne metode morate vedno implementirati, da se izognete napakam med izvajanjem Basica.