@Override
	public void run() {
		// Simple selection
		List<UIEvent> lastEvents = Model.getModel().getInteractionStack().getLastEvents(2);
		if (lastEvents.get(1).getEventType() == EventType.MOUSE_BUTTON_DOWN
				&& lastEvents.get(1).getButton() == 0
				&& lastEvents.get(0).getEventType() == EventType.MOUSE_BUTTON_UP
				&& !Keyboard.isKeyDown(Keyboard.KEY_LCONTROL)) {

			// Clear the selection
			Model.getModel().clearSimpleSelection();

			// pick
			select(Mouse.getX() - Model.getModel().getWindow().getWidth() / 2, Mouse.getY() - Model.getModel().getWindow().getHeight() / 2,
					SelectionType.SIMPLE, true);
			LOGGER.debug("New simple selection: " + Model.getModel().getSimpleSelection().toString());
		}

		// Action selection
		if (lastEvents.get(1).getEventType() == EventType.MOUSE_BUTTON_DOWN
				&& lastEvents.get(1).getButton() == 1
				&& lastEvents.get(0).getEventType() == EventType.MOUSE_BUTTON_UP
				&& !Keyboard.isKeyDown(Keyboard.KEY_LCONTROL)) {

			// Clear the selection
			Model.getModel().clearActionSelection();

			// pick
			select(Mouse.getX() - Model.getModel().getWindow().getWidth() / 2, Mouse.getY() - Model.getModel().getWindow().getHeight() / 2,
					SelectionType.ACTION, true);
			LOGGER.debug("New action selection: " + Model.getModel().getActionSelection().toString());
		}
	}