How it relates to GWT and can I use Hibernate?

Hi,

Can anyone tell me, can this use Hibernate on the server side or EJB3?
What about SEAM Framework?
Can it integrate with these?

How exactly does it relate to GWT, does this product build off GWT and allow me to mix GWT code using this products API? Or does this product have some customer compiler to compile to GWT code? Or… how exactly does it relate to GWT?

Thanks, Philip

Hi!

Hibernate or EJB3 are good tools to use in IT Mill Toolkit development. There is nothing special in using persistency libraries with IT Mill Toolkit, but you may be interested to checkout the tutorial:

http://dev.itmill.com/wiki/Articles/UsingHibernateWithToolkit

In SEAM framework there is a quite tight integration with JSF to build the actual web UI. Integration is probably possible, but I wouldn’t consider it efficient to mix those. But Sharing entities with SEAM application and Toolkit should work fine (in example if you have one part done with SEAM and another that needs more flexible UI done with IT Mill Toolkit).

Coding Toolkit applications is more like coding traditional desktop applications.

The client side engine (running in browser using JS) of Toolkit is built using GWT. So in day to day coding you don’t need to touch a line of GWT code or browser quirks. But when you want to build a custom component that needs some client side tuning you can build it in Java with GWT.

cheers,
matti

Hi Matti

may you please explain how Vaadin uses GWT in its client side engine? According to your comments, you mentioned that “in day to day coding you don’t need to touch a line of GWT code or browser quirks”, but how did that get done? GWT compiles Java into Javascript, so is it because the vaadin’s widgets (built using gwt) is already compiled, so as long as we just extend and use them, there is no need to re-compile them during the development?

Please explain how it works
Thanks!
Jason

Hi Jason,

in short words, there is a terminal client application build with GWT in Vaadin. It works at the client side, receiving data from the server, building an UI according to that data and sending the UI events back to the server. So yes, all widgets are build with GWT (but their client sides only - remember, each widget has two ends - client and server ones).

So basically, if you are fine with the existing Vaading widgets, no GWT programming is required at all, you just code your UI logic at the server side, similar to a Swing application and Vaadin’s client side just display and manage it. You may even create a new compound widgets by combining existing components at the server side - in this case no GWT dealing are required either.

But if you want to create a new widget or change existing one and it is not enough for your change to do it by combining server side logic - yes, then you have to deal with GWT and recompile or create a new widgetset.

Hope this made it a bit cleaner.

Hi Dmitri

Thanks for your explanation.

Are you saying that because the widgets users use are from the server side, so once the data is transferred to the client side, terminal client application will pick up the data and use the “COMPILED” version of GWT widgets to display the data? So since there is no change made to the client, that’s why we can prevent the GWT compiler from executing.

I guess thats my interpretation after reading your explanation. If I’m wrong, please correct me.
Also if it’s possible, may we have more architecture tutorials on how Vaadin uses GWT in its terminal client application? I personally find it very interesting, but just lack of tutorials and explanations.

Thank you!
Sincerely
Jason Yin

I can really recommend the
Book of Vaadin
, it is a really nice read. Among many other things, it inlucludes an explanation of the client-side architecture:
http://vaadin.com/book/-/page/architecture.client-side.html
.

To you other question about compiling: Vaadin comes with pre-compiled set of widgets. These include (among other things) the client-side versions of the server-side UI-components. If you only use the default UI components, or make custom components on the server-side, you never have to recompile the GWT-widgetset. Only when you want to make your own widgets you have to recompile a new widgetset (default + custom) for your application. So yes, the terminal in Vaadin is compiled GWT.

Jason, you’re right. Im also agree with Risto’s suggestion about Book of Vaading, which explains how the things works in more detail.