Building User Interfaces for domain objects is time-consuming and error-prone.
Metawidget is a smart widget that populates itself, either statically or at runtime, with UI components to match the properties of your domain objects.
Metawidget does not replace or restrict your existing UI framework. It does not try to 'own' your UI. Its Open Source license allows the use of Metawidget in open source and commercial projects.
Metawidget comes with a UI component native to your existing front-end
Metawidget inspects, either statically or at runtime, your existing back-end architecture
Metawidget creates native UI subcomponents matched to the back-end
At a high level, the goals of Metawidget are:
The download includes documentation and examples for all supported front-ends and back-ends. Click here to download it.
Desktop: Metawidget has a native Swing JComponent and a native SWT Composite
Web: Metawidget has a native component/taglib for each popular Web technology
Mobile: Metawidget has a native Android View
Inspect: all Metawidgets, regardless of which front-end they are native to, use a common inspection process to inspect the existing back-end architecture
Annotations: Metawidget inspects runtime objects for existing annotations, such as JPA and Hibernate Validator annotations
XML: Metawidget inspects existing XML configuration files, such as
struts-config.xml, hibernate.cfg.xml and pageflow.jpdl.xml
Create: the inspection results are used to choose the best UI subcomponents, depending on those available on the native platform. This includes support for third-party component libraries
Web: Metawidget creates native components/taglibs for each popular Web technology, including attaching validators
Desktop: Metawidget creates native Swing JComponents, optionally bound with Beans Binding (JSR 295), and native SWT Controls
Mobile: Metawidget creates native Android Views
Embed: the native UI subcomponents slot into the existing front-end