To me the convenience is being able to program to a straight AWT like 
interface. It is just so convenient to be able to do things like: 



myButton = new Button("Click Me", new Button.ClickListener() { 
public void buttonClick(ClickEvent event) { 
myLabel.setValue("You clicked my button"); // simple stuff like this 
dispatcher.runSync("SetPartyRole", [roleTypeId: 'BUTTON_CLICKER']); // or even 
things like this 
} 
}); 


The process of binding these events to URLs to trigger services and worrying 
through AJAX processing just falls away. I could add a dozen buttons to a page 
and concentrate on the logic they trigger instead of a pile of oddly named 
events and url bindings. Sure there is some memory overhead there, sure it has 
state but man does it make some things easier. 


I think your answer (as I've illustrated above) makes perfect sense and you can 
definitely just trigger a service engine from these other frameworks. However, 
I've wondered for a while why we couldn't construct stateful graphs of UI 
objects from the XML widget descriptors and have the event bindings attach 
directly to the widgets. 
----- "David E Jones" wrote: 
> That's a tough one. I just did some research on Vaadin, and in some ways it 
> looks similar to Wicket, and I suppose in some ways similar to JSF as well, 
> though Vaadin appears to be a sort of extension to GWT and the unlike Wicket 
> where the Java code is mostly run on the server (if I understand right) in 
> Vaadin most of the Java code is transformed using GWT and run on the client, 
> turning the client into almost a desktop app that communicates with the 
> server to mostly pass data around. 
> How to get any two technologies like these to work together is a good 
> question, or at least how to get them to work together seamlessly. Say you 
> want to write part of your app in Vaadin and part of it in Wicket... how will 
> you get them to work together well? I think the answer is that you could have 
> them both deployed in the same webapp, and pages written in each could link 
> to each other, but sharing decoration (except by including the same text or 
> using a tool to interpret a template that they can both include) and 
> navigation and such would be a nightmare. 
> In Moqui, like in OFBiz, most of the web UI stuff is based on writing to a 
> writer or stream and being able to assemble various pieces of text to create 
> a single web page. Without getting into lower level code, I looked at each of 
> these three (Vaadin, JSF, and Wicket) and it does not look like they have a 
> way to generate text to be included in a web page, and perhaps worse handling 
> navigation and links is so ingrained in the way the tools are designed that 
> nothing there could be shared (not in ways that I could find, though of 
> course with enough creative coding anything could be done in theory). 
> So, I guess the answer is that just like with OFBiz, with Moqui Framework if 
> you want to use one of those web UI frameworks then use that instead of the 
> Moqui XML Screens/Forms, and just use other parts of the Moqui API through 
> the ExecutionContext that could be inited/destroyed in an event listener 
> instead of the MoquiServlet (since the MoquiServlet wouldn't be used in that 
> case), or if desperate you could use the Moqui class for static init of the 
> ExecutionContextFactory and ExecutionContext. 
> That parts easy, ie use Moqui API for services, entities, and other tools but 
> not for the web UI... trying to merge and share artifacts between these kinds 
> of restrictive UI approaches would be tough. On the other hand, if you can 
> get plain text out of them, you can include that in any Moqui XML Screen. 
> I don't think a better solution to this exists. Personally, I blame JSP and 
> their restrictive nature that has been considered acceptable over the years, 
> and those sorts of restrictions now seem to bleed into all sorts of web UI 
> frameworks. 

-- 
Ean Schuessler, CTO 
e...@brainfood.com 
214-720-0700 x 315 
Brainfood, Inc. 
http://www.brainfood.com 

Reply via email to