| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 $LIBRARYNAME; | 5 part of $LIBRARYNAME; |
| 6 | 6 |
| 7 class _AttributeClassSet extends CssClassSetImpl { | 7 class _AttributeClassSet extends CssClassSetImpl { |
| 8 final Element _element; | 8 final Element _element; |
| 9 | 9 |
| 10 _AttributeClassSet(this._element); | 10 _AttributeClassSet(this._element); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 } | 51 } |
| 52 var fragment = parentElement.createFragment(svg, validator: validator, | 52 var fragment = parentElement.createFragment(svg, validator: validator, |
| 53 treeSanitizer: treeSanitizer); | 53 treeSanitizer: treeSanitizer); |
| 54 return fragment.nodes.where((e) => e is SvgElement).single; | 54 return fragment.nodes.where((e) => e is SvgElement).single; |
| 55 } | 55 } |
| 56 | 56 |
| 57 CssClassSet get classes => new _AttributeClassSet(this); | 57 CssClassSet get classes => new _AttributeClassSet(this); |
| 58 | 58 |
| 59 List<Element> get children => new FilteredElementList(this); | 59 List<Element> get children => new FilteredElementList(this); |
| 60 | 60 |
| 61 set children(List<Element> value) { | 61 void set children(List<Element> value) { |
| 62 final children = this.children; | 62 final children = this.children; |
| 63 children.clear(); | 63 children.clear(); |
| 64 children.addAll(value); | 64 children.addAll(value); |
| 65 } | 65 } |
| 66 | 66 |
| 67 String get outerHtml { | 67 String get outerHtml { |
| 68 final container = new Element.tag("div"); | 68 final container = new Element.tag("div"); |
| 69 final SvgElement cloned = this.clone(true); | 69 final SvgElement cloned = this.clone(true); |
| 70 container.children.add(cloned); | 70 container.children.add(cloned); |
| 71 return container.innerHtml; | 71 return container.innerHtml; |
| 72 } | 72 } |
| 73 | 73 |
| 74 String get innerHtml { | 74 String get innerHtml { |
| 75 final container = new Element.tag("div"); | 75 final container = new Element.tag("div"); |
| 76 final SvgElement cloned = this.clone(true); | 76 final SvgElement cloned = this.clone(true); |
| 77 container.children.addAll(cloned.children); | 77 container.children.addAll(cloned.children); |
| 78 return container.innerHtml; | 78 return container.innerHtml; |
| 79 } | 79 } |
| 80 | 80 |
| 81 set innerHtml(String value) { | 81 void set innerHtml(String value) { |
| 82 this.setInnerHtml(value); | 82 this.setInnerHtml(value); |
| 83 } | 83 } |
| 84 | 84 |
| 85 DocumentFragment createFragment(String svg, | 85 DocumentFragment createFragment(String svg, |
| 86 {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) { | 86 {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) { |
| 87 | 87 |
| 88 if (treeSanitizer == null) { | 88 if (treeSanitizer == null) { |
| 89 if (validator == null) { | 89 if (validator == null) { |
| 90 validator = new NodeValidatorBuilder.common() | 90 validator = new NodeValidatorBuilder.common() |
| 91 ..allowSvg(); | 91 ..allowSvg(); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 | 136 |
| 137 /** | 137 /** |
| 138 * Checks to see if the SVG element type is supported by the current platform. | 138 * Checks to see if the SVG element type is supported by the current platform. |
| 139 * | 139 * |
| 140 * The tag should be a valid SVG element tag name. | 140 * The tag should be a valid SVG element tag name. |
| 141 */ | 141 */ |
| 142 static bool isTagSupported(String tag) { | 142 static bool isTagSupported(String tag) { |
| 143 var e = new $CLASSNAME.tag(tag); | 143 var e = new $CLASSNAME.tag(tag); |
| 144 return e is $CLASSNAME && !(e is UnknownElement); | 144 return e is $CLASSNAME && !(e is UnknownElement); |
| 145 } | 145 } |
| 146 | |
| 147 $if JSINTEROP | |
| 148 set _svgClassName(AnimatedString value) => | |
| 149 _blink.BlinkSVGElement.instance.className_Setter_(unwrap_jso(this), unwrap
_jso(value)); | |
| 150 | |
| 151 String get className => _svgClassName.baseVal; | |
| 152 | |
| 153 // Unbelievable hack. We can't create an SvgAnimatedString, but we can get | |
| 154 // the existing one and change its baseVal. Then we call the blink setter dire
ctly | |
| 155 // TODO(alanknight): Handle suppressing the SVGAnimated<*> better | |
| 156 set className(String s) { | |
| 157 var oldClass = _svgClassName; | |
| 158 oldClass.baseVal = s; | |
| 159 _svgClassName = oldClass; | |
| 160 } | |
| 161 $endif | |
| 162 $!MEMBERS | 146 $!MEMBERS |
| 163 } | 147 } |
| OLD | NEW |