IBM Lotus Symphony
|
Crée une instance d'auditeur.
De nombreuses interfaces Uno permettent d'enregistrer des auditeurs dans une interface d'auditeur dédiée. Cela permet d'écouter des événements spécifiques et d'appeler la méthode d'auditeur appropriée. La fonction CreateUnoListener attend l'interface d'auditeur appelée et lui transmet un objet que celle-ci supporte. Cet objet est ensuite transmis à la méthode afin que l'auditeur soit enregistré.
oListener = CreateUnoListener(Prefixname, ListenerInterfaceName)
L'exemple suivant est basé sur un objet de la bibliothèque Basic.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
La méthode CreateUnoListener nécessite deux paramètres. Le premier, un préfixe, est expliqué en détail ci-dessous. Le deuxième paramètre est le nom complet de l'interface d'auditeur à utiliser.
Celle-ci doit ensuite être ajoutée à l'objet Broadcaster. Pour ce faire, vous devez appeler la méthode appropriée pour ajouter un auditeur. Ces méthodes sont toujours construites sur le modèle "addFooListener", où "Foo" représente le type d'interface d'auditeur sans le 'X'. Dans cet exemple, la méthode addContainerListener est appelée pour enregistrer XContainerListener :
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 doit exister.
oLib.addContainerListener( oListener ) ' Enregistrer l'auditeur
L'auditeur est désormais enregistré. Lorsqu'un événement se produit, l'auditeur correspondant appelle la méthode appropriée depuis l'interface com.sun.star.container.XContainerListener.
Le préfixe appelle les auditeurs enregistrés dans les sous-routines Basic. Le système d'exécution Basic recherche les sous-routines ou les fonctions nommées "PrefixListenerMethode" et les appelle. Sinon, une erreur d'exécution se produit.
Dans cet exemple, l'interface d'auditeur utilise les méthodes suivantes :
disposing :
Interface de base d'auditeur (com.sun.star.lang.XEventListener) : interface de base de toutes les interfaces d'auditeur
elementInserted :
Méthode de l'interface com.sun.star.container.XContainerListener
elementRemoved :
Méthode de l'interface com.sun.star.container.XContainerListener
elementReplaced :
Méthode de l'interface com.sun.star.container.XContainerListener
Dans cet exemple, le préfixe est ContListener_. Par conséquent, les sous-routines suivantes doivent être implémentées dans Basic :
ContListener_disposing
ContListener_elementInserted
ContListener_elementRemoved
ContListener_elementReplaced
Un type de structure d'événement contenant des informations sur un événement donné existe pour chaque type d'auditeur. Dès qu'une méthode d'auditeur est appelée, une instance de cet événement est transmise à la méthode sous forme de paramètre. Les méthodes d'auditeur de Basic peuvent également appeler ces objets d'événements. Pour cela, le paramètre approprié doit être transmis dans la déclaration Sub. Exemples :
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
Il n'est pas nécessaire d'inclure le paramètre d'un objet d'événement si cet objet n'est pas utilisé :
' Implémentation minimale de Sub disposing
Sub ContListener_disposing
End Sub
![]() |
Les méthodes d'auditeur doivent toujours être implémentées afin d'éviter des erreurs d'exécution de Basic. |