Ahhh, I just realized that the new annotations are in a different package, jsinterop.annotations instead of com.google.gwt.core.client.js :)
/Brian Den mandag den 26. oktober 2015 kl. 12.18.21 UTC+1 skrev Brian Pedersen: > > I am using GWT 2.8.0-SNAPSHOT, but the new annotations does not work for > me. > > I tried using @JsType(namespace = "acme", name = "MyJavaScriptObject"), > as described in the new version of the JsInterop document, but apparently > the namespace and name attributes are not there in the jar file. > Same thing with the @JsExport and @JsNamespace, I currently have to use > them or things stop working. > > My gwt-user-2.8.0-SNAPSHOT.jar, which contains the annotations, is from > today. > > This is the pom I am using: > https://github.com/bitwerk/jspoc/blob/master/pom.xml > > /Brian > > Den mandag den 26. oktober 2015 kl. 11.43.32 UTC+1 skrev Thomas Broyer: >> >> You may want to use GWT 2.8.0-SNAPSHOT and the new JsInterop annotations; >> as your usecase maybe is just not supported with the "old" annotations. >> >> On Monday, October 26, 2015 at 11:10:28 AM UTC+1, Brian Pedersen wrote: >>> >>> I have a dispatch method, exposed through JsInterop, which can take >>> various kinds of payloads. >>> >>> Once called from native javascript, I need to cast the payload, but this >>> doesn't quite work as I would like it too. >>> >>> Here is a simplified example. >>> >>> *GWT:* >>> @JsExport >>> @JsType >>> @JsNamespace("foo") >>> public class Dispatcher { >>> public String dispatch(String action, Payload payload){ >>> if("action1".equals(action)) >>> return dispatchWithCast(payload); >>> return "Unknown action: " + action; >>> } >>> public String dispatchWithCast(Payload payload){ >>> ConcretePayload w = (ConcretePayload) payload; >>> return w.foo; >>> } >>> } >>> >>> @JsExport >>> @JsType >>> public class Payload {} >>> >>> @JsExport >>> @JsType >>> public class ConcretePayload extends Payload { >>> public String foo; >>> public int bar; >>> } >>> >>> *Javascript:* >>> var test = new foo.Dispatcher(); >>> alert("Dispatch: " + test.dispatch("action1", {"foo": "a", "bar": 2})); >>> // Uncaught java.lang.ClassCastException >>> >>> Everything works just fine if I replace the Payload type in the >>> Dispatcher class with ConcretePayload, and removes the cast. >>> >>> I guess this this may be beyond the capabilities of the transpiler, I >>> just need to figure out an alternative approach. >>> >>> Any ideas? >>> >>> (By the way, I am using the sso linker.) >>> >> -- 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 http://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/d/optout.
