@Override
		public void mouseDragged(MouseEvent e)
		{
			if (isEnabled() && start != null)
			{
				if (zoomGesture)
				{
					Rectangle bounds = graphComponent.getViewport()
							.getViewRect();
					double viewRatio = bounds.getWidth() / bounds.getHeight();

					bounds = new Rectangle(finderBounds);
					bounds.width = (int) Math
							.max(0, (e.getX() - bounds.getX()));
					bounds.height = (int) Math.max(0,
							(bounds.getWidth() / viewRatio));

					updateFinderBounds(bounds, true);
				}
				else
				{
					// TODO: To enable constrained moving, that is, moving
					// into only x- or y-direction when shift is pressed,
					// we need the location of the first mouse event, since
					// the movement can not be constrained for incremental
					// steps as used below.
					int dx = (int) ((e.getX() - start.getX()) / scale);
					int dy = (int) ((e.getY() - start.getY()) / scale);

					// Keeps current location as start for delta movement
					// of the scrollbars
					start = e.getPoint();

					graphComponent.getHorizontalScrollBar().setValue(
							graphComponent.getHorizontalScrollBar().getValue()
									+ dx);
					graphComponent.getVerticalScrollBar().setValue(
							graphComponent.getVerticalScrollBar().getValue()
									+ dy);
				}
			}
		}