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

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, either statically or 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.

See also the Elevator Pitch Cartoon.

What are the goals of Metawidget?

Metawidget continues the trend in recent years towards 'sensible defaults', writing as little 'boilerplate code' as possible. The Goals Of Metawidget are:

  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

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.

See also the motivation FAQ.

Who uses Metawidget?

The AngularJS, GWT, HTML 5, Java Server Faces, JavaScript, JQuery Mobile, Spring, Struts and Swing Metawidgets are all known to be deployed in production systems. Large clients include Red Hat, Telefonica and SCISYS. For more information on organizations deploying Metawidget, see our white papers.

Why is it called Metawidget?

The name has two meanings:

  • a widget is the technical term for a Graphical User Interface component (such as a text box). A 'meta' widget is therefore a widget composed of other widgets.
  • Metawidget is a widget built by metadata gathered from the back-end.

Who makes Metawidget?

Metawidget is an Open Source project dual licensed under both the LGPL and a commercial license. It is developed by the community. It was founded by Richard Kennard of Kennard Consulting.

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.

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/AngularJS/(some other framework)?

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

Who are Metawidget's competitors?

Please see the comparison FAQ.

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.

Why does Metawidget support so many different technologies?

Supporting so many different front-end and back-end technologies carries with it the risk of spreading Metawidget too thin. However, it's important because:

  • The more technologies Metawidget supports, the more useful it is to more developers - increasing its potential user base.
  • Metawidget is designed to be extensible, and the best way to validate extensibility is to extend it! Integrating lots of different technologies helps mature the architecture and make it as flexible as possible.
  • Metawidget is pluggable in many different dimensions, allowing a large amount of shared code between the supported technologies. Often, adding a new technology is less code than it may seem.