Eric, thank you very much for your reply! This definitely clears things up.
Using runAsync with the gadget linker gives you a message saying that you cannot have multiple fragments with that linker. (that seems to be the same message I get when using the XS linker) Maybe I will look into the runAsync support :) But so far I haven't found a lot of resources on how linkers work (and what primary and secondary ones are), so we'll see. And I'll definitely check whether ClientBundles work. Off-Topic (as is most of this post): Wouldn't it be a good idea to bake the selection script into regular HTML host pages, as well? Cheers, Jonas On Feb 10, 11:30 pm, zundel <[email protected]> wrote: > I am the current maintainer of the gwt-gadgets API. > > The primary purpose of the gwt-gadgets linker is simplify wrapping up > your gadget application into a gadget spec, reduces one layer of > script in loading your gadget, and to wrap the gadgets API. You can > also write a gadget by hand-authoring the gadget spec, providing your > own JSNI bindings to the Gadget API and deploy as a regular GWT app. > A disadvantage to this approach is that your gadget spec will load the > selection script, which will then pull in your specific permutation. > In the gadget generated spec, the selection script is baked in to the > gadget spec. > > Just to clear a few things up: > > - The gadget linker does support using different permutations. > - As a primary linker, it can affect some features, I'm not sure > which ones. Some of them are implemented as secondary linkers. I've > never tried to use 'runAsync' with it, for example. > - You are right, there have been few updates to the gadget linker > recently. I last made changes for the last gwt-google-apis release > last year sometime. > - It uses the legacy gadget spec and hasn't been updated for the > Open Social gadget spec. > > I'm hoping we'll have some more work done on the gadget bindings > soon. In the mean time, if there is something someone wants to > contribute, please feel free to discuss or post a patch on the gwt- > google-apis group. > > -Eric. > > On Feb 11, 5:37 pm, Jonas Huckestein <[email protected]> wrote: > > > Wow, I never knew the gadget linker did not support any of these > > features. Is there any reason for that? In that case we could also try > > to improve on the linker :) > > > I didn't know about shindig either, but from the looks of it, we would > > have to build a GWT wrapper around it first. > > > So here's what my final goal and masterplan is: > > - I want to develop wave gadgets using ALL of GWTs features > > - I want to test in hosted mode with multiple versions of the gadget > > running side by side > > - I want to be able to simulate mode changes and participant updates > > all from one interface > > > I thought I was pretty close but the gadget linker not working with > > some of GWTs power features is a real letdown! So does anybody have > > any ideas how to build what I want to build in another way? > > > I didn't understand your point about why you cannot put a web > > application in a gadget container, though. Using JSONP you can develop > > any application you want and connect it to a webservice. There is no > > reason for this to be slower than anything that doesn't run in a > > gadget container. (I don't know what opensocial's makerequest does, > > though). > > > Cheers, Jonas > > > On Feb 10, 8:11 pm, dougx <[email protected]> wrote: > > > > Hm. > > > > I've never been a fan of gadgets. It's always seemed rather contrived > > > to me, to suggest you can have an entire web application all wrapped > > > up in a single xml file. > > > > All of the open social applications you'll find in the real world make > > > use of makeRequest() and server side services; the way you would > > > expect a modern web application to. In fact, I'd argue the huge delay > > > in adding makeRequest() and the REST api is why Hi5 and Myspace > > > applications never took off the way Facebook ones did (traffic too, to > > > be fair). > > > > Still, practically speaking I strongly advise you not to use the > > > gadget linker. It's old, barely supported (seriously, look at the > > > change log...), generates very large files (no cute splitting into per- > > > browser components like the normal linker does), and makes several of > > > the powerful GWT features available; specifically RPC, code splitting, > > > debugging and resource bundles. > > > > Still, you know. It's kind of fun for tooling around and making little > > > bits and pieces with I guess. > > > > Regarding the wave container... I suspect we're re-inventing the > > > wheel; I wonder if it wouldn't be a better plan to implement an > > > independent wave client container on top of shindig (http:// > > > shindig.apache.org/) ... > > > > ~ > > > Doug. > > > > On Feb 11, 10:32 am, Jonas Huckestein <[email protected]> wrote: > > > > > Hi Doug, > > > > > nice, I didn't think of using a normal GWT application as a wave > > > > gadget like that before. But I think that is just a way of manually > > > > doing what the Gadget API for GWT is doing for you. > > > > > What you said about being able to see two different views of the > > > > gadget side by side in local testing is easily accomplished in > > > > WaveConnector (actually it's the primary design goal). We can view two > > > > versions of the Gadget (which is no more than a GWT widget) side by > > > > side in a browser. All we need to do is give them two different > > > > eventBuses (to prevent them from interfering with one another) and > > > > make sure that wave-related events are shared across the buses. (more > > > > generally using singletons in the GWT widget might cause problems). > > > > > I don't think there is need to include a server in order to test the > > > > gadget with more than one participant :) > > > > > We can also add a user interface to add/remove participants, switch > > > > the wave mode etc.. I will try to get this done next week. > > > > > Thanks for your feedback. I'm glad you liked it! > > > > > Cheers, Jonas > > > > > On Feb 10, 6:08 pm, dougx <[email protected]> wrote: > > > > > > Mmm... did you realize you can use a normal GWT application in wave as > > > > > a gadget? > > > > > > All you need is a frame: > > > > > <?xml version="1.0" encoding="UTF-8" ?> > > > > > <Module> > > > > > <ModulePrefs title="State Example" height="220"> > > > > > <Require feature="wave" /> > > > > > </ModulePrefs> > > > > > <Content type="html"> > > > > > <![CDATA[ > > > > > <html> > > > > > <head> > > > > > <meta http-equiv="content-type" content="text/html; > > > > > charset=UTF-8"> > > > > > <script type="text/javascript" src="http://xxx.appspot.com/xxx/ > > > > > xxx.nocache.js"></script> > > > > > <link type="text/css" rel="stylesheet" > > > > > href="http:/xxx.appspot.com/ > > > > > xxx/xxx.css"> > > > > > <title>Jewels</title> > > > > > </head> > > > > > <body> > > > > > </body> > > > > > </html> > > > > > ]]> > > > > > </Content> > > > > > </Module> > > > > > > Then use the cross domain compiler to compile the code (this is > > > > > actually exactly what it's for...): > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > > <!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit > > > > > 1.7.0// > > > > > EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro- > > > > > source/core/src/gwt-module.dtd"> > > > > > <module rename-to='xxx'> > > > > > <inherits name='com.google.gwt.user.User'/> > > > > > <inherits name='com.google.gwt.user.theme.standard.Standard'/> > > > > > <entry-point class='com.hax.wave.xxx.client.XXXWidget'/> > > > > > <add-linker name="xs"/> <-- You _must_ include this step to access > > > > > teh wave API. > > > > > </module> > > > > > > And finally, use JSNI to access the wave api: > > > > > public static native boolean isInWaveContainer() throws Exception /*-{ > > > > > var rtn = false; > > > > > if (($wnd.wave) && ($wnd.wave.isInWaveContainer())) > > > > > rtn = true; > > > > > return(rtn); > > > > > > }-*/; > > > > > > ... > > > > > > So yeah. Might find that helpful. Note that in 2.0 you can't debug > > > > > using the xs linker, so you'll need to comment that line out while > > > > > you're developing your widget, and then put it back when you do a > > > > > deployment build. > > > > > > That wave connector is very cool; nice work! :) > > > > > > Hm... I wonder if we could add an app engine based data store based > > > > > state so just when you're debugging locally you can have two browser > > > > > windows open and it'll treat those as different viewers of the gadget, > > > > > so you can do full testing. That'd involve defining separate servlet > > > > > end points though; perhaps it'd be better as a separate gwt > > > > > application, and you can include it on your testing pages... > > > > > > ~ > > > > > Doug. > > > > > > On Feb 11, 7:42 am, Jonas Huckestein <[email protected]> wrote: > > > > > > > Hi Everybody, > > > > > > > I have just released WaveConnector - a turnkey solution for > > > > > > developing > > > > > > wave gadgets using GWT and testing them in hosted mode. Please head > > > > > > over to my blog > > > > > > athttp://thezukunft.comortheprojectpageathttp://code.google.com/p/wavec.... > > > > > > It's as easy > > > > > > as downloading a zip archive :D > > > > > > > Chris, how di you achieve the 90%? I assume you must also decouple > > > > > > the > > > > > > GWT code from the Gadget/Wave API? I have simply implemented a mock > > > > > > version of the wave API. That way I think I can do all testing > > > > > > locally. > > > > > > > Kayode, WaveConnector is exactly the mock framework (+ some > > > > > > convenience functions) I was talking about :) > > > > > > > Sorry for this shameless selfpromotion on this board but I think > > > > > > this > > > > > > might actually help a lot of people or get them to develop for Wave > > > > > > in > > > > > > the first place. > > > > > > > What do all of you think of a dedicated Wave+GWT group? I asked that > > > > > > question on the GWT groups earlier and people seemed to be > > > > > > interested. > > > > > > > Cheers, Jonas > > > > > > > This is my first ever open source contribution so please give me > > > > > > comments and feedback on my blog or the project page. > > > > > > > On Feb 10, 2:07 am, HaiColon <[email protected]> wrote: > > > > > > > > What I do is I write the gadget in a way that makes it work both > > > > > > > locally (or as a website on a remote server) and then I add a > > > > > > > layer on > > > > > > > top that makes it work with Google Wave. That way I can test 90% > > > > > > > of > > > > > > > the gadget locally, no problem. And for the other 10% I just use > > > > > > > the > > > > > > > debug features of the sandbox Wave client. That has worked good > > > > > > > so far > > > > > > > even for bigger/more involved gadgets and the bonus is that your > > > > > > > gadget then doesn't need to be Wave exclusive. > > > > > > > > If you'd want to use a test-driven > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "Google Wave API" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-wave-api?hl=en.
