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

Side by Side Diff: lib/html/frog/html_frog.dart

Issue 9930008: Fix issue http://code.google.com/p/dart/issues/detail?id=1877 without degrading performance. Impro… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review fixes Created 8 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « lib/html/dartium/html_dartium.dart ('k') | lib/html/src/DataAttributeMap.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #library('html'); 1 #library('html');
2 2
3 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 3 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
4 // for details. All rights reserved. Use of this source code is governed by a 4 // for details. All rights reserved. Use of this source code is governed by a
5 // BSD-style license that can be found in the LICENSE file. 5 // BSD-style license that can be found in the LICENSE file.
6 6
7 // DO NOT EDIT 7 // DO NOT EDIT
8 // Auto-generated dart:html library. 8 // Auto-generated dart:html library.
9 9
10 10
(...skipping 5557 matching lines...) Expand 10 before | Expand all | Expand 10 after
5568 class _ElementList extends _ListWrapper<Element> implements ElementList { 5568 class _ElementList extends _ListWrapper<Element> implements ElementList {
5569 _ElementList(List<Element> list) : super(list); 5569 _ElementList(List<Element> list) : super(list);
5570 5570
5571 ElementList filter(bool f(Element element)) => 5571 ElementList filter(bool f(Element element)) =>
5572 new _ElementList(super.filter(f)); 5572 new _ElementList(super.filter(f));
5573 5573
5574 ElementList getRange(int start, int length) => 5574 ElementList getRange(int start, int length) =>
5575 new _ElementList(super.getRange(start, length)); 5575 new _ElementList(super.getRange(start, length));
5576 } 5576 }
5577 5577
5578 class ElementAttributeMap implements Map<String, String> { 5578 class _ElementAttributeMap implements AttributeMap {
5579 5579
5580 final _ElementImpl _element; 5580 final _ElementImpl _element;
5581 5581
5582 ElementAttributeMap._wrap(this._element); 5582 _ElementAttributeMap(this._element);
5583 5583
5584 bool containsValue(String value) { 5584 bool containsValue(String value) {
5585 final attributes = _element.$dom_attributes; 5585 final attributes = _element.$dom_attributes;
5586 for (int i = 0, len = attributes.length; i < len; i++) { 5586 for (int i = 0, len = attributes.length; i < len; i++) {
5587 if(value == attributes[i].value) { 5587 if(value == attributes[i].value) {
5588 return true; 5588 return true;
5589 } 5589 }
5590 } 5590 }
5591 return false; 5591 return false;
5592 } 5592 }
5593 5593
5594 bool containsKey(String key) { 5594 bool containsKey(String key) {
5595 return _element.$dom_hasAttribute(key); 5595 return _element.$dom_hasAttribute(key);
5596 } 5596 }
5597 5597
5598 String operator [](String key) { 5598 String operator [](String key) {
5599 return _element.$dom_getAttribute(key); 5599 return _element.$dom_getAttribute(key);
5600 } 5600 }
5601 5601
5602 void operator []=(String key, String value) { 5602 void operator []=(String key, value) {
5603 _element.$dom_setAttribute(key, value); 5603 _element.$dom_setAttribute(key, '$value');
5604 } 5604 }
5605 5605
5606 String putIfAbsent(String key, String ifAbsent()) { 5606 String putIfAbsent(String key, String ifAbsent()) {
5607 if (!containsKey(key)) { 5607 if (!containsKey(key)) {
5608 this[key] = ifAbsent(); 5608 this[key] = ifAbsent();
5609 } 5609 }
5610 } 5610 }
5611 5611
5612 String remove(String key) { 5612 String remove(String key) {
5613 _element.$dom_removeAttribute(key); 5613 _element.$dom_removeAttribute(key);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
5656 } 5656 }
5657 5657
5658 /** 5658 /**
5659 * Returns true if there is no {key, value} pair in the map. 5659 * Returns true if there is no {key, value} pair in the map.
5660 */ 5660 */
5661 bool isEmpty() { 5661 bool isEmpty() {
5662 return length == 0; 5662 return length == 0;
5663 } 5663 }
5664 } 5664 }
5665 5665
5666 /**
5667 * Provides a Map abstraction on top of data-* attributes, similar to the
5668 * dataSet in the old DOM.
5669 */
5670 class _DataAttributeMap implements AttributeMap {
5671
5672 final Map<String, String> $dom_attributes;
5673
5674 _DataAttributeMap(this.$dom_attributes);
5675
5676 // interface Map
5677
5678 // TODO: Use lazy iterator when it is available on Map.
5679 bool containsValue(String value) => getValues().some((v) => v == value);
5680
5681 bool containsKey(String key) => $dom_attributes.containsKey(_attr(key));
5682
5683 String operator [](String key) => $dom_attributes[_attr(key)];
5684
5685 void operator []=(String key, value) {
5686 $dom_attributes[_attr(key)] = '$value';
5687 }
5688
5689 String putIfAbsent(String key, String ifAbsent()) {
5690 $dom_attributes.putIfAbsent(_attr(key), ifAbsent);
5691 }
5692
5693 String remove(String key) => $dom_attributes.remove(_attr(key));
5694
5695 void clear() {
5696 // Needs to operate on a snapshot since we are mutating the collection.
5697 for (String key in getKeys()) {
5698 remove(key);
5699 }
5700 }
5701
5702 void forEach(void f(String key, String value)) {
5703 $dom_attributes.forEach((String key, String value) {
5704 if (_matches(key)) {
5705 f(_strip(key), value);
5706 }
5707 });
5708 }
5709
5710 Collection<String> getKeys() {
5711 final keys = new List<String>();
5712 $dom_attributes.forEach((String key, String value) {
5713 if (_matches(key)) {
5714 keys.add(_strip(key));
5715 }
5716 });
5717 return keys;
5718 }
5719
5720 Collection<String> getValues() {
5721 final values = new List<String>();
5722 $dom_attributes.forEach((String key, String value) {
5723 if (_matches(key)) {
5724 values.add(value);
5725 }
5726 });
5727 return values;
5728 }
5729
5730 int get length() => getKeys().length;
5731
5732 // TODO: Use lazy iterator when it is available on Map.
5733 bool isEmpty() => length == 0;
5734
5735 // Helpers.
5736 String _attr(String key) => 'data-$key';
5737 bool _matches(String key) => key.startsWith('data-');
5738 String _strip(String key) => key.substring(5);
5739 }
5740
5741 class _CssClassSet implements Set<String> {
5742
5743 final _ElementImpl _element;
5744
5745 _CssClassSet(this._element);
5746
5747 String toString() => _formatSet(_read());
5748
5749 // interface Iterable - BEGIN
5750 Iterator<String> iterator() => _read().iterator();
5751 // interface Iterable - END
5752
5753 // interface Collection - BEGIN
5754 void forEach(void f(String element)) {
5755 _read().forEach(f);
5756 }
5757
5758 Collection map(f(String element)) => _read().map(f);
5759
5760 Collection<String> filter(bool f(String element)) => _read().filter(f);
5761
5762 bool every(bool f(String element)) => _read().every(f);
5763
5764 bool some(bool f(String element)) => _read().some(f);
5765
5766 bool isEmpty() => _read().isEmpty();
5767
5768 int get length() =>_read().length;
5769
5770 // interface Collection - END
5771
5772 // interface Set - BEGIN
5773 bool contains(String value) => _read().contains(value);
5774
5775 void add(String value) {
5776 // TODO - figure out if we need to do any validation here
5777 // or if the browser natively does enough
5778 _modify((s) => s.add(value));
5779 }
5780
5781 bool remove(String value) {
5782 Set<String> s = _read();
5783 bool result = s.remove(value);
5784 _write(s);
5785 return result;
5786 }
5787
5788 void addAll(Collection<String> collection) {
5789 // TODO - see comment above about validation
5790 _modify((s) => s.addAll(collection));
5791 }
5792
5793 void removeAll(Collection<String> collection) {
5794 _modify((s) => s.removeAll(collection));
5795 }
5796
5797 bool isSubsetOf(Collection<String> collection) =>
5798 _read().isSubsetOf(collection);
5799
5800 bool containsAll(Collection<String> collection) =>
5801 _read().containsAll(collection);
5802
5803 Set<String> intersection(Collection<String> other) =>
5804 _read().intersection(other);
5805
5806 void clear() {
5807 _modify((s) => s.clear());
5808 }
5809 // interface Set - END
5810
5811 /**
5812 * Helper method used to modify the set of css classes on this element.
5813 *
5814 * f - callback with:
5815 * s - a Set of all the css class name currently on this element.
5816 *
5817 * After f returns, the modified set is written to the
5818 * className property of this element.
5819 */
5820 void _modify( f(Set<String> s)) {
5821 Set<String> s = _read();
5822 f(s);
5823 _write(s);
5824 }
5825
5826 /**
5827 * Read the class names from the Element class property,
5828 * and put them into a set (duplicates are discarded).
5829 */
5830 Set<String> _read() {
5831 // TODO(mattsh) simplify this once split can take regex.
5832 Set<String> s = new Set<String>();
5833 for (String name in _classname().split(' ')) {
5834 String trimmed = name.trim();
5835 if (!trimmed.isEmpty()) {
5836 s.add(trimmed);
5837 }
5838 }
5839 return s;
5840 }
5841
5842 /**
5843 * Read the class names as a space-separated string. This is meant to be
5844 * overridden by subclasses.
5845 */
5846 String _classname() => _element.$dom_className;
5847
5848 /**
5849 * Join all the elements of a set into one string and write
5850 * back to the element.
5851 */
5852 void _write(Set s) {
5853 _element.$dom_className = _formatSet(s);
5854 }
5855
5856 String _formatSet(Set<String> s) {
5857 // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605
5858 List list = new List.from(s);
5859 return Strings.join(list, ' ');
5860 }
5861 }
5862
5666 class _SimpleClientRect implements ClientRect { 5863 class _SimpleClientRect implements ClientRect {
5667 final num left; 5864 final num left;
5668 final num top; 5865 final num top;
5669 final num width; 5866 final num width;
5670 final num height; 5867 final num height;
5671 num get right() => left + width; 5868 num get right() => left + width;
5672 num get bottom() => top + height; 5869 num get bottom() => top + height;
5673 5870
5674 const _SimpleClientRect(this.left, this.top, this.width, this.height); 5871 const _SimpleClientRect(this.left, this.top, this.width, this.height);
5675 5872
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
5721 final out = new List(_clientRects.length); 5918 final out = new List(_clientRects.length);
5722 for (num i = 0; i < _clientRects.length; i++) { 5919 for (num i = 0; i < _clientRects.length; i++) {
5723 out[i] = _clientRects.item(i); 5920 out[i] = _clientRects.item(i);
5724 } 5921 }
5725 return out; 5922 return out;
5726 } 5923 }
5727 } 5924 }
5728 5925
5729 class _ElementImpl extends _NodeImpl implements Element native "*Element" { 5926 class _ElementImpl extends _NodeImpl implements Element native "*Element" {
5730 5927
5731 // TODO(jacobr): caching these may hurt performance.
5732 ElementAttributeMap _elementAttributeMap;
5733 _CssClassSet _cssClassSet;
5734 _DataAttributeMap _dataAttributes;
5735
5736 /** 5928 /**
5737 * @domName Element.hasAttribute, Element.getAttribute, Element.setAttribute, 5929 * @domName Element.hasAttribute, Element.getAttribute, Element.setAttribute,
5738 * Element.removeAttribute 5930 * Element.removeAttribute
5739 */ 5931 */
5740 Map<String, String> get attributes() { 5932 _ElementAttributeMap get attributes() => new _ElementAttributeMap(this);
5741 if (_elementAttributeMap === null) {
5742 _elementAttributeMap = new ElementAttributeMap._wrap(this);
5743 }
5744 return _elementAttributeMap;
5745 }
5746 5933
5747 void set attributes(Map<String, String> value) { 5934 void set attributes(Map<String, String> value) {
5748 Map<String, String> attributes = this.attributes; 5935 Map<String, String> attributes = this.attributes;
5749 attributes.clear(); 5936 attributes.clear();
5750 for (String key in value.getKeys()) { 5937 for (String key in value.getKeys()) {
5751 attributes[key] = value[key]; 5938 attributes[key] = value[key];
5752 } 5939 }
5753 } 5940 }
5754 5941
5755 void set elements(Collection<Element> value) { 5942 void set elements(Collection<Element> value) {
5756 final elements = this.elements; 5943 final elements = this.elements;
5757 elements.clear(); 5944 elements.clear();
5758 elements.addAll(value); 5945 elements.addAll(value);
5759 } 5946 }
5760 5947
5761 ElementList get elements() => new _ChildrenElementList._wrap(this); 5948 ElementList get elements() => new _ChildrenElementList._wrap(this);
5762 5949
5763 ElementList queryAll(String selectors) => 5950 ElementList queryAll(String selectors) =>
5764 new _FrozenElementList._wrap($dom_querySelectorAll(selectors)); 5951 new _FrozenElementList._wrap($dom_querySelectorAll(selectors));
5765 5952
5766 Set<String> get classes() { 5953 _CssClassSet get classes() => new _CssClassSet(this);
5767 if (_cssClassSet === null) {
5768 _cssClassSet = new _CssClassSet(this);
5769 }
5770 return _cssClassSet;
5771 }
5772 5954
5773 void set classes(Collection<String> value) { 5955 void set classes(Collection<String> value) {
5774 _CssClassSet classSet = classes; 5956 _CssClassSet classSet = classes;
5775 classSet.clear(); 5957 classSet.clear();
5776 classSet.addAll(value); 5958 classSet.addAll(value);
5777 } 5959 }
5778 5960
5779 Map<String, String> get dataAttributes() { 5961 Map<String, String> get dataAttributes() =>
5780 if (_dataAttributes === null) { 5962 new _DataAttributeMap(attributes);
5781 _dataAttributes = new _DataAttributeMap(attributes);
5782 }
5783 return _dataAttributes;
5784 }
5785 5963
5786 void set dataAttributes(Map<String, String> value) { 5964 void set dataAttributes(Map<String, String> value) {
5787 Map<String, String> dataAttributes = this.dataAttributes; 5965 final dataAttributes = this.dataAttributes;
5788 dataAttributes.clear(); 5966 dataAttributes.clear();
5789 for (String key in value.getKeys()) { 5967 for (String key in value.getKeys()) {
5790 dataAttributes[key] = value[key]; 5968 dataAttributes[key] = value[key];
5791 } 5969 }
5792 } 5970 }
5793 5971
5794 Future<ElementRect> get rect() { 5972 Future<ElementRect> get rect() {
5795 return _createMeasurementFuture( 5973 return _createMeasurementFuture(
5796 () => new _ElementRectImpl(this), 5974 () => new _ElementRectImpl(this),
5797 new Completer<ElementRect>()); 5975 new Completer<ElementRect>());
(...skipping 15154 matching lines...) Expand 10 before | Expand all | Expand 10 after
20952 static final int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF; 21130 static final int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
20953 21131
20954 static final int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE; 21132 static final int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
20955 } 21133 }
20956 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 21134 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
20957 // for details. All rights reserved. Use of this source code is governed by a 21135 // for details. All rights reserved. Use of this source code is governed by a
20958 // BSD-style license that can be found in the LICENSE file. 21136 // BSD-style license that can be found in the LICENSE file.
20959 21137
20960 // WARNING: Do not edit - generated code. 21138 // WARNING: Do not edit - generated code.
20961 21139
20962 /**
20963 * Provides a Map abstraction on top of data-* attributes, similar to the
20964 * dataSet in the old DOM.
20965 */
20966 class _DataAttributeMap implements Map<String, String> {
20967
20968 final Map<String, String> $dom_attributes;
20969
20970 _DataAttributeMap(this.$dom_attributes);
20971
20972 // interface Map
20973
20974 // TODO: Use lazy iterator when it is available on Map.
20975 bool containsValue(String value) => getValues().some((v) => v == value);
20976
20977 bool containsKey(String key) => $dom_attributes.containsKey(_attr(key));
20978
20979 String operator [](String key) => $dom_attributes[_attr(key)];
20980
20981 void operator []=(String key, String value) {
20982 $dom_attributes[_attr(key)] = value;
20983 }
20984
20985 String putIfAbsent(String key, String ifAbsent()) {
20986 if (!containsKey(key)) {
20987 return this[key] = ifAbsent();
20988 }
20989 return this[key];
20990 }
20991
20992 String remove(String key) => $dom_attributes.remove(_attr(key));
20993
20994 void clear() {
20995 // Needs to operate on a snapshot since we are mutatiting the collection.
20996 for (String key in getKeys()) {
20997 remove(key);
20998 }
20999 }
21000
21001 void forEach(void f(String key, String value)) {
21002 $dom_attributes.forEach((String key, String value) {
21003 if (_matches(key)) {
21004 f(_strip(key), value);
21005 }
21006 });
21007 }
21008
21009 Collection<String> getKeys() {
21010 final keys = new List<String>();
21011 $dom_attributes.forEach((String key, String value) {
21012 if (_matches(key)) {
21013 keys.add(_strip(key));
21014 }
21015 });
21016 return keys;
21017 }
21018
21019 Collection<String> getValues() {
21020 final values = new List<String>();
21021 $dom_attributes.forEach((String key, String value) {
21022 if (_matches(key)) {
21023 values.add(value);
21024 }
21025 });
21026 return values;
21027 }
21028
21029 int get length() => getKeys().length;
21030
21031 // TODO: Use lazy iterator when it is available on Map.
21032 bool isEmpty() => length == 0;
21033
21034 // Helpers.
21035 String _attr(String key) => 'data-$key';
21036 bool _matches(String key) => key.startsWith('data-');
21037 String _strip(String key) => key.substring(5);
21038 }
21039
21040 class _CssClassSet implements Set<String> {
21041
21042 final _ElementImpl _element;
21043
21044 _CssClassSet(this._element);
21045
21046 String toString() {
21047 return _formatSet(_read());
21048 }
21049
21050 // interface Iterable - BEGIN
21051 Iterator<String> iterator() {
21052 return _read().iterator();
21053 }
21054 // interface Iterable - END
21055
21056 // interface Collection - BEGIN
21057 void forEach(void f(String element)) {
21058 _read().forEach(f);
21059 }
21060
21061 Collection map(f(String element)) {
21062 return _read().map(f);
21063 }
21064
21065 Collection<String> filter(bool f(String element)) {
21066 return _read().filter(f);
21067 }
21068
21069 bool every(bool f(String element)) {
21070 return _read().every(f);
21071 }
21072
21073 bool some(bool f(String element)) {
21074 return _read().some(f);
21075 }
21076
21077 bool isEmpty() {
21078 return _read().isEmpty();
21079 }
21080
21081 int get length() {
21082 return _read().length;
21083 }
21084 // interface Collection - END
21085
21086 // interface Set - BEGIN
21087 bool contains(String value) {
21088 return _read().contains(value);
21089 }
21090
21091 void add(String value) {
21092 // TODO - figure out if we need to do any validation here
21093 // or if the browser natively does enough
21094 _modify((s) => s.add(value));
21095 }
21096
21097 bool remove(String value) {
21098 Set<String> s = _read();
21099 bool result = s.remove(value);
21100 _write(s);
21101 return result;
21102 }
21103
21104 void addAll(Collection<String> collection) {
21105 // TODO - see comment above about validation
21106 _modify((s) => s.addAll(collection));
21107 }
21108
21109 void removeAll(Collection<String> collection) {
21110 _modify((s) => s.removeAll(collection));
21111 }
21112
21113 bool isSubsetOf(Collection<String> collection) {
21114 return _read().isSubsetOf(collection);
21115 }
21116
21117 bool containsAll(Collection<String> collection) {
21118 return _read().containsAll(collection);
21119 }
21120
21121 Set<String> intersection(Collection<String> other) {
21122 return _read().intersection(other);
21123 }
21124
21125 void clear() {
21126 _modify((s) => s.clear());
21127 }
21128 // interface Set - END
21129
21130 /**
21131 * Helper method used to modify the set of css classes on this element.
21132 *
21133 * f - callback with:
21134 * s - a Set of all the css class name currently on this element.
21135 *
21136 * After f returns, the modified set is written to the
21137 * className property of this element.
21138 */
21139 void _modify( f(Set<String> s)) {
21140 Set<String> s = _read();
21141 f(s);
21142 _write(s);
21143 }
21144
21145 /**
21146 * Read the class names from the Element class property,
21147 * and put them into a set (duplicates are discarded).
21148 */
21149 Set<String> _read() {
21150 // TODO(mattsh) simplify this once split can take regex.
21151 Set<String> s = new Set<String>();
21152 for (String name in $dom_className().split(' ')) {
21153 String trimmed = name.trim();
21154 if (!trimmed.isEmpty()) {
21155 s.add(trimmed);
21156 }
21157 }
21158 return s;
21159 }
21160
21161 /**
21162 * Read the class names as a space-separated string. This is meant to be
21163 * overridden by subclasses.
21164 */
21165 String $dom_className() => _element.$dom_className;
21166
21167 /**
21168 * Join all the elements of a set into one string and write
21169 * back to the element.
21170 */
21171 void _write(Set s) {
21172 _element.$dom_className = _formatSet(s);
21173 }
21174
21175 String _formatSet(Set<String> s) {
21176 // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605
21177 List list = new List.from(s);
21178 return Strings.join(list, ' ');
21179 }
21180 }
21181
21182 interface ElementList extends List<Element> { 21140 interface ElementList extends List<Element> {
21183 // TODO(jacobr): add element batch manipulation methods. 21141 // TODO(jacobr): add element batch manipulation methods.
21184 ElementList filter(bool f(Element element)); 21142 ElementList filter(bool f(Element element));
21185 21143
21186 ElementList getRange(int start, int length); 21144 ElementList getRange(int start, int length);
21187 21145
21188 Element get first(); 21146 Element get first();
21189 // TODO(jacobr): add insertAt 21147 // TODO(jacobr): add insertAt
21190 } 21148 }
21191 21149
21192 /** 21150 /**
21151 * All your attribute manipulation needs in one place.
21152 * Extends the regular Map interface by automatically coercing non-string
21153 * values to strings.
21154 */
21155 interface AttributeMap extends Map<String, String> {
21156 void operator []=(String key, value);
21157 }
21158
21159 /**
21193 * All your element measurement needs in one place 21160 * All your element measurement needs in one place
21194 */ 21161 */
21195 interface ElementRect { 21162 interface ElementRect {
21196 // Relative to offsetParent 21163 // Relative to offsetParent
21197 ClientRect get client(); 21164 ClientRect get client();
21198 ClientRect get offset(); 21165 ClientRect get offset();
21199 ClientRect get scroll(); 21166 ClientRect get scroll();
21200 // In global coords 21167 // In global coords
21201 ClientRect get bounding(); 21168 ClientRect get bounding();
21202 // In global coords 21169 // In global coords
21203 List<ClientRect> get clientRects(); 21170 List<ClientRect> get clientRects();
21204 } 21171 }
21205 21172
21206 interface Element extends Node, NodeSelector default _ElementFactoryProvider { 21173 interface Element extends Node, NodeSelector default _ElementFactoryProvider {
21207 // TODO(jacobr): switch back to: 21174 // TODO(jacobr): switch back to:
21208 // interface Element extends Node, NodeSelector, ElementTraversal default _Eleme ntImpl { 21175 // interface Element extends Node, NodeSelector, ElementTraversal default _Eleme ntImpl {
21209 Element.html(String html); 21176 Element.html(String html);
21210 Element.tag(String tag); 21177 Element.tag(String tag);
21211 21178
21212 Map<String, String> get attributes(); 21179 AttributeMap get attributes();
21213 void set attributes(Map<String, String> value); 21180 void set attributes(Map<String, String> value);
21214 21181
21215 /** 21182 /**
21216 * @domName querySelectorAll, getElementsByClassName, getElementsByTagName, 21183 * @domName querySelectorAll, getElementsByClassName, getElementsByTagName,
21217 * getElementsByTagNameNS 21184 * getElementsByTagNameNS
21218 */ 21185 */
21219 ElementList queryAll(String selectors); 21186 ElementList queryAll(String selectors);
21220 21187
21221 /** 21188 /**
21222 * @domName childElementCount, firstElementChild, lastElementChild, 21189 * @domName childElementCount, firstElementChild, lastElementChild,
21223 * children, Node.nodes.add 21190 * children, Node.nodes.add
21224 */ 21191 */
21225 ElementList get elements(); 21192 ElementList get elements();
21226 21193
21227 void set elements(Collection<Element> value); 21194 void set elements(Collection<Element> value);
21228 21195
21229 /** @domName className, classList */ 21196 /** @domName className, classList */
21230 Set<String> get classes(); 21197 Set<String> get classes();
21231 21198
21232 void set classes(Collection<String> value); 21199 void set classes(Collection<String> value);
21233 21200
21234 Map<String, String> get dataAttributes(); 21201 AttributeMap get dataAttributes();
21235 void set dataAttributes(Map<String, String> value); 21202 void set dataAttributes(Map<String, String> value);
21236 21203
21237 /** 21204 /**
21238 * @domName getClientRects, getBoundingClientRect, clientHeight, clientWidth, 21205 * @domName getClientRects, getBoundingClientRect, clientHeight, clientWidth,
21239 * clientTop, clientLeft, offsetHeight, offsetWidth, offsetTop, offsetLeft, 21206 * clientTop, clientLeft, offsetHeight, offsetWidth, offsetTop, offsetLeft,
21240 * scrollHeight, scrollWidth, scrollTop, scrollLeft 21207 * scrollHeight, scrollWidth, scrollTop, scrollLeft
21241 */ 21208 */
21242 Future<ElementRect> get rect(); 21209 Future<ElementRect> get rect();
21243 21210
21244 /** @domName Window.getComputedStyle */ 21211 /** @domName Window.getComputedStyle */
(...skipping 10885 matching lines...) Expand 10 before | Expand all | Expand 10 after
32130 if (length < 0) throw new IllegalArgumentException('length'); 32097 if (length < 0) throw new IllegalArgumentException('length');
32131 if (start < 0) throw new IndexOutOfRangeException(start); 32098 if (start < 0) throw new IndexOutOfRangeException(start);
32132 int end = start + length; 32099 int end = start + length;
32133 if (end > a.length) throw new IndexOutOfRangeException(end); 32100 if (end > a.length) throw new IndexOutOfRangeException(end);
32134 for (int i = start; i < end; i++) { 32101 for (int i = start; i < end; i++) {
32135 accumulator.add(a[i]); 32102 accumulator.add(a[i]);
32136 } 32103 }
32137 return accumulator; 32104 return accumulator;
32138 } 32105 }
32139 } 32106 }
OLDNEW
« no previous file with comments | « lib/html/dartium/html_dartium.dart ('k') | lib/html/src/DataAttributeMap.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698