onMoveUpdate method
void
onMoveUpdate(
- OpsMoveUpdateDetails details
)
override
Implementation
@override
void onMoveUpdate(OpsMoveUpdateDetails details) {
var needStateIfNotDispose = false;
var dx = details.localPoint.dx - _curX;
var dy = details.localPoint.dy - _curY;
if (widget.controller.painter!.highlightPerDragEnabled) {
final highlighted = widget.controller.painter!.getHighlightByTouchPoint(
details.localPoint.dx, details.localPoint.dy);
if (highlighted?.equalTo(lastHighlighted) == false) {
lastHighlighted = HighlightUtils.performHighlight(
widget.controller.painter!, highlighted, lastHighlighted);
needStateIfNotDispose = true;
}
}
if (widget.controller.painter!.dragYEnabled &&
widget.controller.painter!.dragXEnabled) {
if (_inverted()) {
/// if there is an inverted horizontalbarchart
if (widget is HorizontalBarChart) {
dx = -dx;
} else {
dy = -dy;
}
}
widget.controller.painter?.translate(dx, dy);
needStateIfNotDispose = true;
} else {
if (widget.controller.painter!.dragXEnabled) {
if (_inverted()) {
/// if there is an inverted horizontalbarchart
if (widget is HorizontalBarChart) {
dx = -dx;
} else {
dy = -dy;
}
}
widget.controller.painter?.translate(dx, 0.0);
needStateIfNotDispose = true;
} else if (widget.controller.painter!.dragYEnabled) {
if (_inverted()) {
/// if there is an inverted horizontalbarchart
if (widget is HorizontalBarChart) {
dx = -dx;
} else {
dy = -dy;
}
}
widget.controller.painter?.translate(0.0, dy);
needStateIfNotDispose = true;
}
}
if (widget.controller.touchEventListener != null) {
var point = _getTouchValue(
widget.controller.touchEventListener!.valueType(),
details.globalPoint.dx,
details.globalPoint.dy,
details.localPoint.dx,
details.localPoint.dy);
widget.controller.touchEventListener?.onMoveUpdate(point.x, point.y);
}
if (needStateIfNotDispose) {
setStateIfNotDispose();
}
_curX = details.localPoint.dx;
_curY = details.localPoint.dy;
}