gpt4 book ai didi

gwt - 在 GWT 2.4 中设置拖动图像

转载 作者:行者123 更新时间:2023-12-01 06:43:16 27 4
gpt4 key购买 nike

我需要为 CellTable 中的单元格实现拖放.遵循 MobileWebApp 中的示例我实现了一个自定义的可拖动单元格:

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);
}
}

我为拖动图像使用了一个新元素(在 MobileWebApp 中,他们只使用父元素),但不幸的是在拖动过程中没有显示图像。我想可能需要先将新元素附加到 DOM,所以我创建了一个 helperPanel 并将元素附加到它:
DOM.getElementById("dragHelperPanel").appendChild(element);
// Set the helper image.
dataTransfer.setDragImage(element, cursorOffsetX, cursorOffsetY);

这在 Firefox 6 中运行良好,但在 Chrome 中没有运气(使用最新的稳定版本),所以这可能不是正确的方法。有任何想法吗?谢谢!

最佳答案

您可以尝试 GWT 拖放 API。我已经使用过它,即使在移动设备中也很好用。

http://code.google.com/p/gwt-dnd/

在这里尝试演示,

http://allen-sauer.com/com.allen_sauer.gwt.dnd.demo.DragDropDemo/DragDropDemo.html

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

关于gwt - 在 GWT 2.4 中设置拖动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167914/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com