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

Unified Diff: charted/lib/charts/behaviors/chart_tooltip.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
« no previous file with comments | « charted/lib/charts/behaviors/axis_label_tooltip.dart ('k') | charted/lib/charts/behaviors/hovercard.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: charted/lib/charts/behaviors/chart_tooltip.dart
diff --git a/charted/lib/charts/behaviors/chart_tooltip.dart b/charted/lib/charts/behaviors/chart_tooltip.dart
deleted file mode 100644
index f588d809e9d334c889f20b2d3be450a1e085ebbc..0000000000000000000000000000000000000000
--- a/charted/lib/charts/behaviors/chart_tooltip.dart
+++ /dev/null
@@ -1,201 +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;
-
-/// Displays tooltip for the values as user moves the mouse pointer over
-/// values in the chart. It displays all the active values in the data row
-/// and use the value in the dimension as the title.
-@Deprecated('Use Hovercard')
-class ChartTooltip implements ChartBehavior {
- static const _TOOLTIP_OFFSET = 10;
- final String orientation;
- final bool showDimensionValue;
- final bool showMeasureTotal;
- final bool showSelectedMeasure;
-
- ChartArea _area;
- ChartState _state;
- Selection _tooltipRoot;
- SubscriptionsDisposer _disposer = new SubscriptionsDisposer();
-
- /// Constructs the tooltip.
- /// If [showDimensionValue] is set, displays the dimension value as title.
- /// If [showMeasureTotal] is set, displays the total value.
- ChartTooltip({
- this.showSelectedMeasure: false,
- this.showDimensionValue: false,
- this.showMeasureTotal: false,
- this.orientation: ORIENTATION_RIGHT});
-
- /// Sets up listeners for triggering tooltip.
- void init(ChartArea area, Selection _, Selection __) {
- _area = area;
- _state = area.state;
- _disposer.addAll([
- area.onValueMouseOver.listen(show),
- area.onValueMouseOut.listen(hide)
- ]);
-
- // Tooltip requires host to be position: relative.
- area.host.style.position = 'relative';
-
- var _scope = new SelectionScope.element(_area.host);
- _scope.append('div')..classed('tooltip');
- _tooltipRoot = _scope.select('.tooltip');
- }
-
- void dispose() {
- _disposer.dispose();
- if (_tooltipRoot != null) _tooltipRoot.remove();
- }
-
- /// Displays tooltip upon receiving a hover event on an element in chart.
- show(ChartEvent e) {
- _tooltipRoot.first
- ..children.clear()
- ..attributes['dir'] = _area.config.isRTL ? 'rtl' : '';
- _tooltipRoot.classed('rtl', _area.config.isRTL);
-
- // Display dimension value if set in config.
- if (showDimensionValue) {
- var column = _area.config.dimensions.elementAt(0),
- value = _area.data.rows.elementAt(e.row).elementAt(column),
- formatter = _getFormatterForColumn(column);
-
- _tooltipRoot.append('div')
- ..classed('tooltip-title')
- ..text((formatter != null) ? formatter(value) : value.toString());
- }
-
- // Display sum of the values in active row if set in config.
- if (showMeasureTotal) {
- var measures = e.series.measures,
- formatter = _getFormatterForColumn(measures.elementAt(0)),
- row = _area.data.rows.elementAt(e.row),
- total = 0;
- for (int i = 0, len = measures.length; i < len; i++) {
- total += row.elementAt(measures.elementAt(i));
- }
- _tooltipRoot.append('div')
- ..classed('tooltip-total')
- ..text((formatter != null) ? formatter(total) : total.toString());
- }
-
- // Find the currently selectedMeasures and hoveredMeasures and show
- // tooltip for them, if none is selected/hovered, show all.
- var activeMeasures = [];
- if (showSelectedMeasure) {
- activeMeasures.addAll(_state.selection);
- activeMeasures.add(_state.preview != null ? _state.preview :
- _state.hovered.first);
- if (activeMeasures.isEmpty) {
- for (var series in _area.config.series) {
- activeMeasures.addAll(series.measures);
- }
- }
- activeMeasures.sort();
- }
-
- var data = (showSelectedMeasure) ? activeMeasures : e.series.measures;
-
- // Create the tooltip items base on the number of measures in the series.
- var items = _tooltipRoot.selectAll('.tooltip-item').
- data(data);
- items.enter.append('div')
- ..classed('tooltip-item')
- ..classedWithCallback('active', (d, i, c) =>
- !showSelectedMeasure && (d == e.column));
-
- // Display the label for the currently active series.
- var tooltipItems = _tooltipRoot.selectAll('.tooltip-item');
- tooltipItems.append('div')
- ..classed('tooltip-item-label')
- ..textWithCallback((d, i, c) => _area.data.columns.
- elementAt((showSelectedMeasure) ? d :
- e.series.measures.elementAt(i)).label);
-
- // Display the value of the currently active series
- tooltipItems.append('div')
- ..classed('tooltip-item-value')
- ..styleWithCallback('color', (d, i, c) =>
- _area.theme.getColorForKey(d))
- ..textWithCallback((d, i, c) {
- var formatter = _getFormatterForColumn(d),
- value = _area.data.rows.elementAt(e.row).elementAt(d);
- return (formatter != null) ? formatter(value) : value.toString();
- });
-
- math.Point position = computeTooltipPosition(
- new math.Point(e.chartX, e.chartY),
- _tooltipRoot.first.getBoundingClientRect());
-
- // Set position of the tooltip and display it.
- _tooltipRoot
- ..style('left', '${position.x}px')
- ..style('top', '${position.y}px')
- ..style('opacity', '1');
- }
-
- static String switchPositionDirection(String direction) =>
- direction == ORIENTATION_LEFT
- ? ORIENTATION_RIGHT
- : ORIENTATION_LEFT;
-
- /// Computes the ideal tooltip position based on orientation.
- math.Point computeTooltipPosition(
- math.Point coord, math.Rectangle rect) {
- var x, y, direction;
- direction = _area.config.isRTL && _area.config.switchAxesForRTL
- ? switchPositionDirection(orientation)
- : orientation;
-
- if (direction == ORIENTATION_LEFT) {
- x = coord.x - rect.width - _TOOLTIP_OFFSET;
- y = coord.y + _TOOLTIP_OFFSET;
- } else {
- x = coord.x + _TOOLTIP_OFFSET;
- y = coord.y + _TOOLTIP_OFFSET;
- }
- return boundTooltipPosition(
- new math.Rectangle(x, y, rect.width, rect.height));
- }
-
- /// Positions the tooltip to be inside of the chart boundary.
- math.Point boundTooltipPosition(math.Rectangle rect) {
- var hostRect = _area.host.getBoundingClientRect();
-
- var top = rect.top;
- var left = rect.left;
-
- // Checks top and bottom.
- if (rect.top < 0) {
- top += (2 * _TOOLTIP_OFFSET);
- } else if (rect.top + rect.height > hostRect.height) {
- top -= (rect.height + 2 * _TOOLTIP_OFFSET);
- }
-
- // Checks left and right.
- if (rect.left < 0) {
- left += (rect.width + 2 * _TOOLTIP_OFFSET);
- } else if (rect.left + rect.width > hostRect.width) {
- left -= (rect.width + 2 * _TOOLTIP_OFFSET);
- }
-
- return new math.Point(left, top);
- }
-
- FormatFunction _getFormatterForColumn(int column) =>
- _area.data.columns.elementAt(column).formatter;
-
- hide(ChartEvent e) {
- if (_tooltipRoot == null) return;
- _tooltipRoot.style('opacity', '0');
- }
-}
-
« no previous file with comments | « charted/lib/charts/behaviors/axis_label_tooltip.dart ('k') | charted/lib/charts/behaviors/hovercard.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698