Can I access Classes and Methods decorated with JsType/JsMethod from anywhere within GWT granted I'm inside a JSNI block? Or is it restricted to packages?
I added the -generateJsInteropExports to the run configuration arguments but when I try to create a new object JsOpClass() it tells me $wnd.pdf is undefined. On 11 April 2017 at 11:32, Thomas Broyer <[email protected]> wrote: > > > On Tuesday, April 11, 2017 at 10:43:06 AM UTC+2, Philipp wrote: >> >> If I have a java class and I mark it with @JsType I create a contract >> between Java and Javascript that I can use this class with it's given Java >> name in Javascript - is this correct? >> >> package com.test.workertest.shared; >> >> >> import com.google.gwt.core.shared.GWT; >> >> >> import jsinterop.annotations.*; >> >> >> @JsType(namespace = "test", name = "JsOpClass") >> public class JsOpClass >> { >> >> >> @JsMethod >> public void printStuff() >> { >> GWT.log("asdfasdf"); >> } >> } >> >> >> I would like to be able to create now a JsOpClass object in javascript >> and call printStuff() on this object but I actually don't understand where >> this is meant to be working. If I create for example a web worker which >> would create this class it reports that >> >> com.google.gwt.event.shared.UmbrellaException: Exception caught: ( >> ReferenceError) : testis not defined >> >> which makes sense because my worker.js knows nothing about GWT (would >> this be possible?) >> >> And even if I try it in the GWT HTML file it doesn't seem to know about >> this class and I get a test is not defined error. >> >> How do I actually call exposed classes/methods and from where is it >> possible? >> > > First, you have to pass -generateJsInteropExports to GWT (compiler, > codeserver, devmode), to actually export the JsType to JavaScript. > Then, from the context the GWT app (*.nocache.js) was loaded in, you > should be able to do '(new test.JsOpClass()).printStuff()', *after* your > GWT app has been loaded/started (once onModuleLoad has been called) > > >> Is it only a JSNI substitute >> > > Yes. > > >> (but even then I was not able to call it from a JSNI method). >> > > var o = new $wnd.test.JsOpClass(); > o.printStuff(); > > …but maybe all you miss is the -generateJsInteropExports? > > -- > You received this message because you are subscribed to a topic in the > Google Groups "GWT Users" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/google-web-toolkit/wpcpNJka5qo/unsubscribe. > To unsubscribe from this group and all its topics, 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. > -- 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.
