private void addListeners()

in src/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/JComponentNavigator.java [137:257]


	private void addListeners() {
		addMouseListener(new MouseListener() {

			@Override
			public void mouseUp(MouseEvent e) {
				if (dragHandles == null) {
					updateCursor(e.x, e.y);
				} else {
					DragHandles handles = dragHandles;
					if (dragHandles.left < 0) {
						handles = comapareAndCreateRange(getStartPosition(), dragHandles.right);
					} else if (dragHandles.right < 0) {
						handles = comapareAndCreateRange(dragHandles.left, getEndPosition());
					}
					IQuantity start = selectedRange.getStart();
					IQuantity end = selectedRange.getEnd();
					if (handles.left != getStartPosition()) {
						start = axis.getQuantityAtPixel(handles.left);
					}
					if (handles.right != getEndPosition()) {
						end = axis.getQuantityAtPixel(handles.right + 1);
					}
					if (start.compareTo(selectedRange.getStart()) != 0 || end.compareTo(selectedRange.getEnd()) != 0) {
						setCurrentRange(QuantityRange.createWithEnd(start, end));
					}
					dragHandles = null;
				}

			}

			@Override
			public void mouseDown(MouseEvent e) {
				// NOTE: Skip for CTRL+click on OS X
				if ((e.button != 1) || ((e.stateMask & SWT.MOD4) != 0)) {
					return;
				}
				int startPosition = getStartPosition();
				int endPosition = getEndPosition();
				if (hitTest(startPosition, e.x, e.y)) {
					dragHandles = new DragHandles(startPosition, -1);
				} else if (hitTest(endPosition, e.x, e.y)) {
					dragHandles = new DragHandles(-1, endPosition);
				} else if (e.x > startPosition && e.x < endPosition) {
					dragHandles = new DragHandles(startPosition, endPosition);
				}
				lastDragPosition = e.x;
			}

			@Override
			public void mouseDoubleClick(MouseEvent e) {
				if (restorableRange == null) {
					setCurrentRange(axis);
				} else {
					setCurrentRange(restorableRange);
				}
			}
		});
		addMouseMoveListener(new MouseMoveListener() {

			@Override
			public void mouseMove(MouseEvent e) {
				if (dragHandles == null) {
					updateCursor(e.x, e.y);
				} else {
					dragHandles.move(e.x - lastDragPosition);
					lastDragPosition = e.x;
					redraw();
				}
			}
		});
		addMouseTrackListener(new MouseTrackAdapter() {

			@Override
			public void mouseExit(MouseEvent e) {
				setShowGrabbers(false);
			}

			@Override
			public void mouseEnter(MouseEvent e) {
				setShowGrabbers(true);
			}
		});
		addPaintListener(new PaintListener() {

			@Override
			public void paintControl(PaintEvent e) {
				Rectangle clientArea = getClientArea();
				if (isChartImagesInvalid(clientArea)) {
					redrawChartImages(e, clientArea);
				}
				DragHandles handles = dragHandles;
				if (handles == null) {
					handles = new DragHandles(getStartPosition(), getEndPosition());
				} else if (handles.left < 0) {
					handles = comapareAndCreateRange(getStartPosition(), handles.right);
				} else if (handles.right < 0) {
					handles = comapareAndCreateRange(handles.left, getEndPosition());
				}
				drawBackground(e.gc, clientArea, handles.left, handles.right);
				drawSlider(e.gc, clientArea, handles.left, handles.right);
			}
		});
		addDisposeListener(new DisposeListener() {
			@Override
			public void widgetDisposed(DisposeEvent e) {
				disposeResources();
			}
		});

		addControlListener(new ControlAdapter() {

			@Override
			public void controlResized(ControlEvent e) {
				Rectangle clientArea = getClientArea();
				if (axis != null) {
					setAxis(axis, clientArea.width);
				}
				height = clientArea.height;
			}
		});
	}