拖放gwt

时间:2013-12-10 09:45:34

标签: java gwt drag-and-drop

当我将小部件放在面板外时,我正试图从面板中删除小部件。 我查看了这些教程和示例 http://code.google.com/p/gwt-dnd/wiki/GettingStarted ,但我无法弄清楚如何设置放置控制器以将其放在我的面板之外。

你能提出一个暗示或想法吗?

2 个答案:

答案 0 :(得分:2)

如果您将PickupDragController实例化为

PickupDragController controller =
    new PickupDragController(pickupContainer, false);

然后将小部件放在拾取容器之外,然后自动抛出VetoDragException(由于构造函数中的false)。如果感兴趣,请参阅JavaDoc甚至是BoundaryDropController中的代码。

然后,您可以注册DragHandler并在其onDragEnd检查是否发生了异常。如果是,请删除小部件。类似的东西:

class MyHandler implements DragHandler {
  // onPreviewDragStart, onDragStart, onPreviewDragEnd omitted.
  public void onDragEnd(DragEndEvent event) {
    if (event.getContext().vetoException != null) {
      // Not sure it works, but you get the idea.
      event.getContext().draggable.removeFromParent();
    }
  }
}

controller.addDragHandler(new MyHandler());

答案 1 :(得分:0)

在DropController(AbstractDropController)中,您必须在构造函数中定义一个元素,您可以在其中删除元素。 你有一些代码片段来帮助你具体化吗?

PS:我已经使用你提到的这个库建立了一些D& D,在我看来,它是错误的并且不容易入手。但我没有为GWT找到更好的原生D& D lib,我们试图包装jquery D& D.它非常快速和平滑,但很难包裹。