void processMouseMoved(MouseEvent e) {

		super.processMouseMoved(e);

		if (model.getJob() != null && !model.getJob().isStopped())
			return;

		int x = e.getX();
		int y = e.getY();

		if (callOutMouseMoved(x, y))
			return;
		if (handleMouseMoved(x, y))
			return;

		switch (actionID) {

		case HEAT_ID:
		case COOL_ID:
			pointHeater.setLocation(x, y);
			repaint();
			break;

		case ADGB_ID:
			addGBIndicator.x = x - addGBIndicator.width * 0.5f;
			addGBIndicator.y = y - addGBIndicator.height * 0.5f;
			repaint();
			break;

		case SELE_ID:
			ModelComponent mc = getRolloverComponent(x, y);
			setCursor(mc != null ? UserAction.getCursor(actionID) : Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
			break;

		case ROTA_ID:
			if (selectedComponent instanceof GayBerneParticle) {
				if (((GayBerneParticle) selectedComponent).isSelectedToRotate()) {
					setCursor(((GayBerneParticle) selectedComponent).getRotationHandle(x, y) != -1 ? rotateCursor1 : previousCursor);
				}
			}
			break;

		case RESI_ID:
			if (selectedComponent instanceof GayBerneParticle) {
				if (((GayBerneParticle) selectedComponent).isSelectedToResize()) {
					switch (((GayBerneParticle) selectedComponent).getResizeHandle(x, y)) {
					case 0:
						setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));
						break;
					case 1:
						setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR));
						break;
					default:
						setCursor(previousCursor);
					}
				}
			}
			break;

		case VELO_ID:
			if (selectedComponent instanceof GayBerneParticle) {
				if (((GayBerneParticle) selectedComponent).velocitySelected()) {
					if (((GayBerneParticle) selectedComponent).isVelocityHandleSelected(x, y)) {
						setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
						readyToAdjustVelocityVector = true;
					} else {
						setCursor(previousCursor);
						readyToAdjustVelocityVector = false;
					}
				}
			}
			break;

		case OMEG_ID:
			if (selectedComponent instanceof GayBerneParticle) {
				if (((GayBerneParticle) selectedComponent).getOmegaSelection()) {
					if (((GayBerneParticle) selectedComponent).getOHotSpot().contains(x, y)) {
						setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
						readyToAdjustOmegaVector = true;
					} else {
						setCursor(previousCursor);
						readyToAdjustOmegaVector = false;
					}
				}
			}
			break;

		case MEAS_ID:
			if (selectedComponent instanceof GayBerneParticle) {
				GayBerneParticle p = (GayBerneParticle) selectedComponent;
				indexOfSelectedMeasurement = p.getMeasurement(x, y);
				if (indexOfSelectedMeasurement >= 0) {
					setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
					readyToAdjustDistanceVector = true;
				} else {
					setCursor(previousCursor);
					readyToAdjustDistanceVector = false;
				}
			}
			break;

		}

		e.consume();

	}