| Index: client/dom/templates/html/interface/interface_Element.darttemplate | 
| =================================================================== | 
| --- client/dom/templates/html/interface/interface_Element.darttemplate	(revision 5796) | 
| +++ client/dom/templates/html/interface/interface_Element.darttemplate	(working copy) | 
| @@ -1,300 +0,0 @@ | 
| -// Copyright (c) 2011, 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. | 
| - | 
| -// WARNING: Do not edit - generated code. | 
| - | 
| -/** | 
| - * Provides a Map abstraction on top of data-* attributes, similar to the | 
| - * dataSet in the old DOM. | 
| - */ | 
| -class _DataAttributeMap implements Map<String, String> { | 
| - | 
| -  final Map<String, String> _attributes; | 
| - | 
| -  _DataAttributeMap(this._attributes); | 
| - | 
| -  // interface Map | 
| - | 
| -  // TODO: Use lazy iterator when it is available on Map. | 
| -  bool containsValue(String value) => getValues().some((v) => v == value); | 
| - | 
| -  bool containsKey(String key) => _attributes.containsKey(_attr(key)); | 
| - | 
| -  String operator [](String key) => _attributes[_attr(key)]; | 
| - | 
| -  void operator []=(String key, String value) { | 
| -    _attributes[_attr(key)] = value; | 
| -  } | 
| - | 
| -  String putIfAbsent(String key, String ifAbsent()) { | 
| -    if (!containsKey(key)) { | 
| -      return this[key] = ifAbsent(); | 
| -    } | 
| -    return this[key]; | 
| -  } | 
| - | 
| -  String remove(String key) => _attributes.remove(_attr(key)); | 
| - | 
| -  void clear() { | 
| -    // Needs to operate on a snapshot since we are mutatiting the collection. | 
| -    for (String key in getKeys()) { | 
| -      remove(key); | 
| -    } | 
| -  } | 
| - | 
| -  void forEach(void f(String key, String value)) { | 
| -    _attributes.forEach((String key, String value) { | 
| -      if (_matches(key)) { | 
| -        f(_strip(key), value); | 
| -      } | 
| -    }); | 
| -  } | 
| - | 
| -  Collection<String> getKeys() { | 
| -    final keys = new List<String>(); | 
| -    _attributes.forEach((String key, String value) { | 
| -      if (_matches(key)) { | 
| -        keys.add(_strip(key)); | 
| -      } | 
| -    }); | 
| -    return keys; | 
| -  } | 
| - | 
| -  Collection<String> getValues() { | 
| -    final values = new List<String>(); | 
| -    _attributes.forEach((String key, String value) { | 
| -      if (_matches(key)) { | 
| -        values.add(value); | 
| -      } | 
| -    }); | 
| -    return values; | 
| -  } | 
| - | 
| -  int get length() => getKeys().length; | 
| - | 
| -  // TODO: Use lazy iterator when it is available on Map. | 
| -  bool isEmpty() => length == 0; | 
| - | 
| -  // Helpers. | 
| -  String _attr(String key) => 'data-$key'; | 
| -  bool _matches(String key) => key.startsWith('data-'); | 
| -  String _strip(String key) => key.substring(5); | 
| -} | 
| - | 
| -class _CssClassSet implements Set<String> { | 
| - | 
| -  final _ElementImpl _element; | 
| - | 
| -  _CssClassSet(this._element); | 
| - | 
| -  String toString() { | 
| -    return _formatSet(_read()); | 
| -  } | 
| - | 
| -  // interface Iterable - BEGIN | 
| -  Iterator<String> iterator() { | 
| -    return _read().iterator(); | 
| -  } | 
| -  // interface Iterable - END | 
| - | 
| -  // interface Collection - BEGIN | 
| -  void forEach(void f(String element)) { | 
| -    _read().forEach(f); | 
| -  } | 
| - | 
| -  Collection map(f(String element)) { | 
| -    return _read().map(f); | 
| -  } | 
| - | 
| -  Collection<String> filter(bool f(String element)) { | 
| -    return _read().filter(f); | 
| -  } | 
| - | 
| -  bool every(bool f(String element)) { | 
| -    return _read().every(f); | 
| -  } | 
| - | 
| -  bool some(bool f(String element)) { | 
| -    return _read().some(f); | 
| -  } | 
| - | 
| -  bool isEmpty() { | 
| -    return _read().isEmpty(); | 
| -  } | 
| - | 
| -  int get length() { | 
| -    return _read().length; | 
| -  } | 
| -  // interface Collection - END | 
| - | 
| -  // interface Set - BEGIN | 
| -  bool contains(String value) { | 
| -    return _read().contains(value); | 
| -  } | 
| - | 
| -  void add(String value) { | 
| -    // TODO - figure out if we need to do any validation here | 
| -    // or if the browser natively does enough | 
| -    _modify((s) => s.add(value)); | 
| -  } | 
| - | 
| -  bool remove(String value) { | 
| -    Set<String> s = _read(); | 
| -    bool result = s.remove(value); | 
| -    _write(s); | 
| -    return result; | 
| -  } | 
| - | 
| -  void addAll(Collection<String> collection) { | 
| -    // TODO - see comment above about validation | 
| -    _modify((s) => s.addAll(collection)); | 
| -  } | 
| - | 
| -  void removeAll(Collection<String> collection) { | 
| -    _modify((s) => s.removeAll(collection)); | 
| -  } | 
| - | 
| -  bool isSubsetOf(Collection<String> collection) { | 
| -    return _read().isSubsetOf(collection); | 
| -  } | 
| - | 
| -  bool containsAll(Collection<String> collection) { | 
| -    return _read().containsAll(collection); | 
| -  } | 
| - | 
| -  Set<String> intersection(Collection<String> other) { | 
| -    return _read().intersection(other); | 
| -  } | 
| - | 
| -  void clear() { | 
| -    _modify((s) => s.clear()); | 
| -  } | 
| -  // interface Set - END | 
| - | 
| -  /** | 
| -   * Helper method used to modify the set of css classes on this element. | 
| -   * | 
| -   *   f - callback with: | 
| -   *      s - a Set of all the css class name currently on this element. | 
| -   * | 
| -   *   After f returns, the modified set is written to the | 
| -   *       className property of this element. | 
| -   */ | 
| -  void _modify( f(Set<String> s)) { | 
| -    Set<String> s = _read(); | 
| -    f(s); | 
| -    _write(s); | 
| -  } | 
| - | 
| -  /** | 
| -   * Read the class names from the Element class property, | 
| -   * and put them into a set (duplicates are discarded). | 
| -   */ | 
| -  Set<String> _read() { | 
| -    // TODO(mattsh) simplify this once split can take regex. | 
| -    Set<String> s = new Set<String>(); | 
| -    for (String name in _className().split(' ')) { | 
| -      String trimmed = name.trim(); | 
| -      if (!trimmed.isEmpty()) { | 
| -        s.add(trimmed); | 
| -      } | 
| -    } | 
| -    return s; | 
| -  } | 
| - | 
| -  /** | 
| -   * Read the class names as a space-separated string. This is meant to be | 
| -   * overridden by subclasses. | 
| -   */ | 
| -  String _className() => _element._className; | 
| - | 
| -  /** | 
| -   * Join all the elements of a set into one string and write | 
| -   * back to the element. | 
| -   */ | 
| -  void _write(Set s) { | 
| -    _element._className = _formatSet(s); | 
| -  } | 
| - | 
| -  String _formatSet(Set<String> s) { | 
| -    // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605 | 
| -    List list = new List.from(s); | 
| -    return Strings.join(list, ' '); | 
| -  } | 
| -} | 
| - | 
| -interface ElementList extends List<Element> { | 
| -  // TODO(jacobr): add element batch manipulation methods. | 
| -  ElementList filter(bool f(Element element)); | 
| - | 
| -  ElementList getRange(int start, int length); | 
| - | 
| -  Element get first(); | 
| -  // TODO(jacobr): add insertAt | 
| -} | 
| - | 
| -/** | 
| - * All your element measurement needs in one place | 
| - */ | 
| -interface ElementRect { | 
| -  // Relative to offsetParent | 
| -  ClientRect get client(); | 
| -  ClientRect get offset(); | 
| -  ClientRect get scroll(); | 
| -  // In global coords | 
| -  ClientRect get bounding(); | 
| -  // In global coords | 
| -  List<ClientRect> get clientRects(); | 
| -} | 
| - | 
| -interface Element extends Node, NodeSelector default _$(ID)FactoryProvider { | 
| -// TODO(jacobr): switch back to: | 
| -// interface $ID$EXTENDS default _ElementImpl { | 
| -  Element.html(String html); | 
| -  Element.tag(String tag); | 
| - | 
| -  Map<String, String> get attributes(); | 
| -  void set attributes(Map<String, String> value); | 
| - | 
| -  /** | 
| -   * @domName querySelectorAll, getElementsByClassName, getElementsByTagName, | 
| -   *   getElementsByTagNameNS | 
| -   */ | 
| -  ElementList queryAll(String selectors); | 
| - | 
| -  /** | 
| -   * @domName childElementCount, firstElementChild, lastElementChild, | 
| -   *   children, Node.nodes.add | 
| -   */ | 
| -  ElementList get elements(); | 
| - | 
| -  void set elements(Collection<Element> value); | 
| - | 
| -  /** @domName className, classList */ | 
| -  Set<String> get classes(); | 
| - | 
| -  void set classes(Collection<String> value); | 
| - | 
| -  Map<String, String> get dataAttributes(); | 
| -  void set dataAttributes(Map<String, String> value); | 
| - | 
| -  /** | 
| -   * @domName getClientRects, getBoundingClientRect, clientHeight, clientWidth, | 
| -   * clientTop, clientLeft, offsetHeight, offsetWidth, offsetTop, offsetLeft, | 
| -   * scrollHeight, scrollWidth, scrollTop, scrollLeft | 
| -   */ | 
| -  Future<ElementRect> get rect(); | 
| - | 
| -  /** @domName Window.getComputedStyle */ | 
| -  Future<CSSStyleDeclaration> get computedStyle(); | 
| - | 
| -  /** @domName Window.getComputedStyle */ | 
| -  Future<CSSStyleDeclaration> getComputedStyle(String pseudoElement); | 
| - | 
| -  Element clone(bool deep); | 
| - | 
| -  Element get parent(); | 
| - | 
| -$!MEMBERS | 
| -} | 
|  |