Saturday, August 1, 2015

Re: GWT native to long conversion

Hello,
in your example you are returning  id (a numeric value) as a string ant this is the origin of the unexpected behavior.
Indeed this works

public final native String  _getIdString()/*-{ return ''+this.id; }-*/;

as well as returning a java numeric value:

public final native int  _getIdInt()/*-{ return this.id; }-*/;


Anyway, in general, is probably not a good idea to use Long for a numeric 'native'  value  
because in js you cannot represent a long number (see f.e. http://stackoverflow.com/questions/17320706/javascript-long-integer).

Hope it helps.
    
      Alberto. 



On Sat, Aug 1, 2015 at 3:38 PM Nikolay Prokofiev <nprokofiev@gmail.com> wrote:

Hi.

I'm trying to convert js native number to GWT Long and send it over gwt-rpc. But I got very weird results..

public class gwtbugEntryPoint implements EntryPoint {    @Override    public void onModuleLoad() {      String data = "{\"type\":\"upd\", \"id\":123}";      ServerEvent serverEvent = JsonUtils.<ServerEvent>safeEval(data);      RootPanel.get().add(new HTML("GWT id="+serverEvent.getId()));    }    }  class ServerEvent extends JavaScriptObject {      protected ServerEvent() {      }    public final native String getType()/*-{ return this.type; }-*/;    public final Long getId(){      String idStr = _getId();      GWT.log("idSTr:" + idStr);      Long id = new Long(idStr);      GWT.log("id:"+id);      return id;  }    public final native String  _getId()/*-{ return this.id; }-*/;  }

console output:

idSTr:123

id:0

Can anyone explain me, how that could happen?

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

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

No comments:

Post a Comment