Quick Start

Getting Started
Core FAQ
Licensing FAQ

Frequently Asked Questions

What is Metawidget?

Metawidget is an object/user interface mapping tool. The term object/user interface mapping (OIM) refers to the technique of inspecting objects, at runtime, and creating User Interface (UI) widgets.

As much as possible, Metawidget does this without introducing new technologies. Metawidget inspects an application's existing back-end architecture and creates widgets native to its existing front-end framework.

Who makes Metawidget?

Metawidget is an Open Source project licensed under the LGPL. It is developed by the community. It was started by Richard Kennard of Kennard Consulting.

What are the goals of Metawidget?

Metawidget continues the trend in recent years toward more POJO-centric development. This trend allows developers to rely on 'sensible defaults', writing as little 'boilerplate code' as possible. The Goals Of Metawidget are:

  1. to create UI widgets by inspecting existing back-end 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 at runtime, detecting types and subtypes dynamically

Note it is not a goal of Metawidget that the widgets look the same on every UI framework: every UI has different features, and Metawidget takes advantage of this.

What are Metawidget's system requirements?

Metawidget requires at least J2SE 1.4, and varies depending on which optional modules you use.

Its annotation support requires at least Java SE 5. Its javax.swing.GroupLayout support requires at least Java SE 6.

Why is it called Metawidget?

The name has two meanings:

Why is (some feature) of Metawidget implemented the way it is?

See the developer blogs for insights into, and to provide feedback on, Metawidget's development.

Who uses Metawidget?

As of v0.55, both the Java Server Faces Metawidget and the Swing Metawidget are deployed in production systems.

Is Metawidget (yet) another Web application framework?

No. Metawidget uses existing Web application frameworks, it does not compete with them.

How does Metawidget compare to Swing/Hibernate/(some other framework)?

Metawidget uses other frameworks, it does not compete with them.

Who are Metawidget's competitors?

There are many great projects that address automatic UI generation. However, we are not aware of any with the same goals as Metawidget:

Project Differences to Metawidget
BeanView Does not share goal 1: inspect existing back-end technologies (eg. introduces its own annotations)
Grails Does not share goal 1: inspect existing back-end technologies (eg. requires Groovy and a constraints construct). Only shares goal 3 to a point: to tweak the output you run grails install-templates or grails generate-views which use static code generation
JMatter Does not share goal 2: create native sub-widgets rather than 'owning' the entire UI
Merlin Does not share goal 1: inspect existing back-end technologies using pluggable inspectors (eg. it expects a fixed-set of back-end technologies, for example they deprecated their @Alias annotation in favour of @org.jboss.seam.annotations.Name)
Naked Objects Does not share goal 2: create native sub-widgets rather than 'owning' the entire UI
OpenXava Does not share goal 2: create native sub-widgets rather than 'owning' the entire UI
Seam-Gen Does not share goal 3: perform runtime UI generation, as opposed to static code generation
Wicket Web Beans Does not share goal 2: slot into existing UIs (eg. Wicket only)

Is an OIM like an ORM?

Object Relational Mapping (ORM) technologies, such as Hibernate, are concerned with the back-end: mapping an Object (the O in ORM) to a Relational Database (the R in ORM). Object Interface Mapping (OIM) technologies, such as Metawidget, are concerned with the front-end: mapping an Object (the O in OIM) to a User Interface framework (the I in OIM).

OIMs and ORMs are complementary and meet in the middle: they share the same O. By using an OIM in conjunction with an ORM, developers can significantly reduce the amount of code required for an application.

Is Metawidget mature?

As of v0.55, Metawidget has good test coverage, but is not mature. Please help us as we work towards a v1.0 release!

Metawidget integrates with: Java Enterprise Edition Android Google Web Toolkit Groovy Hibernate Java Server Faces Spring Struts Swing
Metawidget is proudly: Open Source (OSI) Hosted on SourceForge.net
Artwork by Susie Walker Design
Template by Free CSS Templates
Additional artwork by Visual Pharm
Valid XHTML 1.0 Transitional
All trademarks are the property of their respective owners