|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.ranides.assira.events.NamedEventListener
public class NamedEventListener
Obserwator pozwalający tworzyć wiązania z obserwatorami nasłuchującymi zdarzeń
o określonym typie oraz nazwie. Wszystkie nazwane zdarzenia dziedziczą po
NamedEvent. Ponieważ mechanizm obsługi zdarzeń nazwanych jest rozszerzeniem
klasycznej infrastruktury przekazywania zdarzeń, to może być dowolnie łączony
ze standardowymi obiektami EventListener oraz EventRouter.
NamedEventListener posiada funkcjonalność bardzo podobną do ReflectEventListener. Klasy pochodne mogą deklarować metody (niekoniecznie
publiczne), które zostaną uruchomione, jeśli do obserwatora zostanie wysłane
określone zdarzenie. Deklaracja metody obsługi zdarzeń ma następującą postać:
Meta.EventHandlerMeta.EventHandler obowiązkowo zawiera nazwę obserwowanego zdarzeniaMeta.EventHandler opcjonalnie określa sposób synchronizacji metody względem innych wątków| thread-safe class |
| Method Summary | ||
|---|---|---|
|
addEventListener(Class<T> event,
EventListener<? super T> listener)
Rejestruje obserwatora, który otrzyma wszystkie zdarzenia o podanym typie. |
|
|
bind(String name,
Class<T> type,
EventListener<? super T> listener)
Rejestruje obserwatora, który otrzyma wszystkie zdarzenia o podanej nazwie oraz typie. |
|
NamedEventListener |
bind(String name,
EventListener<? super NamedEvent> listener)
Rejestruje obserwatora, który otrzyma wszystkie zdarzenia o podanej nazwie. |
|
void |
dispose()
Kończy działanie routera i zwalnia wszystkie zasoby. |
|
Collection<EventBinding<?>> |
getEventListeners()
|
|
void |
handleEvent(Event event)
Metoda implementująca reakcję na zdarzenie. |
|
void |
removeAllEventListeners()
Usuwa wszystkie zarejestrowane obserwatory. |
|
|
removeEventListener(Class<T> event,
EventListener<? super T> listener)
Usuwa obserwatora, którego wcześniej zarejestrowano dla zdarzeń o podanym typie. |
|
boolean |
signalEvent(Event event)
Sygnalizuje podane zdarzenie rozsyłając komunikat do wszystkich obserwatorów. |
|
NamedEventListener |
unbind(EventListener<? super NamedEvent> listener)
Usuwa obserwatora, którego wcześniej dodano za pomocą metody Observable.bind(java.lang.String, net.ranides.assira.events.EventListener super net.ranides.assira.events.NamedEvent>). |
|
NamedEventListener |
unbind(String name,
EventListener<? super NamedEvent> listener)
Usuwa obserwatora, którego wcześniej dodano za pomocą metody Observable.bind(java.lang.String, net.ranides.assira.events.EventListener super net.ranides.assira.events.NamedEvent>). |
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public final void handleEvent(Event event)
EventListenerDokładniej rzecz ujmując: o tym, w jakim wątku zostanie wywołana
metoda decyduje EventRouter, do którego Listener
został podpięty. Jeśli podpięto obiekt do wielu EventRouter'ów,
to każdy może zostać wywołany w zupełnie innym kontekście.
handleEvent in interface EventListener<Event>public boolean signalEvent(Event event)
EventRouterfalse.
signalEvent in interface EventRouterpublic void dispose()
EventRouter| thread-safe method |
dispose in interface EventRouter
public final NamedEventListener bind(String name,
EventListener<? super NamedEvent> listener)
Observable
bind in interface Observable
public final <T extends NamedEvent> Observable bind(String name,
Class<T> type,
EventListener<? super T> listener)
Observable
bind in interface Observable
public final NamedEventListener unbind(String name,
EventListener<? super NamedEvent> listener)
ObservableObservable.bind(java.lang.String, net.ranides.assira.events.EventListener super net.ranides.assira.events.NamedEvent>).
Jeśli zajestrowano go wielokrotnie dla wielu różnych zdarzeń o podanej
nazwie - usuwane jest tylko jedno wiązanie. Jeśli zajestrowano go również dla
zdarzeń o innych nazwach - zostają one nadal. Wiekrotna rejestrowane obserwatory
musi zostać usunięte również wielokrotnie.
zachowane.
unbind in interface Observablepublic final NamedEventListener unbind(EventListener<? super NamedEvent> listener)
ObservableObservable.bind(java.lang.String, net.ranides.assira.events.EventListener super net.ranides.assira.events.NamedEvent>).
Usuwane są wszystkie powiązania, bez względu na typ i nazwy obserwowanych
zdarzeń, jeśli obserwator był rejestrowany wielokrotnie.
unbind in interface Observable
public final <T extends Event> void addEventListener(Class<T> event,
EventListener<? super T> listener)
EventRouter| thread-safe method |
addEventListener in interface EventRouter
public final <T extends Event> void removeEventListener(Class<T> event,
EventListener<? super T> listener)
EventRouter| thread-safe method |
removeEventListener in interface EventRouterpublic Collection<EventBinding<?>> getEventListeners()
getEventListeners in interface EventRouterpublic final void removeAllEventListeners()
| thread-safe method |
Uwaga! Jeśli klasa posiada zadeklarowane metody adnotowane za
pomocą Meta.EventHandler, to
zdarzenia nadal są do nich delegowane. Nie istnieje możliwość usunięcia
metod zadeklarowanych w czasie kompilacji.
removeAllEventListeners in interface EventRouter
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||