Index: client/html/src/EventTargetWrappingImplementation.dart |
diff --git a/client/html/src/EventTargetWrappingImplementation.dart b/client/html/src/EventTargetWrappingImplementation.dart |
deleted file mode 100644 |
index 3256a1aaacd6835006115a724f6643f34c212cb8..0000000000000000000000000000000000000000 |
--- a/client/html/src/EventTargetWrappingImplementation.dart |
+++ /dev/null |
@@ -1,118 +0,0 @@ |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-class EventsImplementation implements Events { |
- /* Raw event target. */ |
- var _ptr; |
- |
- Map<String, EventListenerList> _listenerMap; |
- |
- EventsImplementation._wrap(this._ptr) { |
- _listenerMap = <EventListenerList>{}; |
- } |
- |
- EventListenerList operator [](String type) { |
- return _get(type.toLowerCase()); |
- } |
- |
- EventListenerList _get(String type) { |
- return _listenerMap.putIfAbsent(type, |
- () => new EventListenerListImplementation(_ptr, type)); |
- } |
-} |
- |
-class _EventListenerWrapper { |
- final EventListener raw; |
- final Function wrapped; |
- final bool useCapture; |
- _EventListenerWrapper(this.raw, this.wrapped, this.useCapture); |
-} |
- |
-class EventListenerListImplementation implements EventListenerList { |
- final _ptr; |
- final String _type; |
- List<_EventListenerWrapper> _wrappers; |
- |
- EventListenerListImplementation(this._ptr, this._type) : |
- // TODO(jacobr): switch to <_EventListenerWrapper>[] when the VM allow it. |
- _wrappers = new List<_EventListenerWrapper>(); |
- |
- EventListenerList add(EventListener listener, [bool useCapture = false]) { |
- _add(listener, useCapture); |
- return this; |
- } |
- |
- EventListenerList remove(EventListener listener, [bool useCapture = false]) { |
- _remove(listener, useCapture); |
- return this; |
- } |
- |
- bool dispatch(Event evt) { |
- // TODO(jacobr): what is the correct behavior here. We could alternately |
- // force the event to have the expected type. |
- assert(evt.type == _type); |
- return _ptr.dispatchEvent(LevelDom.unwrap(evt)); |
- } |
- |
- void _add(EventListener listener, bool useCapture) { |
- _ptr.addEventListener(_type, |
- _findOrAddWrapper(listener, useCapture), |
- useCapture); |
- } |
- |
- void _remove(EventListener listener, bool useCapture) { |
- Function wrapper = _removeWrapper(listener, useCapture); |
- if (wrapper !== null) { |
- _ptr.removeEventListener(_type, wrapper, useCapture); |
- } |
- } |
- |
- Function _removeWrapper(EventListener listener, bool useCapture) { |
- if (_wrappers === null) { |
- return null; |
- } |
- for (int i = 0; i < _wrappers.length; i++) { |
- _EventListenerWrapper wrapper = _wrappers[i]; |
- if (wrapper.raw === listener && wrapper.useCapture == useCapture) { |
- // Order doesn't matter so we swap with the last element instead of |
- // performing a more expensive remove from the middle of the list. |
- if (i + 1 != _wrappers.length) { |
- _wrappers[i] = _wrappers.removeLast(); |
- } else { |
- _wrappers.removeLast(); |
- } |
- return wrapper.wrapped; |
- } |
- } |
- return null; |
- } |
- |
- Function _findOrAddWrapper(EventListener listener, bool useCapture) { |
- if (_wrappers === null) { |
- _wrappers = <_EventListenerWrapper>[]; |
- } else { |
- for (_EventListenerWrapper wrapper in _wrappers) { |
- if (wrapper.raw === listener && wrapper.useCapture == useCapture) { |
- return wrapper.wrapped; |
- } |
- } |
- } |
- final wrapped = (e) { listener(LevelDom.wrapEvent(e)); }; |
- _wrappers.add(new _EventListenerWrapper(listener, wrapped, useCapture)); |
- return wrapped; |
- } |
-} |
- |
-class EventTargetWrappingImplementation extends DOMWrapperBase implements EventTarget { |
- Events _on; |
- |
- EventTargetWrappingImplementation._wrap(ptr) : super._wrap(ptr); |
- |
- Events get on() { |
- if (_on === null) { |
- _on = new EventsImplementation._wrap(_ptr); |
- } |
- return _on; |
- } |
-} |