在GWT2.4中设置拖动图像

在GWT2.4中设置拖动图像,gwt,drag-and-drop,Gwt,Drag And Drop,我需要在CellTable中实现单元格的拖放。以下是我实现的自定义可拖动单元格的示例: public class DraggableCell extends AbstractCell<ProductProxy>{ interface Templates extends SafeHtmlTemplates { @SafeHtmlTemplates.Template("<div draggable=\"true\">{0}</div>") Saf

我需要在
CellTable
中实现单元格的拖放。以下是我实现的自定义可拖动单元格的示例:

public class DraggableCell extends AbstractCell<ProductProxy>{

interface Templates extends SafeHtmlTemplates {
    @SafeHtmlTemplates.Template("<div draggable=\"true\">{0}</div>")
    SafeHtml simpleTextTemplate(String text);
}

protected Templates templates = GWT.create(Templates.class);

public DraggableCell() {
    super("dragstart");
}

@Override
public void render(Context context, ProductProxy value, SafeHtmlBuilder sb){
        sb.append(templates.simpleTextTemplate(value.getName()));
}

@Override
public void onBrowserEvent(Context context, Element parent, 
                           ProductProxy value, NativeEvent event, 
                           ValueUpdater<ProductProxy> valueUpdater) {
    final Integer cursorOffsetX = 0;
    final Integer cursorOffsetY = 0;

    if ("dragstart".equals(event.getType())) {
        // Save the ID of the entity
        DataTransfer dataTransfer = event.getDataTransfer();
        dataTransfer.setData("text", value.getId());

        SafeHtmlBuilder sb = new SafeHtmlBuilder();
        sb.appendEscaped(value.getSn());

        Element element = DOM.createDiv();
        element.setInnerHTML(sb.toSafeHtml().asString());

        // Set the helper image.
        dataTransfer.setDragImage(element, cursorOffsetX, cursorOffsetY);
    }
}

这在Firefox6中运行得很好,但在Chrome(使用最新的稳定版本)中却不太好,所以这可能不是正确的方法。有什么想法吗?谢谢

您可以尝试GWT拖放API。我用过它,它是一个很好的一个,甚至在移动设备

试试这里的演示


它的实现非常简单,到目前为止对我来说没有任何问题

我已经有了一个使用gwtquery dnd插件()的有效解决方案。我试图过渡到本地GWT方法,以减少我的外部依赖性。但不幸的是,对拖放的本地支持缺乏文档记录。
DOM.getElementById("dragHelperPanel").appendChild(element);
// Set the helper image.
dataTransfer.setDragImage(element, cursorOffsetX, cursorOffsetY);