2013-01-22 107 views
0

我創建的標籤的後續格,我想論略爲可拖動:對象不能被拖動 - 與DND GWT查詢

  public static Grid setLabels (String [] str){ 
    Label [] lbl = new Label [str.length]; 
    Grid grid = new Grid(5,1); 
    CellFormatter cellFormatter = grid.getCellFormatter(); 

    for(int i=0; i<str.length; i++){ 
     lbl[i] = new Label(); 
     lbl[i].setText(str[i]); 
     DraggableWidget<Label> draggableLabel = new DraggableWidget<Label>(lbl[i]); 

     draggableLabel.setRevert(RevertOption.ON_INVALID_DROP); 
     draggableLabel.setDraggingZIndex(100); 
     draggableLabel.setDraggingCursor(Cursor.MOVE); 
     grid.setWidget(i, 0, draggableLabel); 
     cellFormatter.setHeight(i, 0, "50px"); 
    } 
    return grid; 
} 

然後網格面板上添加。一切都顯示好。 然後我創建一個可放置的小部件。

  public static void createDND(){ 
    final Label moveHere = new Label("Move here!"); 
    DroppableWidget<Label> dnd1 = new DroppableWidget<Label>(moveHere); 

     dnd1.addDropHandler(new DropEventHandler() { 
      public void onDrop(DropEvent event) { 
      Widget droppedLabel= event.getDraggableWidget(); 
      moveHere.setText(""); 


      } 
     }); 
     dndPanel1.add(dnd1); 
    } 

但是標籤不能被拖放。我覺得失蹤,但我無法弄清楚什麼。

+0

你的代碼看起來不錯,對我的作品......我只是能降只有一個可拖動的B/C刪除可放開後的內容一滴,所以droppable已不再維度。你在devmode嗎?因爲在devmode中,由於瀏覽器插件和每個mousemove事件上的IDE之間的通信,dnd反應非常糟糕)。 – jdramaix

回答

0

我會說NATIVE,並利用GWT HTML5拖放支持。您還可以在GWT源代碼samples中設置示例項目。

演示 - http://gwt-cloudtasks.appspot.com/

也可以參考 - Drag and Drop in GWT 2.4

+0

gwtquery的dnd插件提供了很多開箱即用的功能。使用它可能是有用的,以避免重新發明車輪。此外,它支持IE6,IE7,IE9和Opera,其中原生拖放api不可用... – jdramaix

+0

同意。我只談到上述問題的條款,這是一個相當簡單的要求。通過IE8還可以更好地支持IE6,並讓用戶感覺被排除在外。 – SSR