Ik heb me al een tijdje zitten ergeren aan de afhandeling van eigen events. Iedere keer heb je in je class een of meerdere vectoren met eventlisteners. Daarom heb ik een nieuwe class gemaakt: CustomEventSupport. Hierin kan per EventListeners een Vector met listeners geplaatst worden. Ik hoor graag jullie commentaar hier over.
ps: Serializable support komt nog en javadoc mist ook nog.
CustomEventSupport
vb:
ps: Serializable support komt nog en javadoc mist ook nog.
CustomEventSupport
vb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| interface BanaanListener extends EventListener{
public void banaanBeschikbaar(BanaanEvent banaanEvent);
}
interface PeerListener extends EventListener{
public void peerBeschikbaar(PeerEvent peerEvent);
}
interface FruitMandListener extends EventListener{
public void nietLeeg(FruitMandEvent fruitMandEvent);
public void leeg(FruitMandEvent fruitMandEvent);
}
class FruitMand{
CustomEventSupport _customEventSupport = new CustomEventSupport();
public FruitMand(){
_customEventSupport.createSupport(BanaanListener.class);
_customEventSupport.createSupport(PeerListener.class);
_customEventSupport.createSupport(FruitMandListener.class);
}
public void addEventListener(Class eventListenerInterface, EventListener eventListener){
_customEventSupport.addEventListener(eventListenerInterface,eventListener);
}
public void removeEventListener(Class eventListenerInterface, EventListener eventListener){
_customEventSupport.removeEventListener(eventListenerInterface,eventListener);
}
public void haalEtenOp(){
BanaanEvent banaanEvent = new BanaanEvent(banaan);
EventListener[] blisteners = _customEventSupport.getEventListener(BanaanListener.class);
for(int k=0;k<blisteners.length;k++){
BanaanListener banaanListener = (BanaanListener)blisteners[k];
banaanListener.banaanBeschikbaar(banaanEvent);
}
PeerEvent peerEvent = new PeerEvent(peer);
EventListener[] plisteners = _customEventSupport.getEventListener(PeerListener.class);
for(int k=0;k<plisteners.length;k++){
PeerListener peerListener = (PeerListener)plisteners[k];
peerListener.peerBeschikbaar(peerEvent);
}
FruitMandEvent fruitMandEvent = new FruitMandEvent(fruitMand);
EventListener[] flisteners = _customEventSupport.getEventListener(FruitMandListener.class);
for(int k=0;k<flisteners.length;k++){
FruitMandListener fruitMandListener = (FruitMandListener)flisteners[k];
fruitMandListener.nietLeeg(fruitMandEvent);
}
}
public void gooiAllesWeg(){
FruitMandEvent fruitMandEvent = new FruitMandEvent(fruitMand);
EventListener[] flisteners = _customEventSupport.getEventListener(FruitMandListener.class);
for(int k=0;k<flisteners.length;k++){
FruitMandListener fruitMandListener = (FruitMandListener)flisteners[k];
fruitMandListener.leeg(fruitMandEvent);
}
}
} |