Definitely agree with that statement: JSP files with entire blocks of Java code are usually an unreadable mess.
All of the use-cases I could name are simple lists of actions that happen on elements somewhere within the current control. Some of the actions are more complex, such as GWTQuery-style transitions that require asynchronous callbacks, while others are synchronous CSS style or attribute changes. All of them are triggered by DOM events of some sort: click, mouseover, mouseout, focus, blur. The idea is to allow the large subset of basic functionality to be added at design time without involving developers in any way. I imagine a set of bindings for some basic events, plus a way to add bindings for other transitions specified elsewhere. I'm not proposing a syntax here, just an illustration of the level of control I'd imagine a designer to have: <span ui:mouseover="gq:slideDown(answer, 10); ui:addClass({style.blink}); " ui:mouseout="gq:slideUp(answer, 10);">Peek at the answer</span> <div id="answer"> 42 </div> Matt. On 2010-01-05, at 2:13 PM, Joel Webber wrote: > I've generally been somewhat opposed to the idea of "little languages" > creeping into UiBinder code, because it's much harder to provide tools to > help with the code. But I can also see the utility of something like this. If > we're to address this problem, we should do some thinking about how best to > provide a sensible set of restrictions (i.e. not all of Java) that encourage > people to do more complex things in normal Java code. We should also be > thinking about how best to make this work with whatever "binding" framework > we decide to use. > > On Tue, Jan 5, 2010 at 3:52 PM, Ray Cromwell <cromwell...@gmail.com> wrote: > Great idea, I was thinking of having something like > <ui:query></ui:query> and use $("id") to wire up stuff, but this is > even better since you avoid the lazy() or anonymous inner class. The > alternative is to have a custom parser like > > <gq:query> > $(".actionLearnMore a").click(lazy().as(Effects).slideToggle().end()); > </gq:query> > > This could be simplified further for callback actions: > <gq:click query=".actionLearnMore a"> > as(Effects().slideToggle(); > </gq:action> > > -Ray > > On Tue, Jan 5, 2010 at 12:42 PM, Matt Mastracci <matt...@mastracci.com> wrote: > > Hey all, > > > > I've been playing around with UiBinder, hoping to start replacing a lot of > > our custom templating code with it. One feature that would really improve > > the experience for our designer/developer interface would be inline actions. > > > > A lot of our boilerplate UI event code does one of the of the following: > > > > - hides/shows/toggles another element (ie: expando links) > > - adds/removes/toggers a CSS classname > > - starts an animation > > - changes a rollover image > > > > It would be really useful if there was a way to plug in actions inline, > > something like the following pseudo-gwtquery code: > > > > <span class="actionLearnMore"> > > <a title="Learn more about dots" > > ui:click='${"infoBox"}.as(Effects).slideToggle()'>Learn more</a> > > > > <div id="infoBox"> > > More info... > > </div> > > </span> > > > > I don't know what the ideal syntax would look like, but even something > > trivial would be able to replace 99% of the UI event code we have to write. > > > > Thoughts? > > Matt. > > > > > > -- > > http://groups.google.com/group/Google-Web-Toolkit-Contributors > > > > -- > http://groups.google.com/group/Google-Web-Toolkit-Contributors > > -- > http://groups.google.com/group/Google-Web-Toolkit-Contributors
-- http://groups.google.com/group/Google-Web-Toolkit-Contributors