OLD | NEW |
1 // Copyright (c) 2011, 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 // TODO - figure out whether classList exists, and if so use that | 5 // TODO - figure out whether classList exists, and if so use that |
6 // rather than the className property that is being used here. | 6 // rather than the className property that is being used here. |
7 | 7 |
8 class _CssClassSet implements Set<String> { | 8 class _CssClassSet implements Set<String> { |
9 | 9 |
10 final _element; | 10 final _element; |
11 | 11 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 /** | 98 /** |
99 * Helper method used to modify the set of css classes on this element. | 99 * Helper method used to modify the set of css classes on this element. |
100 * | 100 * |
101 * f - callback with: | 101 * f - callback with: |
102 * s - a Set of all the css class name currently on this element. | 102 * s - a Set of all the css class name currently on this element. |
103 * | 103 * |
104 * After f returns, the modified set is written to the | 104 * After f returns, the modified set is written to the |
105 * className property of this element. | 105 * className property of this element. |
106 */ | 106 */ |
107 void _modify( f(Set<String> s)) { | 107 void _modify( f(Set<String> s)) { |
| 108 assert(!_inMeasurementFrame || !_nodeInDocument(_element)); |
108 Set<String> s = _read(); | 109 Set<String> s = _read(); |
109 f(s); | 110 f(s); |
110 _write(s); | 111 _write(s); |
111 } | 112 } |
112 | 113 |
113 /** | 114 /** |
114 * Read the class names from the HTMLElement class property, | 115 * Read the class names from the HTMLElement class property, |
115 * and put them into a set (duplicates are discarded). | 116 * and put them into a set (duplicates are discarded). |
116 */ | 117 */ |
117 Set<String> _read() { | 118 Set<String> _read() { |
(...skipping 12 matching lines...) Expand all Loading... |
130 * Read the class names as a space-separated string. This is meant to be | 131 * Read the class names as a space-separated string. This is meant to be |
131 * overridden by subclasses. | 132 * overridden by subclasses. |
132 */ | 133 */ |
133 String _className() => _element.className; | 134 String _className() => _element.className; |
134 | 135 |
135 /** | 136 /** |
136 * Join all the elements of a set into one string and write | 137 * Join all the elements of a set into one string and write |
137 * back to the element. | 138 * back to the element. |
138 */ | 139 */ |
139 void _write(Set s) { | 140 void _write(Set s) { |
| 141 assert(!_inMeasurementFrame || !_nodeInDocument(_element)); |
140 _element.className = _formatSet(s); | 142 _element.className = _formatSet(s); |
141 } | 143 } |
142 | 144 |
143 String _formatSet(Set<String> s) { | 145 String _formatSet(Set<String> s) { |
144 // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605 | 146 // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605 |
145 List list = new List.from(s); | 147 List list = new List.from(s); |
146 return Strings.join(list, ' '); | 148 return Strings.join(list, ' '); |
147 } | 149 } |
148 | 150 |
149 } | 151 } |
150 | 152 |
OLD | NEW |