OLD | NEW |
1 // Copyright (c) 2012, 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 // 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)); | |
109 Set<String> s = _read(); | 108 Set<String> s = _read(); |
110 f(s); | 109 f(s); |
111 _write(s); | 110 _write(s); |
112 } | 111 } |
113 | 112 |
114 /** | 113 /** |
115 * Read the class names from the HTMLElement class property, | 114 * Read the class names from the HTMLElement class property, |
116 * and put them into a set (duplicates are discarded). | 115 * and put them into a set (duplicates are discarded). |
117 */ | 116 */ |
118 Set<String> _read() { | 117 Set<String> _read() { |
(...skipping 12 matching lines...) Expand all Loading... |
131 * Read the class names as a space-separated string. This is meant to be | 130 * Read the class names as a space-separated string. This is meant to be |
132 * overridden by subclasses. | 131 * overridden by subclasses. |
133 */ | 132 */ |
134 String _className() => _element.className; | 133 String _className() => _element.className; |
135 | 134 |
136 /** | 135 /** |
137 * Join all the elements of a set into one string and write | 136 * Join all the elements of a set into one string and write |
138 * back to the element. | 137 * back to the element. |
139 */ | 138 */ |
140 void _write(Set s) { | 139 void _write(Set s) { |
141 assert(!_inMeasurementFrame || !_nodeInDocument(_element)); | |
142 _element.className = _formatSet(s); | 140 _element.className = _formatSet(s); |
143 } | 141 } |
144 | 142 |
145 String _formatSet(Set<String> s) { | 143 String _formatSet(Set<String> s) { |
146 // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605 | 144 // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605 |
147 List list = new List.from(s); | 145 List list = new List.from(s); |
148 return Strings.join(list, ' '); | 146 return Strings.join(list, ' '); |
149 } | 147 } |
150 | 148 |
151 } | 149 } |
152 | 150 |
OLD | NEW |