public void mouseMoved(MouseEvent e) {
   if (e.isShiftDown()) {
     shiftDown = true;
     getPanel().setCursor(crosshairCursor);
   } else {
     shiftDown = false;
     getPanel().setCursor(rotateCursor);
   }
   super.mouseMoved(e);
 }
  public void mousePressed(MouseEvent e) {
    try {
      if (!check(checkFactory.createSelectedItemsLayersMustBeEditableCheck())) {
        return;
      }

      if (e.isShiftDown()) {
        centerCoord = getPanel().getViewport().toModelCoordinate(e.getPoint());
      } else {
        if (!check(checkFactory.createAtLeastNItemsMustBeSelectedCheck(1))) return;

        selectedFeatureShape = createSelectedItemsShape();
        super.mousePressed(e);
      }
    } catch (Throwable t) {
      getPanel().getContext().handleThrowable(t);
    }
  }
 public void activate(LayerViewPanel layerViewPanel) {
   centerCoord = null;
   super.activate(layerViewPanel);
 }