@Override
    public void mouseDragged(@NotNull MouseEvent e) {
      if (!isDraggingEnabled(e)) {
        return;
      }

      mouseInputListener.mouseDragged(convertMouseEvent(e));
      // if I change cursor on mouse pressed, it will change on double-click as well
      // and I do not want that
      if (header.getDraggedColumn() != null) {
        if (header.getCursor() == Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)) {
          header.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
        }
        int draggedColumn = header.getTable().convertColumnIndexToView(header.getDraggedColumn().getModelIndex());
        int targetColumn = draggedColumn + (header.getDraggedDistance() < 0 ? -1 : 1);
        if (targetColumn < 0 || targetColumn >= header.getTable().getColumnCount()) return;
        if (!canMoveOrResizeColumn(header.getTable().convertColumnIndexToModel(targetColumn))) {
          mouseReleased(e); //cancel dragging unmovable column
        }
      }
    }
@Override
    public void mouseDragged(@NotNull MouseEvent e)