Hi,

here it is. Nothing special.

    private native void setEffectAllowed(DataTransfer dataTransfer, String 
effect)
    /*-{
        dataTransfer.effectAllowed = effect;
    }-*/;

    private native void setDropEffect(DataTransfer dataTransfer, String 
effect)
    /*-{
        dataTransfer.dropEffect = effect;
    }-*/;

On Wednesday, July 11, 2012 6:59:55 PM UTC+2, Miltos Miltiadou wrote:
>
> 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<String>
>>>> {
>>>> 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<String> 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/-/M9s-5uaXF9UJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to