Abstract
The goal is to finalize the API and settle for naming and feature set. The documentation, both javadoc and otherwise also needs to be improved.
Design
We should finalize the API in terms of finding the right level of abstraction. The API should guide the app developer and not expose internals.
App Framework
The framework is a set of interfaces and abstract utility classes that assist by implementing typical behaviour.
These interfaces and classes are in magnolia-ui-framework.
The key interfaces are: App AppController AppContext SubAppContext.
The implementation AppController and the location handling are in magnolia-ui-admincentral in the not so appropriate package name info.magnolia.ui.admincentral.app.simple.
Action: Find a better package structure
Action: Clean upp AppContext and SubAppContext from methods used internally only.
Content App Framework
Provides a base for a common style of Apps that are used to manage and edit content. They have one or more workbench sub apps and opens item sub apps when editing.
The implementation is in magnolia-ui-admincentral.
The classes are AbstractContentApp AbstractContentSubApp ContentSubAppDescriptor.
Action: ContentSubApp will be renamed to WorkbenchSubApp.
Action: Configuration needs to change so that not everything is configured inside a WorkbenchDefinition because much of what is in there is needed also for item sub apps. This will effect ui-model.
Q: The choose dialog is a mechanism that only works for content apps, shouldn't we have this with any app and just a default implementation for content apps?
Q: An app can currently only have one choose dialog, do we want to support more than one?
Q: Should we rename the main subapp in our apps to workbench. Do we have main hardcoded in the code?
Location handling
DefaultLocation is assumed everywhere, a sign that the interface is too generic making it largely irrelevant.
Apps should be able to use Location objects of their own to make it easier to navigate to a specific place. Instead of constructing a fragment string directly you should be able to use a class such as PagesLocation and pass to it the parameters necessary.
Action: Make the Location interface useful by pulling up from DefaultLocation.
Action: Escape location in URL.
Shell Apps
Q: Do we plan any improvements here?
--> No
Q: Should we move it out of the App Framework and into AdminCentral as its not intended to be extended?
--> Yes
Tasks
Documentation
UML diagrams