Many of us today need to develop a lot of data entry forms for our applications – either for collecting data or displaying it. And most of us do this using either visual tools (like Matisse) or UI languages (like Facelets). But both these approaches are very fiddly: you have to drag-and-drop, or write declarations for, every single widget and label. And that's very error prone because each of those widgets and labels has to exactly match some definition in your back-end: either the names and types in your POJOs, the field lengths in your database schema, or some other place your UI maps back to. Another common approach to developing forms is using a code generator. But these tend to produce very generic-looking UIs (usually CRUD UIs), or work only for a specific set of technologies that the generator targets.
Finally, of course, those back-end business objects evolve over time - new fields get added, field types change, etc – so we're left constantly reworking our UI screens to keep up!
Metawidget is a UI technology focused on enabling you to use your existing back-end technologies (including combinations of technologies) and your existing front-end frameworks (including different UI frameworks and mixing third-party widget libraries) to automate UI generation. It only tries to generate the forms, not your entire UI, so you still use your preferred UI toolkit to get the exact look and feel your users require. And it generates everything at runtime, not statically, so your screens automatically evolve in sync with your business objects.
Come join us for a Campground session to see Metawidget in action, and whether it can ease your UI development pain!Thanks to Richard Kennard for help putting together this session and blog entry!