Parent concept page describes how we should reorganize the widgetset to make it configurable and open for extension. This page highlights the concrete implementation choices (e.g. naming, packaging) that are made to fulfill the concept.
Configuration
New config nodes
Node name | Value |
---|---|
modules | |
ui-admincentral | |
config | |
widgetset | |
name | info.magnolia.ui.vaadin.gwt.MagnoliaWidgetSet |
theme | |
name | admincentral |
New definitions
- info.magnolia.ui.api.vaadin
WidgetsetDefinition
ThemeDefinition
ConfiguredWidgetsetDefinition
ConfiguredThemeDefinition
New class
- info.magnolia.ui.admincentral
AdmincentralUIProvider
Widgetset structure
git repo | groupId | artifactId | Widgetset name (.gwt.xml) | gwt:compiled | comments | |
---|---|---|---|---|---|---|
EE | ee-bundle | info.magnolia.eebundle | magnolia-enterprise-bundle-widgetset | info.magnolia.eebundle.MagnoliaEnterpriseBundleWidgetSet | check for 5.1 EE | |
enterprise / content-dependencies | info.magnolia.dependencies | magnolia-content-dependencies-widgetset | info.magnolia.dependencies.ContentDependenciesWidgetSet | just here as a ee module example | ||
CE | ce-bundle | info.magnolia.bundle | magnolia-bundle-widgetset | info.magnolia.bundle.MagnoliaBundleWidgetSet | replaces MagnoliaWidgetSet (5.0) - integration and compiler options | |
modules / dam | info.magnolia.dam | magnolia-dam-widgetset | info.magnolia.dam.DamWidgetSet | just here as a ce module example | ||
magnolia_ui / pages | info.magnolia.pages | magnolia-pages-widgetset | info.magnolia.pages.PagesWidgetSet | replaces PageEditorWidgetSet (5.0) | ||
UI | magnolia_ui | info.magnolia.ui | magnolia-ui-widgetset | info.magnolia.ui.MagnoliaUiWidgetSet | replaces CommonWidgetSet (5.0) | |
magnolia_ui / magnolia-ui-widgetset | info.magnolia.ui.vaadin | magnolia-ui-vaadin-table | info.magnolia.ui.vaadin.TableWidgetSet | extracted from CommonWidgetSet (5.0) | ||
magnolia_ui / magnolia-ui-widgetset | info.magnolia.ui.vaadin | magnolia-ui-vaadin-contextmenu | info.magnolia.ui.vaadin.ContextMenuWidgetSet | extracted from CommonWidgetSet (5.0) | ||
magnolia_ui / magnolia-ui-actionbar | info.magnolia.ui.actionbar | magnolia-ui-actionbar-widgetset | info.magnolia.ui.actionbar.ActionBarWidgetSet | just here as examples for further ui modularization | ||
magnolia_ui / magnolia-ui-mediaeditor | info.magnolia.ui.mediaeditor | magnolia-ui-mediaeditor-widgetset | info.magnolia.ui.mediaeditor.MediaEditorWidgetSet | |||
RAW | magnolia-vaadin-widgetset | info.magnolia.vaadin.widgetset | magnolia-vaadin-widgetset | info.magnolia.vaadin.MagnoliaWidgetSet | M5-agnostic vaadin components - not for now |
Theme structure
-
Implementation details
- Changing widgetset/theme config currently requires a server restart
- most likely AdmincentralUIProvider injected instance in servlet is not refreshed when module configuration changes
- don't store definition references, only module reference and query dynamically for configured definitions
- Is configuration really where we want widgetset config to be?
- Since developers should now use their widgetset extending ours
- Currently they would startup, change widgetset name in config, then restart
- e.g. magnolia / project.properties, module descriptors?
- ee-bundle might need to configure default widgetset differently too
Review 2013.08.29
- We do the widgetset-at-bundle-level step
- We also do the renames/reorganizes in the UI
- Speaks for a magnolia property
- Auto-discovery?
- Should we do it as a guideline?
- It's helpful for others
- or through an archetype?
- Performance (hudson)
- full-fledged gwt compilation in bundle build
- we split this out
- depends on ui, modules
- is depended upon by bundle
- we use profiles, or subset of the reactor
- Rescue UI when admincentral config is messed up (widgetset, security) ?
- We have yet to decide what we do for 5.1/5.2
- it's better if it's one significant step, but it may well require too much time vs. 5.1 stories
- widgetset/theme in configuration is in master but was not released (except in 5.1-alpha1)
- We now want to use magnolia properties instead
- We now want to use magnolia properties instead
- My proposal
- We may do as little as changing this configuration for 5.1, so that we don't ship something we know we will remove
- everything else is for 5.2 then