Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Unified Diff: client/html/src/EventTargetWrappingImplementation.dart

Issue 9537001: Generate dart:html bindings for Dartium as well as Frog. All unittests now pass (or are disabled fo… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698