COURS III :
Technologie orientée objet
l'Interface "Events"
Applet Java et sa source
- "Event" (Evénement) général
- Signalisation d'un événement dans un composant vers l'extérieur
- Plusieurs types d'événements
- Bas niveau du GUI ( souris, touche clavier..)
- Haut niveau (sémantique, menu)
- Exemple : AWT "Delegation Event Model"
pour les JavaBeans :
- Découplage du traitement de "l'event" de sa génération dans le composant
- Choix des concepteurs de Java entre "abstact class" ou "interface"
- L'abstact class n'oblige pas l'implémentation !
- L'interface exige l'implémentation du traitement par le compilateur
- Mais elle n'implante rien par elle-même et n'offre aucun traitement par défaut
- "Event Adapters" (class) implémentent le traitement ("interfaces
cleaner, convenience class")
- Mais il y a le problème d'absence de "friend class" et du multiple
héritage
- Contournement par "inner class" qui profite du "scope"
d'une autre classe
- Implémentent "Event Listener(s) interface" :
- "Event Listener(s)" s'enregistrent auprès des "Event
Source(s)"
- Notification synchrone d'un "Event state Object" au "Listener(s)"
- Annuler "unregister" pour rompre la liaison
- Comportement par défaut "do nothing" (le composant signale dans le
vide)
- Exemple ActiveX "control event
firing"
- "Client mapping" similaire aux composants OLE
- Mais pas de gestion message système ("WM_ notification")
- "Event sink map" : connection sur "handler
function"
- Chaque event possède un nom et des paramètres libres
- Le composant appelle une fonction du "container" (client)