I had a similar problem with DataTables requiring a String[] argument. The
one generated from java had some hidden fields that DataTables choke on. I
ended up creating a JsString type that casts from/to String, but at the
time I didn't know or didn't exist the gwt-interop-utils.
In your case however I would suggest the following:
*** NOTE: int and int[] are not represented in javascript *** and you may
have a problem during casting in/out. I would suggest using double if/when
you hit the problems. Traceback and browser's debugger is invaluable.
@JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object")
public class NodeSet {
public int id;
public int x; <-- conside use of double
public int y;
public int[] nodes;
@JsOverlay
public static NodeSet create(int id, int x, int y, int[] nodes) {
final NodeSet ns = new NodeSet();
ns.id = id;
ns.x = x;
ns.y = y;
ns.nodes = nodes;
return ns;
}
}
On Mon, Dec 18, 2017 at 8:18 PM, cesar paulo alves <[email protected]>
wrote:
> Hello guys, so I'm getting crazy with this.
>
> I need to inject a java array inside a javascript library.
>
> The problem is that the Js library will iterate over an integer array, and
> if the element is not an integer it exits the function.
> When I create the integer array and pass it to plain javascript array, for
> some reason it carries garbage inside, I already tried everything with no
> success.
>
> So this is my java nodeset (https://pastebin.com/AdJqj80p)
>
>
> <https://lh3.googleusercontent.com/-AwVwbsEDgEo/WjgDruEwP_I/AAAAAAAACh4/PRODa3vy6Nsb3stgjMkxrhLEmLIOu7tkQCLcBGAs/s1600/Screenshot_20171218_180625.png>
>
> I'm using the gwt-interop-utils
> <https://github.com/GWTReact/gwt-interop-utils> -> https
> ://github.com/GWTReact/gwt-interop-utils/blob/master/src/
> gwt/interop/utils/client/plainobjects/JsPlainObj.java
>
>
> And when I inspect the javascript object in the browser you can see it has
> lots of garbage, and I cant clean it. See the nodes array I have
> (_clazz_0_g$,__elementTypeCategory$,_elementTypeId$"......).
>
>
> <https://lh3.googleusercontent.com/-7LN-93NvDAc/WjgEg4wts7I/AAAAAAAACiE/AJ5jJO9hy7If7kS7EGb0e5_AdV170DsWACLcBGAs/s1600/Screenshot_20171218_180917.png>
>
>
> And when I do the same with Js I don't have this garbage (obvious).
>
>
> <https://lh3.googleusercontent.com/-C1POb2aM3EA/WjgFUx4qlSI/AAAAAAAACiQ/5t1bqZCIAY4pXAbsakpmxHGowXG1eVBngCLcBGAs/s1600/Screenshot_20171218_181337.png>
>
>
> I already used the JsArray and everything, but no luck =/.
>
>
> Do you have any Idea how to have a plain javascript array with jsInterop?
>
>
> Thanks a lot.
>
>
>
>
>
> --
> 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.
>
--
Vassilis Virvilis
--
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.