CreateUnoListener Function

CreateUnoListener luo kuuntelijailmentymän.

Useat Uno-rajapinnat antavat rekisteröidä kuuntelijoita erityiseen kuuntelijarajapintaan (listener interface). Tämä tekee mahdolliseksi kuunnella määrättyjä tapahtumia ja kutsua sopivaa kuuntelijametodia. CreateUnoListener-funktio odottaa kutsuttua kuuntelijarajapintaa ja välittää sitten rajapintaan olion, jota rajapinta tukee. Tämä olion välitetään sitten metodille kuuntelijan rekisteröimiseksi.

Syntaksi:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

Esimerkki:

Seuraavat esimerkit perustuvat Basicin kirjasto-olioihin.

Dim oListener

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

CreateUnoListener-metodi vaatii kaksi parametriä. Ensimmäinen on etuliite ja se on selitetty yksityiskohtaisesti alempana. Toinen on käytettävän kuuntelijan täydellinen nimi.

Sitten pitää kuuntelija lisätä yleislähettäjäolioon. Tämä tehdään kutsumalla kuuntelijan lisäämiseen sopivaa metodia. Näiden metodien muoto on aina "addFooListener", missä täyte "Foo" on kuuntelijarajapinnan tyyppi, ilman kirjainta 'X'. Tässä esimerkissä addContainerListener-metodia on kutsuttu rekisteröimään XContainerListener:

Dim oLib

oLib = BasicLibraries.Library1 ' Library1 pitää olla olemassa!

oLib.addContainerListener( oListener ) ' Rekisteröidään kuuntelija

Kuuntelija on nyt rekisteröity. Kun tapahtuma sattuu, vastaava kuuntelija kutsuu sopivaa metodia com.sun.star.container.XContainerListener-rajapinnasta.

Etuliite kutsuu rekisteröityjä kuuntelijoita Basic-aliohjelmista. Basicin ajonaikainen järjestelmä etsii Basic-aliohjelmia ja -funktioita, joilla on nimi "PrefixListenerMethode" ja löydettäessä kutsuu niitä. Muutoin tapahtuu ajonaikainen virhe.

Tässä esimerkissä kuuntelijarajapinta käyttää seuraavia metodeja:

Tässä esimerkissä etuliite on ContListener_. Seuraavat aliohjelmat pitää siksi olla toteutettu Basicissa:

Jokaiselle kuuntelijatyypille on olemassa tapahtuman rakennetyyppi, jossa on tapahtumaan liittyvää tietoa. Kun kuuntelijametodia on kutsuttu, tapahtuman ilmentymä välitetään metodille parametrinä. Basicin kuuntelijametodit voivat myös kutsua näitä olioita, mikäli sopiva parametri on välitetty Sub-rutiinin esittelyssä. Esimerkki:

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

Tapahtumaolion parametrejä ei tarvitse sisällyttää, jos oliota ei käytetä:

' Pieni Sub-rutiinilla toteutettu hävitys

Sub ContListener_disposing

End Sub

Varoitus-kuvake

Kuuntelijametodit pitää aina olla toteutettuja (implemented), jolloin vältetään Basicin ajonaikaiset virheet.