|
@@ -16,58 +16,69 @@ |
16 |
16 |
|
|
17 |
17 |
|
package com.google.gwt.gen2.event.shared; |
18 |
18 |
|
|
19 |
|
- |
import com.google.gwt.gen2.event.shared.AbstractEvent.Type; |
|
19 |
+ |
import java.util.*; |
20 |
20 |
|
|
21 |
|
- |
import java.util.ArrayList; |
22 |
|
- |
import java.util.HashMap; |
|
21 |
+ |
import com.google.gwt.gen2.event.shared.AbstractEvent.*; |
23 |
22 |
|
|
24 |
23 |
|
/** |
25 |
24 |
|
* The default Handler manager's handler registry. |
26 |
25 |
|
*/ |
27 |
|
- |
class JavaHandlerRegistry extends |
28 |
|
- |
HashMap<AbstractEvent.Type, ArrayList<EventHandler>> { |
|
26 |
+ |
class JavaHandlerRegistry extends HashMap<AbstractEvent.Type, ArrayList<EventHandler>> |
|
27 |
+ |
{ |
29 |
28 |
|
|
30 |
|
- |
public void addHandler(AbstractEvent.Type eventKey, EventHandler handler) { |
31 |
|
- |
ArrayList<EventHandler> l = super.get(eventKey); |
32 |
|
- |
if (l == null) { |
33 |
|
- |
l = new ArrayList<EventHandler>(); |
34 |
|
- |
super.put(eventKey, l); |
35 |
|
- |
} |
36 |
|
- |
l.add(handler); |
37 |
|
- |
} |
38 |
|
- |
|
39 |
|
- |
public void clearHandlers(Type<?, ?> type) { |
40 |
|
- |
super.remove(type); |
41 |
|
- |
} |
42 |
|
- |
|
43 |
|
- |
public void fireEvent(AbstractEvent event) { |
44 |
|
- |
Type type = event.getType(); |
45 |
|
- |
int count = getHandlerCount(type); |
46 |
|
- |
for (int i = 0; i < count; i++) { |
47 |
|
- |
EventHandler handler = getHandler(type, i); |
48 |
|
- |
type.fire(handler, event); |
49 |
|
- |
} |
50 |
|
- |
} |
51 |
|
- |
|
52 |
|
- |
public EventHandler getHandler(AbstractEvent.Type eventKey, int index) { |
53 |
|
- |
assert (index < getHandlerCount(eventKey)); |
54 |
|
- |
ArrayList<EventHandler> l = super.get(eventKey); |
55 |
|
- |
return l.get(index); |
56 |
|
- |
} |
57 |
|
- |
|
58 |
|
- |
public int getHandlerCount(AbstractEvent.Type eventKey) { |
59 |
|
- |
ArrayList<EventHandler> l = super.get(eventKey); |
60 |
|
- |
if (l == null) { |
61 |
|
- |
return 0; |
62 |
|
- |
} else { |
63 |
|
- |
return l.size(); |
64 |
|
- |
} |
65 |
|
- |
} |
66 |
|
- |
|
67 |
|
- |
public void removeHandler(AbstractEvent.Type eventKey, EventHandler handler) { |
68 |
|
- |
ArrayList<EventHandler> l = super.get(eventKey); |
69 |
|
- |
if (l != null) { |
70 |
|
- |
l.remove(handler); |
|
29 |
+ |
public void addHandler( AbstractEvent.Type eventKey, EventHandler handler ) |
|
30 |
+ |
{ |
|
31 |
+ |
ArrayList<EventHandler> l = super.get( eventKey ); |
|
32 |
+ |
if ( l == null ) |
|
33 |
+ |
{ |
|
34 |
+ |
l = new ArrayList<EventHandler>(); |
|
35 |
+ |
super.put( eventKey, l ); |
|
36 |
+ |
} |
|
37 |
+ |
l.add( handler ); |
|
38 |
+ |
} |
|
39 |
+ |
|
|
40 |
+ |
public void clearHandlers( Type<?, ?> type ) |
|
41 |
+ |
{ |
|
42 |
+ |
super.remove( type ); |
|
43 |
+ |
} |
|
44 |
+ |
|
|
45 |
+ |
public void fireEvent( AbstractEvent event ) |
|
46 |
+ |
{ |
|
47 |
+ |
Type type = event.getType(); |
|
48 |
+ |
int count = getHandlerCount( type ); |
|
49 |
+ |
for ( int i = 0; i < count; i++ ) |
|
50 |
+ |
{ |
|
51 |
+ |
EventHandler handler = getHandler( type, i ); |
|
52 |
+ |
type.fire( handler, event ); |
|
53 |
+ |
} |
|
54 |
+ |
} |
|
55 |
+ |
|
|
56 |
+ |
public EventHandler getHandler( AbstractEvent.Type eventKey, int index ) |
|
57 |
+ |
{ |
|
58 |
+ |
assert (index < getHandlerCount( eventKey )); |
|
59 |
+ |
ArrayList<EventHandler> l = super.get( eventKey ); |
|
60 |
+ |
return l.get( index ); |
|
61 |
+ |
} |
|
62 |
+ |
|
|
63 |
+ |
public int getHandlerCount( AbstractEvent.Type eventKey ) |
|
64 |
+ |
{ |
|
65 |
+ |
ArrayList<EventHandler> l = super.get( eventKey ); |
|
66 |
+ |
if ( l == null ) |
|
67 |
+ |
{ |
|
68 |
+ |
return 0; |
|
69 |
+ |
} |
|
70 |
+ |
else |
|
71 |
+ |
{ |
|
72 |
+ |
return l.size(); |
|
73 |
+ |
} |
|
74 |
+ |
} |
|
75 |
+ |
|
|
76 |
+ |
public void removeHandler( AbstractEvent.Type eventKey, EventHandler handler ) |
|
77 |
+ |
{ |
|
78 |
+ |
ArrayList<EventHandler> l = super.get( eventKey ); |
|
79 |
+ |
if ( l != null ) |
|
80 |
+ |
{ |
|
81 |
+ |
l.remove( handler ); |
|
82 |
+ |
} |
71 |
83 |
|
} |
72 |
|
- |
} |
73 |
84 |
|
} |