GWT在树内和树网格之间拖放

时间:2012-10-02 10:00:51

标签: gwt datagrid drag-and-drop gwtquery

我们正在使用GWT,我们需要创建两个拖放树网格。每棵树都包含父母和孩子(现在最多两个级别)。 以下是我们需要做的事情:

使用案例

  • 将父级从一个树网格拖到另一个树网格。
  • 将父级1拖到父级2(1将成为2的子级,所有1的子级将成为2的子级) - >请不要问:D
  • 将子项从一个父项拖到另一个父项(在同一树网格中)
  • 将子项拖到同一树网格中的顶级(子项将成为父项)
  • 使用两个选项将子项拖到另一个树网格中 1 - 顶级 - 来自树1的孩子将成为树2上的父级 2 - Parent - 来自树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-plugins

有什么想法可以解决这个问题吗?非常感谢你提前。

1 个答案:

答案 0 :(得分:2)

查看我对您的问题的回复here