2013-12-10 43 views
0

我試圖從面板上刪除小部件,當我將該小部件放到面板外部時。 我擡頭看這些教程和示例http://code.google.com/p/gwt-dnd/wiki/GettingStarted但我不知道如何設置拖放控制器將其放置在我的面板外。拖放gwt

你可以給個提示或想法嗎?

+0

你能分享一些你已經試過的東西以及你卡在哪裏的細節嗎? –

回答

0

在DropController(AbstractDropController)中,您必須在構造函數中定義一個元素,您可以在其中放置元素。 你有一些代碼片段來幫助你具體嗎? PS:我已經建立了一些D & D與你提到的這個庫,在我看來,它是越野車,並不容易開始。但是我沒有找到一個更好的GWT本地D庫,我們試圖包裝jquery D & D.它非常快速和平滑,但很難包裝。

+0

我知道,那是我所做的。我創建了一個擴展AbstractDragController的DropController。你打算在構造函數中定義什麼元素?我想把小部件放在面板外的任何地方。 – vladM

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()); 
+0

謝謝,它的工作原理:) – vladM

+0

非常感謝解決方案。也爲我工作。良好的研究。 –

+0

@Andrea Boscolo:我無法拖出最後一個元素。當我調試發現它的父母爲空 –