GWT Portlets is a free open source web framework for building GWT (Google Web Toolkit) applications. It defines a very simple & productive, yet powerful programming model to build good looking, modular GWT applications.
The programming model is somewhat similar to writing JSR168 portlets for a portal server (Liferay, JBoss Portal etc.). The “portal” is your application built using the GWT Portlets framework as a library. Application functionality is developed as loosely coupled Portlets each with an optional server side DataProvider.
Every Portlet knows how to externalize its state into a serializable PortletFactory subclass (momento / DTO / factory pattern) making important functionality possible:
- CRUD operations are handled by a single GWT RPC for all Portlets
- The layout of Portlets on a “page” can be represented as a tree of WidgetFactory’s (an interface implemented by PortletFactory)
- Trees of WidgetFactory’s can be serialized and marshalled to/from XML on the server, to store GUI layouts (or “pages”) in XML page files
Other important features of the framework are listed below:
- Pages can be edited in the browser at runtime (by developers and/or users) using the framework layout editor
- Portlets are positioned absolutely so can use scrolling regions
- Portlets are configurable, indicate when they are busy loading for automatic “loading spinner” display and can be maximized
- Themed widgets including a styled dialog box, a CSS styled button replacement, small toolbuttons and a HTML template driven menu