I have a base class for drag and drop logic which looks something like this 

public abstract class FileDropHandler<FileT> extends InputClientAdapter {

 // here we have some common UI logic and constuctor

 // and the following methods are platform specific:

  protected abstract int length(FileT arrayBuffer);

  protected abstract Async<String> doUpload(FileT arrayBuffer);
  protected abstract void processFile(DropEvent<?> dropEvent, MouseEvent 
mouseEvent);
  protected abstract ObjectFactory[] loadObjects(String file, FileT 
arrayBuffer);

}


So in case of web, FileT is ArrayBuffer which I get form dropEvent.file, which 
is a web File type used in drag events.


public class FileDropHandlerGwt extends FileDropHandler<ArrayBuffer> { ... };


For JVM version I have regular files so I use java.io.File for the template 
argument. 

public class FileDropHandlerJvm extends FileDropHandler<File> { ... };


And this does not work for me. 

As a workaround I currently have a class container for ArrayBuffer like


static class ArrayBufferContainer { public final ArrayBuffer buffer; };


which I use for template argument currently. 


I think that there is a way to use ArrayBuffer directly, But I have not found a 
way to do that.

In order to understand GWT and understand JS-interop I`m asking this here.



Thanks

 -Kirill


вторник, 22 августа 2017 г., 15:13:46 UTC+3 пользователь Vassilis Virvilis 
написал:
>
> Kirill,
>
> I am out of suggestions for but my curiosity drives me crazy.
>
> What are you trying to do in java terms? For example:
>
>
>    - Are you try to return an ArrayBuffer from a function: public <T> T 
>    getBuffer();
>    - Are you try to pass an ArrayBuffer as a parameter: public <T> void 
>    sendBuffer(T buffer);
>    - Are you try to put the ArrayBuffer in a List, Array, Set?
>    - Something else?
>
> I looked but I didn't find in the thread the description of the java 
> caller that throws the exception.
>
>
> On Tue, Aug 22, 2017 at 3:04 PM, Kirill Prazdnikov <[email protected] 
> <javascript:>> wrote:
>
>> Sorry, copypaster error, here is the fixed
>>
>> getType(buffer) = [object ArrayBuffer]
>> typeOf(buffer) = object
>>
>>
>> вторник, 22 августа 2017 г., 15:02:49 UTC+3 пользователь Kirill 
>> Prazdnikov написал:
>>
>>> Here it is:
>>>
>>> getType(buffer) = [object ArrayBuffer]
>>> typeOf(buffer) = [object ArrayBuffer]
>>>
>>> private native String getType(Object x) /*-{
>>>     return Object.prototype.toString.call(x);
>>> }-*/;
>>>
>>> private native String typeOf(Object x) /*-{
>>>     return typeof x;
>>> }-*/;
>>>
>>>
>>>
>>> понедельник, 21 августа 2017 г., 21:47:37 UTC+3 пользователь Tony 
>>> BenBrahim написал:
>>>>
>>>> Take the object you get back from the file reader and run it through 
>>>> the JSNI method below and GWT,log the result. .Let's see if it really 
>>>> is an ArrayBuffer.(I would note the FileReader result is sometimes a 
>>>> String 
>>>> and sometimes an ArrayBuffer).
>>>>
>>>> private native String getType(Object x)/*-{
>>>>     return Object.prototype.toString.call(x);
>>>> }-*/
>>>>
>>>> ​
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to