| Index: charted/lib/charts/behaviors/mouse_tracker.dart
|
| diff --git a/charted/lib/charts/behaviors/mouse_tracker.dart b/charted/lib/charts/behaviors/mouse_tracker.dart
|
| deleted file mode 100644
|
| index 822a278209e3b5593153a1fc6bf10c919b926061..0000000000000000000000000000000000000000
|
| --- a/charted/lib/charts/behaviors/mouse_tracker.dart
|
| +++ /dev/null
|
| @@ -1,120 +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;
|
| -
|
| -/// A behavior that tracks mouse pointer and paints a dashed line to
|
| -/// the axes from the current pointer location.
|
| -class MouseTracker implements ChartBehavior {
|
| - ChartArea _area;
|
| - Rect _rect;
|
| -
|
| - Element _markerX;
|
| - Element _markerY;
|
| -
|
| - bool _showMarkerX = true;
|
| - bool _showMarkerY = true;
|
| - bool _showing;
|
| -
|
| - Element _lower;
|
| -
|
| - StreamSubscription _mouseMoveSubscription;
|
| - StreamSubscription _mouseInSubscription;
|
| - StreamSubscription _mouseOutSubscription;
|
| -
|
| - void init(ChartArea area, Selection upper, Selection lower) {
|
| - _area = area;
|
| - _lower = lower.first;
|
| -
|
| - if (area is CartesianArea) {
|
| - _mouseInSubscription = _area.onMouseOver.listen(_show);
|
| - _mouseOutSubscription = _area.onMouseOut.listen(_hide);
|
| - }
|
| - }
|
| -
|
| - void dispose() {
|
| - if (_mouseInSubscription != null) _mouseInSubscription.cancel();
|
| - if (_mouseOutSubscription != null) _mouseOutSubscription.cancel();
|
| - if (_mouseMoveSubscription != null) _mouseOutSubscription.cancel();
|
| - if (_markerX != null) _markerX.remove();
|
| - if (_markerY != null) _markerY.remove();
|
| - }
|
| -
|
| - void _show(ChartEvent e) {
|
| - if (_mouseMoveSubscription != null) return;
|
| - _create();
|
| - _visibility(true);
|
| - _mouseMoveSubscription = _area.onMouseMove.listen(_update);
|
| - }
|
| -
|
| - void _hide(ChartEvent e) {
|
| - if (_showing != true) return;
|
| - _visibility(false);
|
| - _mouseMoveSubscription.cancel();
|
| - _mouseMoveSubscription = null;
|
| - }
|
| -
|
| - void _visibility(bool show) {
|
| - if (_showing == show) return;
|
| - var value = show ? 'visible' : 'hidden';
|
| - if (_markerX != null) {
|
| - _markerX.style.visibility = value;
|
| - }
|
| - if (_markerY != null) {
|
| - _markerY.style.visibility = value;
|
| - }
|
| - }
|
| -
|
| - bool _isRenderArea(ChartEvent e) =>
|
| - _rect != null && _rect.contains(e.chartX, e.chartY);
|
| -
|
| - void _create() {
|
| - if (_rect == null) {
|
| - var renderArea = _area.layout.renderArea;
|
| - _rect = new Rect(
|
| - renderArea.x, renderArea.y, renderArea.width, renderArea.height);
|
| - }
|
| - if (_showMarkerX && _markerX == null) {
|
| - _markerX = new LineElement();
|
| - _markerX.attributes
|
| - ..['x1'] = '0'
|
| - ..['y1'] = _rect.y.toString()
|
| - ..['x2'] = '0'
|
| - ..['y2'] = (_rect.y + _rect.height).toString()
|
| - ..['class'] = 'axis-marker axis-marker-x';
|
| - _lower.append(_markerX);
|
| - }
|
| - if (_showMarkerY && _markerY == null) {
|
| - _markerY = new LineElement();
|
| - _markerY.attributes
|
| - ..['x1'] = _rect.x.toString()
|
| - ..['y1'] = '0'
|
| - ..['x2'] = (_rect.x + _rect.width).toString()
|
| - ..['y2'] = '0'
|
| - ..['class'] = 'axis-marker axis-marker-y';
|
| - _lower.append(_markerY);
|
| - }
|
| - _visibility(false);
|
| - }
|
| -
|
| - void _update(ChartEvent e) {
|
| - if (!_isRenderArea(e)) {
|
| - _visibility(false);
|
| - } else {
|
| - _visibility(true);
|
| - window.requestAnimationFrame((_) {
|
| - if (_showMarkerX) {
|
| - _markerX.attributes['transform'] = 'translate(${e.chartX},0)';
|
| - }
|
| - if (_showMarkerY) {
|
| - _markerY.attributes['transform'] = 'translate(0,${e.chartY})';
|
| - }
|
| - });
|
| - }
|
| - }
|
| -}
|
|
|