当我将小部件放在面板外时,我正试图从面板中删除小部件。 我查看了这些教程和示例 http://code.google.com/p/gwt-dnd/wiki/GettingStarted ,但我无法弄清楚如何设置放置控制器以将其放在我的面板之外。
你能提出一个暗示或想法吗?
答案 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.它非常快速和平滑,但很难包裹。