Chromium Code Reviews| Index: sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate |
| diff --git a/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate b/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate |
| index 27f45bf9d35b9bedc89a6ba935409d1d580b18cf..8fdc268c0cc0fb1e9be2ee7eed3e4619f9c61ce4 100644 |
| --- a/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate |
| +++ b/sdk/lib/html/templates/html/impl/impl_DocumentFragment.darttemplate |
| @@ -4,105 +4,6 @@ |
| part of html; |
| -class _FilteredElementList implements List { |
|
Anton Muhin
2012/11/09 13:13:23
do all those changes belong here?
blois
2012/11/09 18:21:56
I made this public since it's being used by SVG as
|
| - final Node _node; |
| - final List<Node> _childNodes; |
| - |
| - _FilteredElementList(Node node): _childNodes = node.nodes, _node = node; |
| - |
| - // We can't memoize this, since it's possible that children will be messed |
| - // with externally to this class. |
| - // |
| - // TODO(nweiz): Do we really need to copy the list to make the types work out? |
| - List<Element> get _filtered => |
| - new List.from(_childNodes.filter((n) => n is Element)); |
| - |
| - void forEach(void f(Element element)) { |
| - _filtered.forEach(f); |
| - } |
| - |
| - void operator []=(int index, Element value) { |
| - this[index].replaceWith(value); |
| - } |
| - |
| - void set length(int newLength) { |
| - final len = this.length; |
| - if (newLength >= len) { |
| - return; |
| - } else if (newLength < 0) { |
| - throw new ArgumentError("Invalid list length"); |
| - } |
| - |
| - removeRange(newLength - 1, len - newLength); |
| - } |
| - |
| - void add(Element value) { |
| - _childNodes.add(value); |
| - } |
| - |
| - void addAll(Collection<Element> collection) { |
| - collection.forEach(add); |
| - } |
| - |
| - void addLast(Element value) { |
| - add(value); |
| - } |
| - |
| - bool contains(Element element) { |
| - return element is Element && _childNodes.contains(element); |
| - } |
| - |
| - void sort([Comparator<Element> compare = Comparable.compare]) { |
| - throw new UnsupportedError('TODO(jacobr): should we impl?'); |
| - } |
| - |
| - void setRange(int start, int rangeLength, List from, [int startFrom = 0]) { |
| - throw new UnimplementedError(); |
| - } |
| - |
| - void removeRange(int start, int rangeLength) { |
| - _filtered.getRange(start, rangeLength).forEach((el) => el.remove()); |
| - } |
| - |
| - void insertRange(int start, int rangeLength, [initialValue = null]) { |
| - throw new UnimplementedError(); |
| - } |
| - |
| - void clear() { |
| - // Currently, ElementList#clear clears even non-element nodes, so we follow |
| - // that behavior. |
| - _childNodes.clear(); |
| - } |
| - |
| - Element removeLast() { |
| - final result = this.last; |
| - if (result != null) { |
| - result.remove(); |
| - } |
| - return result; |
| - } |
| - |
| - Collection map(f(Element element)) => _filtered.map(f); |
| - Collection<Element> filter(bool f(Element element)) => _filtered.filter(f); |
| - bool every(bool f(Element element)) => _filtered.every(f); |
| - bool some(bool f(Element element)) => _filtered.some(f); |
| - bool get isEmpty => _filtered.isEmpty; |
| - int get length => _filtered.length; |
| - Element operator [](int index) => _filtered[index]; |
| - Iterator<Element> iterator() => _filtered.iterator(); |
| - List<Element> getRange(int start, int rangeLength) => |
| - _filtered.getRange(start, rangeLength); |
| - int indexOf(Element element, [int start = 0]) => |
| - _filtered.indexOf(element, start); |
| - |
| - int lastIndexOf(Element element, [int start = null]) { |
| - if (start == null) start = length - 1; |
| - return _filtered.lastIndexOf(element, start); |
| - } |
| - |
| - Element get last => _filtered.last; |
| -} |
| - |
| Future<CSSStyleDeclaration> _emptyStyleFuture() { |
| return _createMeasurementFuture(() => new Element.tag('div').style, |
| new Completer<CSSStyleDeclaration>()); |
| @@ -118,14 +19,12 @@ class EmptyElementRect implements ElementRect { |
| const EmptyElementRect(); |
| } |
| -class _FrozenCssClassSet extends _CssClassSet { |
| - _FrozenCssClassSet() : super(null); |
| - |
| - void _write(Set s) { |
| +class _FrozenCssClassSet extends CssClassSet { |
| + void writeClasses(Set s) { |
| throw new UnsupportedError( |
| 'frozen class set cannot be modified'); |
| } |
| - Set<String> _read() => new Set<String>(); |
| + Set<String> readClasses() => new Set<String>(); |
| bool get frozen => true; |
| } |
| @@ -136,14 +35,14 @@ class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
| factory $CLASSNAME.html(String html) => |
| _$(CLASSNAME)FactoryProvider.createDocumentFragment_html(html); |
| - factory $CLASSNAME.svg(String svg) => |
| - new _$(CLASSNAME)FactoryProvider.createDocumentFragment_svg(svg); |
| + factory $CLASSNAME.svg(String svgContent) => |
| + new _$(CLASSNAME)FactoryProvider.createDocumentFragment_svg(svgContent); |
| List<Element> _elements; |
| List<Element> get elements { |
| if (_elements == null) { |
| - _elements = new _FilteredElementList(this); |
| + _elements = new FilteredElementList(this); |
| } |
| return _elements; |
| } |