2011-11-08 33 views
1

我想拖放一個單元格在GWT中,並使用dataTransfer.setDragImage()自定義拖動圖像。 我的形象是一個ImageResource這裏就是我:如何使用dataTransfer.setDragImage()在拖放過程中顯示ImageResource?

這是我如何構造我的「可拖動單元格」

public CheckBoxDragCell(boolean dependsOnSelection, boolean handlesSelection,ImageResource icon) { 
      this(dependsOnSelection,handlesSelection); 
      this.icon = AbstractImagePrototype.create(icon); 
    } 

這裏是事件處理程序的阻力:

@Override 
    public void onBrowserEvent(Context context, Element parent, Boolean value, 
     NativeEvent event, ValueUpdater<Boolean> valueUpdater) { 
    String type = event.getType(); 

    boolean enterPressed = "keydown".equals(type) && event.getKeyCode() == KeyCodes.KEY_ENTER; 

    if ("dragstart".equals(type)){ 
     DataTransfer dataTransfer = event.getDataTransfer(); 
     dataTransfer.setData("text", String.valueOf(context.getIndex())); 

     if (icon != null){ 
      Image image = icon.createImage(); 
      image.setVisible(true); 
      dataTransfer.setDragImage(ImageElement.as(image.getElement()), 25, 15); 
     } 

但不知何故,圖像從來沒有出現。爲了進行調試,我創建了一個對話框,並在調用eventHandler時顯示圖像,並確保它顯示在那裏...但是當我調用dataTransfer.setDragImage(....)函數時不會顯示圖像。 任何幫助將非常感激。

回答

0

在這種情況下,它可能是一個瀏覽器支持的問題?

我已經試過這HTML5本地拖放演示:http://html5doctor.com/native-drag-and-drop/

它的自定義拖動圖像部分並沒有爲我工作器(Chrome 17.0.932.0 DEV-M)。

+0

拖放工作對我來說......只是我無法自定義鬼影圖片 –

+0

@daghan這就是我所說的。它可能不被支持。在上面的鏈接中,幽靈圖像演示是否適合你? – Strelok

2

圖像在第一種情況下未顯示的原因是因爲ImageElement未添加到DOM中。

嘗試添加ImageElement.as(image.getElement())到DOM,然後它會顯示。

相關問題