OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of html; | 5 part of html; |
6 | 6 |
7 // TODO(jacobr): use _Lists.dart to remove some of the duplicated | 7 // TODO(jacobr): use _Lists.dart to remove some of the duplicated |
8 // functionality. | 8 // functionality. |
9 class _ChildrenElementList implements List { | 9 class _ChildrenElementList implements List { |
10 // Raw Element. | 10 // Raw Element. |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 } | 109 } |
110 | 110 |
111 Element operator [](int index) { | 111 Element operator [](int index) { |
112 return _childElements[index]; | 112 return _childElements[index]; |
113 } | 113 } |
114 | 114 |
115 void operator []=(int index, Element value) { | 115 void operator []=(int index, Element value) { |
116 _element.$dom_replaceChild(value, _childElements[index]); | 116 _element.$dom_replaceChild(value, _childElements[index]); |
117 } | 117 } |
118 | 118 |
119 void set length(int newLength) { | 119 void set length(int newLength) { |
120 // TODO(jacobr): remove children when length is reduced. | 120 // TODO(jacobr): remove children when length is reduced. |
121 throw new UnsupportedError(''); | 121 throw new UnsupportedError(''); |
122 } | 122 } |
123 | 123 |
124 Element add(Element value) { | 124 Element add(Element value) { |
125 _element.$dom_appendChild(value); | 125 _element.$dom_appendChild(value); |
126 return value; | 126 return value; |
127 } | 127 } |
128 | 128 |
129 Element addLast(Element value) => add(value); | 129 Element addLast(Element value) => add(value); |
130 | 130 |
131 Iterator<Element> get iterator => toList().iterator; | 131 Iterator<Element> get iterator => toList().iterator; |
132 | 132 |
133 void addAll(Iterable<Element> iterable) { | 133 void addAll(Iterable<Element> iterable) { |
134 for (Element element in iterable) { | 134 for (Element element in iterable) { |
135 _element.$dom_appendChild(element); | 135 _element.$dom_appendChild(element); |
136 } | 136 } |
137 } | 137 } |
138 | 138 |
139 void sort([int compare(Element a, Element b)]) { | 139 void sort([int compare(Element a, Element b)]) { |
140 throw new UnsupportedError('TODO(jacobr): should we impl?'); | 140 throw new UnsupportedError('TODO(jacobr): should we impl?'); |
141 } | 141 } |
142 | 142 |
143 dynamic reduce(dynamic initialValue, | 143 dynamic reduce(dynamic initialValue, |
144 dynamic combine(dynamic previousValue, Element element)) { | 144 dynamic combine(dynamic previousValue, Element element)) { |
145 return Collections.reduce(this, initialValue, combine); | 145 return Collections.reduce(this, initialValue, combine); |
146 } | 146 } |
147 | 147 |
148 void setRange(int start, int rangeLength, List from, [int startFrom = 0]) { | 148 void setRange(int start, int rangeLength, List from, [int startFrom = 0]) { |
149 throw new UnimplementedError(); | 149 throw new UnimplementedError(); |
150 } | 150 } |
151 | 151 |
| 152 void remove(Object object) { |
| 153 if (object is Element) { |
| 154 Element element = object; |
| 155 if (identical(element.parentNode, this)) { |
| 156 _element.$dom_removeChild(element); |
| 157 } |
| 158 } |
| 159 } |
| 160 |
| 161 void removeAll(Iterable elements) { |
| 162 Collections.removeAll(this, elements); |
| 163 } |
| 164 |
| 165 void retainAll(Iterable elements) { |
| 166 Collections.retainAll(this, elements); |
| 167 } |
| 168 |
| 169 void removeMatching(bool test(Element element)) { |
| 170 Collections.removeMatching(this, test); |
| 171 } |
| 172 |
| 173 void retainMatching(bool test(Element element)) { |
| 174 Collections.retainMatching(this, test); |
| 175 } |
| 176 |
152 void removeRange(int start, int rangeLength) { | 177 void removeRange(int start, int rangeLength) { |
153 throw new UnimplementedError(); | 178 throw new UnimplementedError(); |
154 } | 179 } |
155 | 180 |
156 void insertRange(int start, int rangeLength, [initialValue = null]) { | 181 void insertRange(int start, int rangeLength, [initialValue = null]) { |
157 throw new UnimplementedError(); | 182 throw new UnimplementedError(); |
158 } | 183 } |
159 | 184 |
160 List getRange(int start, int rangeLength) => | 185 List getRange(int start, int rangeLength) => |
161 new _FrozenElementList._wrap(Lists.getRange(this, start, rangeLength, | 186 new _FrozenElementList._wrap(Lists.getRange(this, start, rangeLength, |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 } | 392 } |
368 | 393 |
369 Element removeAt(int index) { | 394 Element removeAt(int index) { |
370 throw new UnsupportedError(''); | 395 throw new UnsupportedError(''); |
371 } | 396 } |
372 | 397 |
373 Element removeLast() { | 398 Element removeLast() { |
374 throw new UnsupportedError(''); | 399 throw new UnsupportedError(''); |
375 } | 400 } |
376 | 401 |
| 402 void remove(Object element) { |
| 403 throw new UnsupportedError(''); |
| 404 } |
| 405 |
| 406 void removeAll(Iterable elements) { |
| 407 throw new UnsupportedError(''); |
| 408 } |
| 409 |
| 410 void retainAll(Iterable elements) { |
| 411 throw new UnsupportedError(''); |
| 412 } |
| 413 |
| 414 void removeMatching(bool test(Element element)) { |
| 415 throw new UnsupportedError(''); |
| 416 } |
| 417 |
| 418 void retainMatching(bool test(Element element)) { |
| 419 throw new UnsupportedError(''); |
| 420 } |
| 421 |
377 Element get first => _nodeList.first; | 422 Element get first => _nodeList.first; |
378 | 423 |
379 Element get last => _nodeList.last; | 424 Element get last => _nodeList.last; |
380 | 425 |
381 Element get single => _nodeList.single; | 426 Element get single => _nodeList.single; |
382 | 427 |
383 Element min([int compare(Element a, Element b)]) { | 428 Element min([int compare(Element a, Element b)]) { |
384 return Collections.min(this, compare); | 429 return Collections.min(this, compare); |
385 } | 430 } |
386 | 431 |
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
974 $if DART2JS | 1019 $if DART2JS |
975 // Optimization to improve performance until the dart2js compiler inlines this | 1020 // Optimization to improve performance until the dart2js compiler inlines this |
976 // method. | 1021 // method. |
977 static dynamic createElement_tag(String tag) => | 1022 static dynamic createElement_tag(String tag) => |
978 JS('Element', 'document.createElement(#)', tag); | 1023 JS('Element', 'document.createElement(#)', tag); |
979 $else | 1024 $else |
980 static Element createElement_tag(String tag) => | 1025 static Element createElement_tag(String tag) => |
981 document.$dom_createElement(tag); | 1026 document.$dom_createElement(tag); |
982 $endif | 1027 $endif |
983 } | 1028 } |
OLD | NEW |