This page describes the function of a widgetset, widgetset types provided by Magnolia and how you can use a custom widgetset.
A Vaadin WidgetSet is a GWT module that ties together client side component implementations used by a particular Vaadin application. It is the part of the client side terminal that creates components from UIDL messages generated by the server side. (WidgetSet – Vaadin)
Things important to know about widgetsets:
- In any GWT or Vaadin application, there can be only one widgetset. Since Magnolia's admin UI is a Vaadin application, Magnolia can have only one widgetset. Therefore, it should inherit all the widgetsets you intend to use.
- A custom widgetset for Magnolia must always inherit Magnolia's default
info.magnolia.widgetset.MagnoliaWidgetSetor any other widgetset which inherits from it.
- A widgetset must always be GWT-compiled before you run your Web application, and it has to be recompiled every time the client-side code changes or when you add a new Vaadin add-on.
Magnolia provides the following widgetsets:
|Identifier||Description||Provided by the module|
|Default Magnolia widgetset for CE bundles||magnolia-vaadin-widgetset|
|Default Magnolia widgetset for EE bundles||magnolia-vaadin-widgetset-pro|
In contrast to
MagnoliaProWidgetSet contains the client widget code for the personalization module. If you do not rely on this module, you can use
Setting the widgetset property
The widgetset you intend to use has to be defined per webapp with the
magnolia.ui.vaadin.widgetset property. Change the following entry in
For CE bundles:
For EE bundles:
Preconfigured Magnolia webapps and bundles typically already come with a proper widgetset configuration.
Using a custom widgetset
To add custom widgets or Vaadin addons to your Magnolia app, you need to provide a new widgetset. This means that you need to compile the new widgetset and configure Magnolia to use it.
Your custom widgetset must inherit from a Magnolia's widgetset.
Once your widgetset has been compiled, tell Magnolia to use it by setting the
magnolia.ui.vaadin.widgetset property accordingly. The expected value is a widgetset-qualified name in the format that Vaadin expects, without the
.gwt.xml extension, for example
A recommended setup
- The default Magnolia Vaadin widgetset is extracted out of the Magnolia UI project to its own module.
- This module is brought in as a dependency of the bundle.
There are two key reasons for doing that:
- Any of our Magnolia modules may bring its own client-side code or additional Vaadin add-ons.
- We isolate the resource-intensive GWT compilation to a dedicated maven module, hence no longer affecting build time and stability of the Java code base.
- The resulting module only consists of two files: the widgetset.gwt.xml file and the maven pom — with appropriate settings for the vaadin-maven-plugin.
What this means for your project is that you can leverage the exact same approach to integrate Magnolia's default widgetset with your custom client-side widgets or Vaadin add-ons. This helps keep your dependencies and client-side code in the modules where they belong, while giving you more flexibility to integrate third-party modules along the way.