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 swarmlib; | 5 part of swarmlib; |
6 | 6 |
7 // This file contains View framework classes. | 7 // This file contains View framework classes. |
8 // As it grows, it may need to be split into multiple files. | 8 // As it grows, it may need to be split into multiple files. |
9 | 9 |
10 /** A factory that creates a view from a data model. */ | 10 /** A factory that creates a view from a data model. */ |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 | 164 |
165 void onSelectedItemChange() { | 165 void onSelectedItemChange() { |
166 // TODO(rnystrom): use Observable to track the last value of _selectedItem | 166 // TODO(rnystrom): use Observable to track the last value of _selectedItem |
167 // rather than tracking it ourselves. | 167 // rather than tracking it ourselves. |
168 _select(findIndex(_lastSelectedItem), false); | 168 _select(findIndex(_lastSelectedItem), false); |
169 _select(findIndex(_selectedItem.value), true); | 169 _select(findIndex(_selectedItem.value), true); |
170 _lastSelectedItem = _selectedItem.value; | 170 _lastSelectedItem = _selectedItem.value; |
171 } | 171 } |
172 | 172 |
173 Collection<View> get childViews { | 173 Collection<View> get childViews { |
174 return _itemViews.values; | 174 return _itemViews.values.toList(); |
175 } | 175 } |
176 | 176 |
177 void _onClick(MouseEvent e) { | 177 void _onClick(MouseEvent e) { |
178 int index = _findAssociatedIndex(e.target); | 178 int index = _findAssociatedIndex(e.target); |
179 if (index != null) { | 179 if (index != null) { |
180 _selectedItem.value = _data[index]; | 180 _selectedItem.value = _data[index]; |
181 } | 181 } |
182 } | 182 } |
183 | 183 |
184 int _findAssociatedIndex(Node leafNode) { | 184 int _findAssociatedIndex(Node leafNode) { |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 int getSnapIndex(num offset, int viewLength) { | 684 int getSnapIndex(num offset, int viewLength) { |
685 int index = (-offset / _itemLength).round().toInt(); | 685 int index = (-offset / _itemLength).round().toInt(); |
686 if (_paginate) { | 686 if (_paginate) { |
687 index = getPageStartIndex(getPage(index, viewLength), viewLength); | 687 index = getPageStartIndex(getPage(index, viewLength), viewLength); |
688 } | 688 } |
689 return GoogleMath.clamp(index, 0, _data.length - 1); | 689 return GoogleMath.clamp(index, 0, _data.length - 1); |
690 } | 690 } |
691 | 691 |
692 Interval computeVisibleInterval( | 692 Interval computeVisibleInterval( |
693 num offset, num viewLength, num bufferLength) { | 693 num offset, num viewLength, num bufferLength) { |
694 num targetIntervalStart = | 694 int targetIntervalStart = |
695 Math.max(0,((-offset - bufferLength) / _itemLength).floor()); | 695 Math.max(0, (-offset - bufferLength) ~/ _itemLength); |
696 num targetIntervalEnd = GoogleMath.clamp( | 696 num targetIntervalEnd = GoogleMath.clamp( |
697 ((-offset + viewLength + bufferLength) / _itemLength).ceil(), | 697 ((-offset + viewLength + bufferLength) / _itemLength).ceil(), |
698 targetIntervalStart, | 698 targetIntervalStart, |
699 _data.length); | 699 _data.length); |
700 return new Interval(targetIntervalStart.toInt(), | 700 return new Interval(targetIntervalStart, targetIntervalEnd.toInt()); |
701 targetIntervalEnd.toInt()); | |
702 } | 701 } |
703 } | 702 } |
704 | 703 |
705 /** | 704 /** |
706 * Simple list view class where each item has fixed width and height. | 705 * Simple list view class where each item has fixed width and height. |
707 */ | 706 */ |
708 class ListView<D> extends GenericListView<D> { | 707 class ListView<D> extends GenericListView<D> { |
709 | 708 |
710 /** | 709 /** |
711 * Creates a new ListView for the given data. If [:_data:] is an | 710 * Creates a new ListView for the given data. If [:_data:] is an |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
976 | 975 |
977 container = node.query('.dialog-body'); | 976 container = node.query('.dialog-body'); |
978 container.nodes.add(_content.node); | 977 container.nodes.add(_content.node); |
979 | 978 |
980 return node; | 979 return node; |
981 } | 980 } |
982 | 981 |
983 /** Override to handle dialog done. */ | 982 /** Override to handle dialog done. */ |
984 void onDone() { } | 983 void onDone() { } |
985 } | 984 } |
OLD | NEW |