Module
Contents
Index 🔎︎

# CreateUnoListener Function

Vytvorí príklad Listeneru.

Veľa UNO rozhraní vám umožní registrovať listener v špeciálnych rozhraniach. To vám dovolí počúvať špecifických udalostiach a zavolať vhodnú metódu listeneru. Funkcia CreateUnoListener čaká v zodpovedajúcom rozhraní a až potom posunie rozhranie objektu, ktorý toto rozhranie podporuje. Tento objekt bude odovzdaný metóde registrovanej listenerom.

## Syntax:

    oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

## Príklad:

Nasledujúci príklad je založený na knižnici objektov Basic.

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

Metóda CreateUnoListener vyžaduje dva parametre. Prvý je prefix a podrobnejšie je vysvetlený nižšie. Druhý parameter je plne kvalifikovaný názvom rozhrania Listener, ktoré chcete použiť.

Listener potom musíte pridať k Broadcaster Object. To urobíte zavolaním vhodnej metódy na pridanie Listeneru. Tieto metódy sa vždy volajú podľa vzoru "addFooListener", kde "Foo" predstavuje typ rozhrania Listeneru bez 'X'. V tomto príklade sa volá metóda addContainerListener na zaregistrovanie XContainerListener:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1 musí  existovať!
    oLib.addContainerListener( oListener ) ' Registrovať  listener

Teraz je Listener zaregistrovaný. Keď nastane udalosť, zavolá sa zodpovedajúci Listener správnou metódou z rozhrania com.sun.star.container.XContainerListener Interface.

Prefix volá registrované Listenery z podprogramov Basic. Za behu Basic hľadá procedúry alebo funkcie, ktoré majú meno "PrefixListenerMethode" a pri nájdení ich zavolá. Inak dôjde k chybe.

V tomto prípade používa rozhranie Listener nasledujúce metódy:

- disposing:

- Listener base interface (com.sun.star.lang.XEventListener): základné rozhrania pre všetky rozhrania Listener

- elementInserted:

- metóda rozhrania com.sun.star.container.XContainerListener

- elementRemoved:

- metóda rozhrania com.sun.star.container.XContainerListener

- elementReplaced:

- metóda rozhrania com.sun.star.container.XContainerListener

V tomto prípade je prefixom 'ContListener_'. V jazyku Basic je preto potrebné implementovať nasledujúce podprogramy:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Pre každý typ Listeneru existuje štruktúra udalosti, obsahujúca informácie o udalosti. Keď je volaná metóda Listeneru, príklad tejto udalosti sa odovzdá metóde ako parameter. Základné metódy Listeneru sa môžu tiež volať ako udalosti objektov, pokiaľ je deklarácii Sub odovzdaný správny parameter.

    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

Pokiaľ objekt nepoužívate nemusíte pridávať jeho parameter:

    ' Minimálna implementácia príkazu Sub
    Sub ContListener_disposing
    End Sub

Metódy Listeneru musíte vždy implementovať , aby ste predišli chybám Basic.