|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.nuiton.util.CategorisedListenerSet<L>
L - listener typepublic class CategorisedListenerSet<L>
Objet permettant de géré plusieurs liste de listener de facon simple.
Chaque liste de listener est rangé en fonction d'une cle (categorie)
Une categorie peut avoir un pere, dans ce cas si un event doit etre lancé
sur une categorie il est aussi lancer sur le pere de la categorie.
Mais attention l'inverse n'est pas vrai, un event lancé sur un père n'est
jamais lancé sur ses fils.
Il existe une Category spéciale ALL qui permet d'envoyer un event
a tous les listeners.
Si cette classe est la derniere classe a conserver l'objet categorie
alors la categorie est libere et ainsi que les listeners si c'etait aussi
leur derniers referencements
Si les categories sont representees par des Class, alors vous pouvez utiliser la hierachie de classe pour creer de facon automatique les peres.
ListenerSet| Field Summary | |
|---|---|
static Object |
ALL
permet de remplacer toutes les categories. |
protected WeakHashMap<Object,Object> |
categoryParent
|
protected boolean |
isClassCategory
|
protected WeakHashMap<Object,ListenerSet<L>> |
listeners
HashMap de ListenerSet, en cle l'objet qui caracterise la categorie en valeur un ListenerSet |
| Constructor Summary | |
|---|---|
CategorisedListenerSet()
Empty constructor. |
|
CategorisedListenerSet(boolean isClassCategory)
|
|
CategorisedListenerSet(Class<?> listenerClass,
boolean isClassCategory)
Deprecated. unused same as CategorisedListenerSet(boolean) |
|
| Method Summary | |
|---|---|
void |
add(Object category,
L l)
Ajoute un listener sur une certaine categorie, si la categorie n'existe alors on la crée en ne lui affectant pas de père |
void |
addCategory(Object parent,
Object newCategory)
Ajoute une categorie en indiquant sont pere. |
protected void |
checkCategory(Object category)
|
void |
fire(Object category,
String methodName)
Permet de lancer un event dans une categorie, l'event est aussi propagé sur les ancètres de la categorie, si un meme objet etait listener dans plusieurs categories alors il ne recevra qu'une seul notification |
void |
fire(Object category,
String methodName,
Object event)
Permet de lancer un event dans une categorie, l'event est aussi propagé sur les ancètres de la categorie |
protected ListenerSet<L> |
getAllListeners(Object category)
Retourne un ListenerSet contenant tous les listeners c'est à dire les listener de la categorie demandé mais aussi les listeners des ancetres |
protected ListenerSet<L> |
getListeners(Object category)
Retourne un ListenerSet contenant seulement les listener de la categorie demandé. |
protected ListenerSet<L> |
getListenersClass(Class<?> category)
|
Iterator<L> |
iterator(Object category)
Retourne un Iterator sur tous les listeners qu'il faut prevenir si on souhaite prevenir une certaine categorie. |
void |
remove(Object category,
L l)
Supprime un listener d'une categorie, si la categorie ou le listener n'existe pas, rien ne se passe. |
String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final Object ALL
protected WeakHashMap<Object,ListenerSet<L>> listeners
protected WeakHashMap<Object,Object> categoryParent
protected boolean isClassCategory
| Constructor Detail |
|---|
public CategorisedListenerSet()
public CategorisedListenerSet(boolean isClassCategory)
isClassCategory - si vrai et que les categorie passé en arguement
lors de l'ajout sont de type Class alors lors du fire on recherche aussi
les peres dans la hierarchie d'heritage de la classe (Super class et
interfaces)
@Deprecated
public CategorisedListenerSet(Class<?> listenerClass,
boolean isClassCategory)
CategorisedListenerSet(boolean)
listenerClass - la classe dont doit heriter les listeners pour
etre accepté lors de l'ajoutisClassCategory - si vrai et que les categorie passé en arguement
lors de l'ajout sont de type Class alors lors du fire on recherche aussi
les peres dans la hierarchie d'heritage de la classe (Super class et
interfaces)| Method Detail |
|---|
protected void checkCategory(Object category)
public void addCategory(Object parent,
Object newCategory)
parent - le pere de la categorie, null si on ne souhaite pas de perenewCategory - la nouvelle caterogie
public void add(Object category,
L l)
category - la categorie dans lequel il faut ajouter le listenerl - le listener a ajouter
public void remove(Object category,
L l)
category - la categorie dans lequel il faut supprimer le listenerl - le listener a supprimer
public void fire(Object category,
String methodName,
Object event)
throws Exception
category - la categorie a partir duquel il faut lancer l'evenementmethodName - le nom de la méthode de la classe listenerevent - l'objet event a passer en paramètre de la methode du
listener
Exception - if event can't be fired
public void fire(Object category,
String methodName)
throws Exception
category - la categorie a partir duquel il faut lancer l'evenementmethodName - le nom de la méthode de la classe listener
Exception - if event can't be firedpublic Iterator<L> iterator(Object category)
category - category to get iterator on
protected ListenerSet<L> getAllListeners(Object category)
protected ListenerSet<L> getListenersClass(Class<?> category)
protected ListenerSet<L> getListeners(Object category)
public String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||