Функція CreateUnoListener

Створює примірник слухача.

У багатьох інтерфейсах Uno можна реєструвати слухачів за допомогою особливого інтерфейсу. Це дозволяє прослуховувати певні події і викликати потрібний метод прослуховування. Функція CreateUnoListener очікує викликаний інтерфейс слухача, а потім передає в цей інтерфейс підтримуваний ним об'єкт. Потім цей об'єкт передається методу для реєстрації слухача.

Синтаксис:

oListener = CreateUnoListener( Префікс, Назва_інтерфейсу_слухача )

Приклад:

У цьому прикладі використовується об'єкт із бібліотеки Basic.


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

Методу CreateUnoListener потрібні два параметри. Перший параметр - префікс, докладний опис якого дається нижче. Другий параметр - повне ім'я інтерфейсу слухача, який необхідно використовувати.

Слухача необхідно додати до об'єкта Broadcaster. Для цього необхідно викликати потрібний метод. В цих методах завжди використовується структура "addFooListener", де "Foo" - тип інтерфейсу слухача без "X". У наступному прикладі метод addContainerListener викликається для реєстрації XContainerListener:


Dim oLib
oLib = BasicLibraries.Library1 ' Бібліотека Library1 повинна існувати!
oLib.addContainerListener( oListener ) ' Реєстрація слухача

Слухач зареєстрований. При виникненні події відповідний слухач викликає потрібний метод через інтерфейс com.sun.star.container.XContainerlistener.

Префікс викликає зареєстрованих слухачів з підпрограм Basic. Система підтримки виконання програм Basic виконує пошук підпрограм Basic або функцій з назвою "PrefixListenerMethode" і, знайшовши, викликає їх. В іншому випадку виникає помилка часу виконання.

У цьому прикладі інтерфейс слухача використовує такі методи:

У наступному прикладі використовується префікс ContListener_. Таким чином, повинні бути реалізовані такі підпрограми Basic:

Для кожного типу слухача існує тип структури події, що містить дані про подію. При виклику методу слухача примірник події передається методу в якості параметра. Методи слухача на Basic можуть також викликати ці події, якщо в оголошенні Sub передається потрібний параметр. Наприклад:


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

Якщо об'єкт не використовується, включати параметр події не обов'язково:


' Мінімальна реалізація Sub disposing
Sub ContListener_disposing
End Sub
Піктограма Попередження

Методи слухача повинні реалізовуватися завжди, щоб запобігти виникненню помилок часу виконання Basic.


Будь ласка, підтримайте нас!