예제 #1
1
    @Override
    public void mouseDragged(MouseEvent e) {

      if (resizing) {
        config.width = widthStart + (resizeStart - e.getXOnScreen());
        if (config.width < 1) {
          config.width = 1;
        }
        configService.dispatch().configChanged();
      }

      if (dragging) {
        // Disable animation when dragging for better experience.
        editor.getScrollingModel().disableAnimation();

        editor
            .getScrollingModel()
            .scrollVertically(
                scrollStart + coords.pixelsToLines(e.getY() - mouseStart) * editor.getLineHeight());
        editor.getScrollingModel().enableAnimation();
      }
    }
예제 #2
0
    @Override
    public void mousePressed(MouseEvent e) {
      if (!dragging && inResizeGutter(e.getX())) {
        resizing = true;
      } else if (!resizing) {
        dragging = true;
      }

      if (resizing) {
        resizeStart = e.getXOnScreen();
        widthStart = config.width;
      }

      if (dragging) {
        Rectangle visibleArea = editor.getScrollingModel().getVisibleArea();
        int firstVisibleLine = getMapYFromEditorY((int) visibleArea.getMinY());
        int height =
            coords.linesToPixels(
                (int) ((visibleArea.getMaxY() - visibleArea.getMinY()) / editor.getLineHeight()));

        int panelY = e.getY() - getY();

        if (config.jumpOnMouseDown
            && (panelY <= firstVisibleLine || panelY >= (firstVisibleLine + height))) {
          editor.getScrollingModel().disableAnimation();
          editor
              .getScrollingModel()
              .scrollTo(
                  editor.offsetToLogicalPosition(
                      coords.screenSpaceToOffset(e.getY(), config.percentageBasedClick)),
                  ScrollType.CENTER);
          editor.getScrollingModel().enableAnimation();
        }

        scrollStart = editor.getScrollingModel().getVerticalScrollOffset();
        mouseStart = e.getY();
      }
    }