GWT Перетаскивание внутри дерева и между сетками деревьев

Мы используем GWT, и нам необходимо создать две сетки дерева перетаскивания. Каждое дерево содержит родителей и детей (максимум два уровня на данный момент). Вот что нам нужно сделать:

Случаи применения

  • Перетащите родителя из одной древовидной сетки в другую.
  • Перетащите родителя 1 к родителю 2 (1 станет ребенком от 2, а все дети 1 станут детьми от 2) -> пожалуйста, не спрашивайте:D
  • Перетащите ребенка от одного родителя к другому (в пределах одной и той же древовидной сетки)
  • Перетащите дочерний элемент на верхний уровень в той же сетке дерева (дочерний элемент станет родительским)
  • Перетащите ребенка в другую сетку деревьев с двумя вариантами
    1 - Верхний уровень - ребенок из дерева 1 станет родителем для дерева 2.
    2 - Родитель - Дочерний элемент из дерева 1 станет дочерним от родительского элемента в сетке дерева 2.

Если это не имеет особого смысла, у нас еще нет полного контекста, так что это все, что мы знаем.

проблема

Мы можем перетащить на ту же сетку дерева. Если строка, в которую мы хотим перетащить ячейку, скрыта, мы устанавливаем прокрутку в значение true, чтобы сетка прокручивалась, когда пользователь перетаскивал ее внутрь. Примерно так:

private void setDraggableOptions(DragAndDropColumn<?, ?> column) {
    // retrieve draggableOptions on the column
    DraggableOptions draggableOptions = column.getDraggableOptions();
    draggableOptions.setScroll(true);
    // use template to construct the helper. The content of the div will be set
    // after
    draggableOptions.setHelper(HelperType.CLONE);
    // opacity of the helper
    draggableOptions.setOpacity((float) 0.8);
    // cursor to use during the drag operation
    draggableOptions.setCursor(Cursor.MOVE);
    // set the revert option
    draggableOptions.setRevert(RevertOption.ON_INVALID_DROP);
    // prevents dragging when user click on the category drop-down list
    draggableOptions.setCancel("select");
    column.setDraggableOptions(draggableOptions);
}

Теперь проблема в том, что, установив древовидную сетку для прокрутки, пользователь никогда не сможет перетащить объект во второе дерево, поскольку прокрутка будет пытаться держать объект всегда внутри сетки.

Мы используем gwtquery-плагины

Есть ли идея обойти это? Заранее большое спасибо.

1 ответ

Решение

Смотрите мой ответ на ваш вопрос здесь

Другие вопросы по тегам