Supported Technologies

A primary goal of Metawidget is to work with your existing front-end and back-end architecture. Out of the box, Metawidget supports a broad range of both front-end and back-end technologies, and makes it easy to add your own.

Metawidget comes with a native UI component for each supported front-end. This support includes: Android, Google Web Toolkit (including extensions such as ExtGWT), 'plain' HTML 5 (POH5), JavaScript (including extensions such as AngularJS, Bootstrap, JQuery Mobile, JQuery UI and Node.js), Java Server Faces (including extensions such as Facelets, ICEfaces, PrimeFaces, RichFaces and Tomahawk), 'plain' Java Server Pages (including extensions such as DisplayTag), Spring Web MVC, Struts, Swing (including extensions such as Beans Binding, JGoodies, MigLayout and SwingX), SWT and Vaadin.

Metawidget can read domain object information from any combination of supported back-end technologies. This support includes: annotations, Bean Validation (JSR 303), Commons JEXL, Commons Validator, Groovy, Hibernate, Hibernate Validator, Jackson, JavaBeans, Java Persistence Architecture (JPA), Javassist, JBoss Forge, JBoss jBPM, JSON, JSON Schema, OVal, REST, Scala, Seam and the Swing AppFramework.

It is not a goal of Metawidget that all widgets look the same on every front-end framework, or that all back-end technologies conform to some 'lowest common denominator': every technology has different features, and Metawidget takes full advantage of this.

The next chapter presents a tutorial that covers using Metawidget with a variety of front-ends and back-ends. Chapter 2 then follows with a more in-depth architectual overview. Chapters 3-8 explore each supported front-end and back-end technology in detail. Finally, chapters 9 and 10 offer general advice and troubleshooting.