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.

Reply via email to