Wednesday, March 3, 2021

Re: Can I create GWT Widget in javascript code?

Expose GWT widget also work same way?
 Using your project pom.xml can''t package , like this:
" 404 
在2021年3月3日星期三 UTC+8 下午4:07:15<> 写道:
OK, it's working now with: setTimeout

Now you can see in the example how to call your Widget from JavaScript... Just simple as creating that object and use as you wish...

var calculator = new Calculator("From JS withwait");

Lofi schrieb am Dienstag, 2. März 2021 um 20:18:10 UTC+1:
I build a simple example:

I also found some answer in StackOverflow but it's all Java based (see the README above). What I understood is that the Widget should be called from a pure JS (VueJS or whatever JS).
I use ScriptInjector to inject testcalculator-nowait.js

If I tried to use this JS testcalculator-withwait.js directly in index.html it seems that it cannot find the Calculator class. I have the feeling that the Calculator JsInterop hasn't been loaded but the testcalculator-withwait.js already running. Using ScriptInjector makes this possible (testcalculator-nowait.js) but I don't think, that this was the question.

Maybe Thomas could check, I'm not sure how to "wait" in JS until the JsInterop class is loaded... 

Lofi schrieb am Dienstag, 2. März 2021 um 19:36:47 UTC+1:
I would:
  1. create a new *.gwt.xml with a new EntryPoint that won't launch the GWT app but instead expose a function (using JsInterop) to "run" your module
  2. that function would use receive an element ID and use RootPanel.get(id) to put the GWT UI inside (that's not the only way, but definitely the easiest); ideally it would also return a function that you would call from Vue at "unmount", but could instead return the RootPanel so it could be passed to another function exposed by the module's onModuleLoad.
  3. the "unmount" callback would simply call RootPanel.detachNow(rootPanel)
That way, the Vue app could actually load the GWT module immediately, but then only use it by calling its exposed function when it needs to display the GWT module; and when it no longer needs it, it should properly "detach" it.

On Tuesday, March 2, 2021 at 5:09:24 AM UTC+1 wrote:
For example:
 I have a vue app and classic gwt application,  The gwt application have lot of module .
but I only want to one module (eg: A query UI) integration  to my vue app using js
How can I done this?

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
To view this discussion on the web visit

No comments:

Post a Comment