Metawidget is proudly: Open Source (OSI) Friend of the JBoss Community Open Invention Network

Frequently Asked Questions - Comparison

There are many great projects that address automatic UI generation, and we are honoured to be counted among them. At the time of writing, we are not aware of any with the same goals as Metawidget:

  1. to create UI widgets by inspecting existing architectures
  2. not to try to 'own' the entire UI, but to focus on creating native sub-widgets for slotting into existing UIs
  3. to perform inspection either statically or at runtime, detecting types and subtypes dynamically

Based on these goals, the table below shows how Metawidget compares to other projects. You can see Metawidget's most unique feature is its integration with existing architectures, so Metawidget will be of most interest if your UI generation requirements are such that:

  • you want to leverage the full ecosystem of frameworks and tools
  • you are targeting multiple platforms
  • you want to avoid vendor lock-in
  • you have unusual or specialized architectural requirements
Project Inspects existing architectures Creates native sub-widgets for slotting into existing UIs Can perform UI generation at runtime
BeanView No, uses its own annotations
Clickframes No No No
CodeSmith Could do, if used carefully No
Eclipse Modeling Framework No, needs a model described in XMI Could do, if used carefully No
eXpressApp Framework No, expects a fixed-set of technologies for its Application Model No No, their Application Model is created statically
Grails Scaffolding No, requires Groovy and a constraints construct No Sort of, but to tweak the output you run grails install-templates or grails generate-views which use static code generation
JMatter No, requires everything to be defined on domain objects No
Merlin No, expects a fixed set of technologies (eg. they deprecated their @Alias annotation in favour of @org.jboss.seam.annotations.Name)
Metawidget
Naked Objects No, requires everything to be defined on domain objects No
OpenXava No, expects a fixed set of technologies (eg. JPA, Hibernate Validator) No
Seam-Gen No, expects a fixed set of technologies (eg. Seam, JPA) No No
Skyway Builder No, expects a fixed set of technologies (eg. Spring) No No
Tapestry BeanEditForm No, expects a fixed set of technologies (eg. Tapestry, Javassist)
UGAT No, expects a fixed set of technologies (eg. Hibernate) No No
Wicket Web Beans No, expects a fixed set of technologies (eg. Wicket, JavaBeans)

This page is meant as a useful comparison - not to bash other projects! If you think any of the above is inaccurate, or know of other projects, please let us know.

Note Metawidget is not an application framework. It does not compete with, say, GWT, JSF, Spring, or any number of other excellent frameworks. Rather, Metawidget uses those frameworks in its goal to address automatic UI generation.