Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(576)

Unified Diff: charted/lib/charts/cartesian_renderers/cartesian_base_renderer.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: charted/lib/charts/cartesian_renderers/cartesian_base_renderer.dart
diff --git a/charted/lib/charts/cartesian_renderers/cartesian_base_renderer.dart b/charted/lib/charts/cartesian_renderers/cartesian_base_renderer.dart
deleted file mode 100644
index 08d89176bf124e560d17a554e9964c583005fa7e..0000000000000000000000000000000000000000
--- a/charted/lib/charts/cartesian_renderers/cartesian_base_renderer.dart
+++ /dev/null
@@ -1,282 +0,0 @@
-/**
- * Copyright 2014 Google Inc. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style
- * license that can be found in the LICENSE file or at
- * https://developers.google.com/open-source/licenses/bsd
- */
-
-part of charted.charts;
-
-abstract class CartesianRendererBase implements CartesianRenderer {
- final SubscriptionsDisposer _disposer = new SubscriptionsDisposer();
-
- CartesianArea area;
- ChartSeries series;
- ChartTheme theme;
- ChartState state;
- Rect rect;
-
- List<int> _columnStateCache;
- List<Iterable<String>> _columnStylesCache;
-
- final _valueColorCache = new Map<int,String>();
- final _valueFilterCache = new Map<int,String>();
- final _valueStylesCache = new Map<int,Iterable<String>>();
-
- Element host;
- Selection root;
- SelectionScope scope;
-
- StreamController<ChartEvent> mouseOverController;
- StreamController<ChartEvent> mouseOutController;
- StreamController<ChartEvent> mouseClickController;
-
- void _ensureAreaAndSeries(CartesianArea area, ChartSeries series) {
- assert(area != null && series != null);
- assert(this.area == null || this.area == area);
- if (this.area == null) {
- if (area.state != null) {
- this.state = area.state;
- _disposer.add(this.state.changes.listen((changes) {
- resetStylesCache();
- handleStateChanges(changes);
- }));
- }
- }
- this.area = area;
- this.series = series;
- }
-
- void _ensureReadyToDraw(Element element) {
- assert(series != null && area != null);
- assert(element != null && element is GElement);
-
- if (scope == null) {
- host = element;
- scope = new SelectionScope.element(element);
- root = scope.selectElements([host]);
- }
-
- theme = area.theme;
- rect = area.layout.renderArea;
- resetStylesCache();
- }
-
- void resetStylesCache() {
- var length = area.data.columns.length;
- _columnStylesCache = new List(length);
- _columnStateCache = new List(length);
- _valueStylesCache.clear();
- _valueColorCache.clear();
- _valueFilterCache.clear();
- _computeColumnStates();
- }
-
- /// Override this method to handle state changes.
- void handleStateChanges(List<ChangeRecord> changes);
-
- @override
- Extent get extent {
- assert(series != null && area != null);
- var rows = area.data.rows,
- measures = series.measures,
- max = SMALL_INT_MIN,
- min = SMALL_INT_MAX;
-
- for (int i = 0, len = rows.length; i < len; ++i) {
- var row = rows.elementAt(i);
- for (int j = 0, jLen = measures.length; j < jLen; ++j) {
- var value = row.elementAt(measures.elementAt(j));
- if (value != null && value.isFinite) {
- if (value > max) {
- max = value;
- } else if (value < min) {
- min = value;
- }
- }
- }
- }
- return new Extent(min, max);
- }
-
- @override
- Extent extentForRow(Iterable row) {
- assert(series != null && area != null);
- var measures = series.measures,
- max = SMALL_INT_MIN,
- min = SMALL_INT_MAX;
-
- for (int i = 0, len = measures.length; i < len; ++i) {
- var measure = measures.elementAt(i),
- value = row.elementAt(measure);
- if (value != null && value.isFinite) {
- if (value > max) {
- max = value;
- } else if (value < min) {
- min = value;
- }
- }
- }
- return new Extent(min, max);
- }
-
- @override
- Stream<ChartEvent> get onValueMouseOver {
- if (mouseOverController == null) {
- mouseOverController = new StreamController.broadcast(sync: true);
- }
- return mouseOverController.stream;
- }
-
- @override
- Stream<ChartEvent> get onValueMouseOut {
- if (mouseOutController == null) {
- mouseOutController = new StreamController.broadcast(sync: true);
- }
- return mouseOutController.stream;
- }
-
- @override
- Stream<ChartEvent> get onValueClick {
- if (mouseClickController == null) {
- mouseClickController = new StreamController.broadcast(sync: true);
- }
- return mouseClickController.stream;
- }
-
- double get bandInnerPadding => 1.0;
- double get bandOuterPadding =>
- area.theme.getDimensionAxisTheme().axisOuterPadding;
-
- void _computeColumnStates() {
- area.config.series.forEach((ChartSeries series) {
- series.measures.forEach((int column) {
- if (_columnStateCache[column] != null) return;
- int flags = 0;
- if (state != null && area.useRowColoring == false) {
- if (state.highlights.isNotEmpty) {
- flags |= (state.highlights.any((x) => x.first == column)
- ? ChartState.COL_HIGHLIGHTED
- : ChartState.COL_UNHIGHLIGHTED);
- }
- if (state.selection.isNotEmpty) {
- flags |= (state.isSelected(column)
- ? ChartState.COL_SELECTED
- : ChartState.COL_UNSELECTED);
- }
- if (!state.isVisible(column)) {
- flags |= ChartState.COL_HIDDEN;
- }
- if (state.preview == column) {
- flags |= ChartState.COL_PREVIEW;
- }
- if (state.hovered != null && state.hovered.first == column) {
- flags |= ChartState.COL_HOVERED;
- }
- }
- _columnStateCache[column] = flags;
- });
- });
- }
-
- Iterable<String> stylesForColumn(int column) {
- if (_columnStylesCache[column] == null) {
- if (state == null || area.useRowColoring) {
- _columnStylesCache[column] = const[];
- } else {
- var styles = [],
- flags = _columnStateCache[column];
-
- if (flags & ChartState.COL_SELECTED != 0) {
- styles.add(ChartState.COL_SELECTED_CLASS);
- } else if (flags & ChartState.COL_UNSELECTED != 0){
- styles.add(ChartState.COL_UNSELECTED_CLASS);
- }
-
- if (flags & ChartState.COL_HIGHLIGHTED != 0) {
- styles.add(ChartState.COL_HIGHLIGHTED_CLASS);
- } else if (flags & ChartState.COL_UNHIGHLIGHTED != 0) {
- styles.add(ChartState.COL_UNHIGHLIGHTED_CLASS);
- }
-
- if (flags & ChartState.COL_HOVERED != 0) {
- styles.add(ChartState.COL_HOVERED_CLASS);
- }
- if (flags & ChartState.COL_PREVIEW != 0) {
- styles.add(ChartState.COL_PREVIEW_CLASS);
- }
- if (flags & ChartState.COL_HIDDEN != 0) {
- styles.add(ChartState.COL_HIDDEN_CLASS);
- }
-
- _columnStylesCache[column] = styles;
- }
- }
- return _columnStylesCache[column];
- }
-
- String colorForColumn(int column) =>
- theme.getColorForKey(column, _columnStateCache[column]);
-
- String filterForColumn(int column) =>
- theme.getFilterForState(_columnStateCache[column]);
-
- Iterable<String> stylesForValue(int column, int row) {
- var hash = hash2(column, row);
- if (_valueStylesCache[hash] == null) {
- if (state == null) {
- _valueStylesCache[hash] = const[];
- } else {
- var styles = stylesForColumn(column).toList();
- if (state.highlights.isNotEmpty) {
- styles.add(state.highlights.any((x) => x.last == row)
- ? ChartState.VAL_HIGHLIGHTED_CLASS
- : ChartState.VAL_UNHIGHLIGHTED_CLASS);
- }
- if (state.hovered != null && state.hovered.last == row) {
- styles.add(ChartState.VAL_HOVERED_CLASS);
- }
- _valueStylesCache[hash] = styles;
- }
- }
- return _valueStylesCache[hash];
- }
-
- String colorForValue(int column, int row) {
- var hash = hash2(column, row);
- if (_valueColorCache[hash] == null) {
- _cacheColorsAndFilter(hash, column, row);
- }
- return _valueColorCache[hash];
- }
-
- String filterForValue(int column, int row) {
- var hash = hash2(column, row);
- if (_valueFilterCache[hash] == null) {
- _cacheColorsAndFilter(hash, column, row);
- }
- return _valueFilterCache[hash];
- }
-
- _cacheColorsAndFilter(int hash, int column, int row) {
- if (state == null) {
- _valueColorCache[hash] =
- theme.getColorForKey(area.useRowColoring ? row : column);
- _valueFilterCache[hash] = theme.getFilterForState(0);
- } else {
- var flags = _columnStateCache[column];
- if (state.highlights.isNotEmpty) {
- flags |= (state.highlights.any((x) => x.last == row)
- ? ChartState.VAL_HIGHLIGHTED
- : ChartState.VAL_UNHIGHLIGHTED);
- }
- if (state.hovered != null && state.hovered.last == row) {
- flags |= ChartState.VAL_HOVERED;
- }
- _valueColorCache[hash] =
- theme.getColorForKey(area.useRowColoring ? row : column, flags);
- _valueFilterCache[hash] = theme.getFilterForState(flags);
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698