private void drag( MouseEvent event ) { if ( !dragging ) return; if ( panMode == AxisConstraint.Both || panMode == AxisConstraint.Horizontal ) { double dX = ( event.getX() - lastX ) / -xAxis.getScale(); lastX = event.getX(); xAxis.setAutoRanging( false ); xAxis.setLowerBound( xAxis.getLowerBound() + dX ); xAxis.setUpperBound( xAxis.getUpperBound() + dX ); } if ( panMode == AxisConstraint.Both || panMode == AxisConstraint.Vertical ) { double dY = ( event.getY() - lastY ) / -yAxis.getScale(); lastY = event.getY(); yAxis.setAutoRanging( false ); yAxis.setLowerBound( yAxis.getLowerBound() + dY ); yAxis.setUpperBound( yAxis.getUpperBound() + dY ); } }
private void release() { if ( !dragging ) return; dragging = false; xAxis.setAnimated( wasXAnimated ); yAxis.setAnimated( wasYAnimated ); } }
); xAxis.setAutoRanging( false ); yAxis.setAutoRanging( false ); if ( zoomAnimated.get() ) { zoomAnimation.stop(); zoomAnimation.getKeyFrames().setAll( new KeyFrame( Duration.ZERO, new KeyValue( xAxis.lowerBoundProperty(), xAxis.getLowerBound() ), new KeyValue( xAxis.upperBoundProperty(), xAxis.getUpperBound() ), new KeyValue( yAxis.lowerBoundProperty(), yAxis.getLowerBound() ), new KeyValue( yAxis.upperBoundProperty(), yAxis.getUpperBound() ) ), new KeyFrame( Duration.millis( zoomDurationMillis.get() ), new KeyValue( xAxis.lowerBoundProperty(), zoomWindow.getMinX() ), new KeyValue( xAxis.upperBoundProperty(), zoomWindow.getMaxX() ), new KeyValue( yAxis.lowerBoundProperty(), zoomWindow.getMinY() ), new KeyValue( yAxis.upperBoundProperty(), zoomWindow.getMaxY() ) } else { zoomAnimation.stop(); xAxis.setLowerBound( zoomWindow.getMinX() ); xAxis.setUpperBound( zoomWindow.getMaxX() ); yAxis.setLowerBound( zoomWindow.getMinY() ); yAxis.setUpperBound( zoomWindow.getMaxY() );
private void startDrag( MouseEvent event ) { DefaultChartInputContext context = new DefaultChartInputContext( chartInfo, event.getX(), event.getY() ); panMode = axisConstraintStrategy.getConstraint( context ); if (panMode != AxisConstraint.None) { lastX = event.getX(); lastY = event.getY(); wasXAnimated = xAxis.getAnimated(); wasYAnimated = yAxis.getAnimated(); xAxis.setAnimated( false ); xAxis.setAutoRanging( false ); yAxis.setAnimated( false ); yAxis.setAutoRanging( false ); dragging = true; } }
xAxis.getLowerBound(), xAxis.getUpperBound() ); double yZoomBalance = getBalance( dataCoords.getY(), yAxis.getLowerBound(), yAxis.getUpperBound() ); double xZoomDelta = ( xAxis.getUpperBound() - xAxis.getLowerBound() ) * zoomAmount; xAxis.setAutoRanging( false ); xAxis.setLowerBound( xAxis.getLowerBound() - xZoomDelta * xZoomBalance ); xAxis.setUpperBound( xAxis.getUpperBound() + xZoomDelta * ( 1 - xZoomBalance ) ); double yZoomDelta = ( yAxis.getUpperBound() - yAxis.getLowerBound() ) * zoomAmount; yAxis.setAutoRanging( false ); yAxis.setLowerBound( yAxis.getLowerBound() - yZoomDelta * yZoomBalance ); yAxis.setUpperBound( yAxis.getUpperBound() + yZoomDelta * ( 1 - yZoomBalance ) );