Note that there are some explanatory texts on larger screens.

plurals
  1. POSetting a drag image in GWT 2.4
    primarykey
    data
    text
    <p>I need to implement drag and drop for cells in a <code>CellTable</code>. Following the example from the <a href="http://code.google.com/p/google-web-toolkit/source/browse/releases/2.4/samples/mobilewebapp/src/main/java/com/google/gwt/sample/mobilewebapp/client/desktop/DesktopTaskEditView.java" rel="nofollow">MobileWebApp</a> I implemented a custom draggable cell:</p> <pre><code>public class DraggableCell extends AbstractCell&lt;ProductProxy&gt;{ interface Templates extends SafeHtmlTemplates { @SafeHtmlTemplates.Template("&lt;div draggable=\"true\"&gt;{0}&lt;/div&gt;") 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&lt;ProductProxy&gt; 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); } } </code></pre> <p>I use a new element for the drag image (in the MobileWebApp they just use the parent element), but unfortunately no image is displayed during the drag. I thought that maybe the new element needs to be attached to the DOM first, so I created a helperPanel and attached the element to it:</p> <pre><code>DOM.getElementById("dragHelperPanel").appendChild(element); // Set the helper image. dataTransfer.setDragImage(element, cursorOffsetX, cursorOffsetY); </code></pre> <p>This works fine in Firefox 6, but no luck in Chrome (using the latest stable version), so maybe this isn't the right way to do it. Any ideas? Thanks!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload