Un Listener Global en SWT

En général, une application graphique est composée de plusieurs éléments, appelés widgets, chaque élément pouvant être associé à ou un plusieurs listeners. Ces listeners vont réagir à des événements, comme des actions utilisateurs, et déclencher un traitement. Parfois, plutôt que de multiplier le nombre de listeners, on se dit qu’on pourrait aussi avoir un listener global sur l’application et faire un dispatch ensuite.

Pour cela, il suffit d’utiliser la méthode…

Display.addFilter( int, Listener );
  • Le premier paramètre est un type d’événement (comme org.eclipse.SWT.Selection).
  • Et le deuxième paramètre est un listener qui fera le traitement. Pour le dispatch, s’il est nécessaire, il suffira d’analyser l’événement lui-même (source, etc). Comme ce dispatch n’est pas hyper simple, il vaut mieux en général placer les listeners sur les widgets eux-mêmes. Mais parfois, cette alternative simplifiera et allègera de beaucoup le code de l’application.

Attention ! Ne pas oublier d’enlever le listener quand on en a plus besoin.
Pour information, c’est cette solution qui est utilisée dans Eclipse pour rediriger les événements utilisateurs vers les bons traitements, en fonction des points d’extensions utilisés.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s