Subversion Repository Public Repository

litesoft

Diff Revisions 282 vs 475 for /trunk/Java/GWT/Client/src/com/google/gwt/gen2/event/dom/client/ListenerWrapperImpl.java

Diff revisions: vs.
  @@ -16,164 +16,174 @@
16 16
17 17 package com.google.gwt.gen2.event.dom.client;
18 18
19 - import com.google.gwt.gen2.event.shared.AbstractEvent;
20 - import com.google.gwt.gen2.event.shared.EventHandler;
21 - import com.google.gwt.gen2.event.shared.HandlerManager;
22 - import com.google.gwt.gen2.event.shared.HasHandlerManager;
23 - import com.google.gwt.gen2.event.shared.AbstractEvent.Type;
24 - import com.google.gwt.user.client.ui.ClickListener;
25 - import com.google.gwt.user.client.ui.FocusListener;
26 - import com.google.gwt.user.client.ui.KeyboardListener;
27 - import com.google.gwt.user.client.ui.MouseListener;
28 - import com.google.gwt.user.client.ui.Widget;
19 + import java.util.*;
29 20
30 - import java.util.EventListener;
21 + import com.google.gwt.gen2.event.shared.*;
22 + import com.google.gwt.gen2.event.shared.AbstractEvent.*;
23 + import com.google.gwt.user.client.ui.*;
31 24
32 25 /**
33 26 * legacy listener support for dom events. Will eventually be moved into
34 27 * user.ui.
35 - *
28 + *
36 29 * @param <ListenerType> listener type
37 - *
38 30 */
39 31
40 - abstract class ListenerWrapperImpl<ListenerType> implements EventHandler {
32 + abstract class ListenerWrapperImpl<ListenerType> implements EventHandler
33 + {
41 34
42 - static class Click extends ListenerWrapperImpl<ClickListener> implements
43 - ClickHandler {
35 + static class Click extends ListenerWrapperImpl<ClickListener> implements ClickHandler
36 + {
44 37
45 - public static void removeWrappedListener(HasHandlerManager eventSource,
46 - ClickListener listener) {
47 - removeWrappedListene(eventSource, listener, ClickEvent.TYPE);
48 - }
38 + public static void removeWrappedListener( HasHandlerManager eventSource, ClickListener listener )
39 + {
40 + removeWrappedListene( eventSource, listener, ClickEvent.TYPE );
41 + }
49 42
50 - protected Click(ClickListener listener) {
51 - super(listener);
52 - }
43 + protected Click( ClickListener listener )
44 + {
45 + super( listener );
46 + }
53 47
54 - public void onClick(ClickEvent event) {
55 - listener.onClick(source(event));
48 + public void onClick( ClickEvent event )
49 + {
50 + listener.onClick( source( event ) );
51 + }
56 52 }
57 - }
58 53
59 - /*
60 - * Handler wrapper for {@link FocusListener}.
61 - */
62 - static class Focus extends ListenerWrapperImpl<FocusListener> implements
63 - FocusHandler, BlurHandler {
54 + /*
55 + * Handler wrapper for {@link FocusListener}.
56 + */
57 + static class Focus extends ListenerWrapperImpl<FocusListener> implements FocusHandler,
58 + BlurHandler
59 + {
60 +
61 + public Focus( FocusListener listener )
62 + {
63 + super( listener );
64 + }
64 65
65 - public Focus(FocusListener listener) {
66 - super(listener);
67 - }
66 + public void onBlur( BlurEvent event )
67 + {
68 + listener.onLostFocus( source( event ) );
69 + }
68 70
69 - public void onBlur(BlurEvent event) {
70 - listener.onLostFocus(source(event));
71 + public void onFocus( FocusEvent event )
72 + {
73 + listener.onFocus( source( event ) );
74 + }
71 75 }
72 76
73 - public void onFocus(FocusEvent event) {
74 - listener.onFocus(source(event));
75 - }
76 - }
77 + static class Keyboard extends ListenerWrapperImpl<KeyboardListener> implements KeyDownHandler,
78 + KeyUpHandler,
79 + KeyPressHandler
80 + {
81 +
82 + public static void removeWrappedListener( HasHandlerManager eventSource, KeyboardListener listener )
83 + {
84 + ListenerWrapperImpl.removeWrappedListene( eventSource, listener, KeyDownEvent.TYPE, KeyUpEvent.TYPE, KeyPressEvent.TYPE );
85 + }
77 86
78 - static class Keyboard extends ListenerWrapperImpl<KeyboardListener> implements
79 - KeyDownHandler, KeyUpHandler, KeyPressHandler {
87 + public Keyboard( KeyboardListener listener )
88 + {
89 + super( listener );
90 + }
80 91
81 - public static void removeWrappedListener(HasHandlerManager eventSource,
82 - KeyboardListener listener) {
83 - ListenerWrapperImpl.removeWrappedListene(eventSource, listener,
84 - KeyDownEvent.TYPE, KeyUpEvent.TYPE, KeyPressEvent.TYPE);
85 - }
92 + public void onKeyDown( KeyDownEvent event )
93 + {
94 + listener.onKeyDown( source( event ), (char) event.getKeyCode(), event.getKeyModifiers() );
95 + }
86 96
87 - public Keyboard(KeyboardListener listener) {
88 - super(listener);
89 - }
97 + public void onKeyPress( KeyPressEvent event )
98 + {
99 + listener.onKeyPress( source( event ), (char) event.getNativeEvent().getKeyCode(), event.getKeyModifiers() );
100 + }
90 101
91 - public void onKeyDown(KeyDownEvent event) {
92 - listener.onKeyDown(source(event), (char) event.getKeyCode(),
93 - event.getKeyModifiers());
102 + public void onKeyUp( KeyUpEvent event )
103 + {
104 + source( event );
105 + listener.onKeyUp( source( event ), (char) event.getKeyCode(), event.getKeyModifiers() );
106 + }
94 107 }
95 108
96 - public void onKeyPress(KeyPressEvent event) {
97 - listener.onKeyPress(source(event),
98 - (char) event.getNativeEvent().getKeyCode(), event.getKeyModifiers());
99 - }
109 + static class Mouse extends ListenerWrapperImpl<MouseListener> implements MouseDownHandler,
110 + MouseUpHandler,
111 + MouseOutHandler,
112 + MouseOverHandler,
113 + MouseMoveHandler
114 + {
115 +
116 + public static <EventSourceType extends HasHandlerManager & HasMouseDownHandlers & HasMouseUpHandlers & HasMouseOutHandlers & HasMouseOverHandlers & HasMouseMoveHandlers, HandlerType extends MouseDownHandler & MouseUpHandler & MouseOutHandler & MouseOverHandler & MouseMoveHandler> void addHandlers( EventSourceType source, HandlerType handlers )
117 + {
118 + source.addMouseDownHandler( handlers );
119 + source.addMouseUpHandler( handlers );
120 + source.addMouseOutHandler( handlers );
121 + source.addMouseOverHandler( handlers );
122 + source.addMouseMoveHandler( handlers );
123 + }
100 124
101 - public void onKeyUp(KeyUpEvent event) {
102 - source(event);
103 - listener.onKeyUp(source(event), (char) event.getKeyCode(),
104 - event.getKeyModifiers());
105 - }
106 - }
125 + public static void remove( HasHandlerManager eventSource, MouseListener listener )
126 + {
127 + removeWrappedListene( eventSource, listener, MouseDownEvent.TYPE, MouseUpEvent.TYPE, MouseOverEvent.TYPE, MouseOutEvent.TYPE );
128 + }
107 129
108 - static class Mouse extends ListenerWrapperImpl<MouseListener> implements
109 - MouseDownHandler, MouseUpHandler, MouseOutHandler, MouseOverHandler,
110 - MouseMoveHandler {
130 + protected Mouse( MouseListener listener )
131 + {
132 + super( listener );
133 + }
111 134
112 - public static <EventSourceType extends HasHandlerManager & HasMouseDownHandlers & HasMouseUpHandlers & HasMouseOutHandlers & HasMouseOverHandlers & HasMouseMoveHandlers, HandlerType extends MouseDownHandler & MouseUpHandler & MouseOutHandler & MouseOverHandler & MouseMoveHandler> void addHandlers(
113 - EventSourceType source, HandlerType handlers) {
114 - source.addMouseDownHandler(handlers);
115 - source.addMouseUpHandler(handlers);
116 - source.addMouseOutHandler(handlers);
117 - source.addMouseOverHandler(handlers);
118 - source.addMouseMoveHandler(handlers);
119 - }
135 + public void onMouseDown( MouseDownEvent event )
136 + {
137 + listener.onMouseDown( source( event ), event.getClientX(), event.getScreenY() );
138 + }
120 139
121 - public static void remove(HasHandlerManager eventSource,
122 - MouseListener listener) {
123 - removeWrappedListene(eventSource, listener, MouseDownEvent.TYPE,
124 - MouseUpEvent.TYPE, MouseOverEvent.TYPE, MouseOutEvent.TYPE);
125 - }
140 + public void onMouseMove( MouseMoveEvent event )
141 + {
142 + listener.onMouseMove( source( event ), event.getClientX(), event.getClientY() );
143 + }
126 144
127 - protected Mouse(MouseListener listener) {
128 - super(listener);
129 - }
145 + public void onMouseOut( MouseOutEvent event )
146 + {
147 + listener.onMouseLeave( source( event ) );
148 + }
130 149
131 - public void onMouseDown(MouseDownEvent event) {
132 - listener.onMouseDown(source(event), event.getClientX(),
133 - event.getScreenY());
134 - }
150 + public void onMouseOver( MouseOverEvent event )
151 + {
152 + listener.onMouseEnter( source( event ) );
153 + }
135 154
136 - public void onMouseMove(MouseMoveEvent event) {
137 - listener.onMouseMove(source(event), event.getClientX(),
138 - event.getClientY());
155 + public void onMouseUp( MouseUpEvent event )
156 + {
157 + listener.onMouseUp( source( event ), event.getClientX(), event.getClientY() );
158 + }
139 159 }
140 160
141 - public void onMouseOut(MouseOutEvent event) {
142 - listener.onMouseLeave(source(event));
161 + protected static void removeWrappedListene( HasHandlerManager eventSource, EventListener listener, Type... keys )
162 + {
163 + HandlerManager manager = eventSource.getHandlerManager();
164 + for ( Type key : keys )
165 + {
166 + int handlerCount = manager.getHandlerCount( key );
167 + for ( int i = 0; i < handlerCount; i++ )
168 + {
169 + EventHandler handler = manager.getHandler( key, i );
170 + if ( handler instanceof ListenerWrapperImpl && ((ListenerWrapperImpl) handler).listener.equals( listener ) )
171 + {
172 + manager.removeHandler( key, handler );
173 + }
174 + }
175 + }
143 176 }
144 177
145 - public void onMouseOver(MouseOverEvent event) {
146 - listener.onMouseEnter(source(event));
147 - }
178 + protected final ListenerType listener;
148 179
149 - public void onMouseUp(MouseUpEvent event) {
150 - listener.onMouseUp(source(event), event.getClientX(), event.getClientY());
180 + ListenerWrapperImpl( ListenerType listener )
181 + {
182 + this.listener = listener;
151 183 }
152 - }
153 184
154 - protected static void removeWrappedListene(HasHandlerManager eventSource,
155 - EventListener listener, Type... keys) {
156 - HandlerManager manager = eventSource.getHandlerManager();
157 - for (Type key : keys) {
158 - int handlerCount = manager.getHandlerCount(key);
159 - for (int i = 0; i < handlerCount; i++) {
160 - EventHandler handler = manager.getHandler(key, i);
161 - if (handler instanceof ListenerWrapperImpl
162 - && ((ListenerWrapperImpl) handler).listener.equals(listener)) {
163 - manager.removeHandler(key, handler);
164 - }
165 - }
185 + Widget source( AbstractEvent e )
186 + {
187 + return (Widget) e.getSource();
166 188 }
167 - }
168 -
169 - protected final ListenerType listener;
170 -
171 - ListenerWrapperImpl(ListenerType listener) {
172 - this.listener = listener;
173 - }
174 -
175 - Widget source(AbstractEvent e) {
176 - return (Widget) e.getSource();
177 - }
178 -
179 189 }