Hi, can you post the sample code for setting the effectAllowed and
dropEffect via JSNI?
Thanks in advance.
Miltos
On Friday, June 22, 2012 2:33:07 PM UTC+3, js wrote:
>
> Hi,
>
> actually I have the effectAllowed and dropEffect set via JSNI.
>
> Actually I have already figured out what the problem was: I did not
> setData() on DataTransfer object. As you also suggested. (Yep, asking a
> question helps to figure out the answer :)
> Anyway thanks for your reply.
>
> *TL;TR *Solution is to set any data to DataTransfer object of dragstart
> event. e.g. event.getDataTransfer().setData("text", "anything")
>
>
> On Friday, June 22, 2012 12:58:25 PM UTC+2, Thomas Broyer wrote:
>>
>> To properly initiate a drag, you have to set the effectAllowed.
>> http://dev.w3.org/html5/spec/dnd.html#introduction-7
>> It looks like you'll to use JSNI though, as this property is not exposed
>> by GWT on the DataTransfer object.
>> Or maybe it's just because you didn't call setData() in your Cell
>> (event.getDataTransfer().setData("text", "test"))
>>
>>
>> On Friday, June 22, 2012 12:27:43 PM UTC+2, js wrote:
>>>
>>> Hi,
>>>
>>> I've been having hard time trying to make DataGrid rows sortable with
>>> HTML 5 native drag and drop.
>>> I have custom Cell which sinks drag events (see below). If I drag the
>>> cell dragstart event is fired but visualization of drag operation is not
>>> displayed. Moreover dragover event on other cells in DataGrid is also never
>>> fired, which I think is cause of the missing visualization of drag
>>> operation. It seems like that drag&drop operation is not initialized
>>> properly.
>>>
>>> I've tried to create test Label (see below) for which everything works
>>> OK, i.e. when dragged dragstart is fired (on Label object). When dragged
>>> over Datagrid cells the dragover events are fired on cell's object, even
>>> drop event is properly fired.
>>>
>>> I suspect DataGrid widget that it swallows the event somewhere in it's
>>> onBrowserEvent() but I wasn't able to find the place where it happens.
>>>
>>> Does anybody has an idea what's wrong here or what do I do wrong?
>>>
>>> public class DraggableTextCell extends AbstractCell
>>> {
>>> public DraggableTextCell()
>>> {
>>> super(
>>> "dragstart",
>>> "drag",
>>> "dragover",
>>> "drop"
>>> );
>>> }
>>>
>>> @Override
>>> public void render(
>>> final Context context,
>>> final String value,
>>> final SafeHtmlBuilder sb
>>> )
>>> {
>>> sb.append(mTemplates.textCell(value));
>>> }
>>>
>>> @Override
>>> public void onBrowserEvent(
>>> final Context context,
>>> final Element parent,
>>> final String value,
>>> final NativeEvent event,
>>> final ValueUpdater valueUpdater
>>> )
>>> {
>>> final String eventType = event.getType();
>>> if (eventType.equals("dragstart"))
>>> {
>>> log.info("dragStart");
>>> }
>>> else if (eventType.equals(DragEvent.DRAG.nativeType()))
>>> {
>>> log.info("drag");
>>> }
>>> else if (eventType.equals(DragEvent.DRAG_OVER.nativeType()))
>>> {
>>> log.info("dragOver");
>>> }
>>> else if (eventType.equals(DragEvent.DROP.nativeType()))
>>> {
>>> event.preventDefault();
>>> event.stopPropagation();
>>> log.info("drop");
>>> }
>>> }
>>> }
>>>
>>>
>>> /* Test label */
>>> final Label l = new Label("Draggable");
>>> l.getElement().setDraggable(Element.DRAGGABLE_TRUE);
>>> l.addDragStartHandler(new DragStartHandler() {
>>> @Override
>>> public void onDragStart(final DragStartEvent event)
>>> {
>>> event.setData("text", "test");
>>> }
>>> });
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-web-toolkit/-/k3Zpy8Hl3Z4J.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en.