[MGNLUI-666] Split MagnoliaShell in a UI part and a framework part Created: 15/Feb/13  Updated: 20/Feb/13  Resolved: 19/Feb/13

Status: Closed
Project: Magnolia UI
Component/s: None
Affects Version/s: None
Fix Version/s: 5.0

Type: Improvement Priority: Neutral
Reporter: Tobias Mattsson Assignee: Tobias Mattsson
Resolution: Fixed Votes: 0
Labels: apiteam
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
dependency
is depended upon by MGNLDAM-129 Assets app should use Shell interface... Closed
is depended upon by MGNLUI-661 Move View and ViewPort interfaces fro... Closed
is depended upon by MGNLUI-662 Move App Framework (the implementatio... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Date of First Response:

 Description   

The current situation is that we have an interface Shell that is part of ui-framework. Everybody is supposed to be using it to interact with the Shell (or via AppContext). However, the implementation of the interface is a base class MagnoliaShellBase, which is a vaadin component, and a sub class MagnoliaShell in admincentral. It has not been possible to extend the Shell interface with everything that it needs to provide, like dialogs, because that would have introduced circular dependencies. The core of the problem is that the UI part of it should be a component in its own, not something you inherit from, thereby cutting the dependency between ui-common-widgets and ui-framework.

To do this we need to:

  • Make MagnoliaShellBase not abstract.
  • Add a Listener interface in MagnoliaShellBase
  • Make MagnoliaShell install a listener in MagnoliaShellBase
  • Make MagnoliaShell delegate to MagnoliaShellBase
  • Rename MagnoliaShell to ShellImpl
  • Rename MagnoliaShellBase should to MagnoliaShell

The problematic dependency is illustrated here: http://wiki.magnolia-cms.com/display/DEV/Concept+-+Alternative+ui-project+organisation



 Comments   
Comment by Tobias Mattsson [ 18/Feb/13 ]

More steps to follow:

info.magnolia.ui.admincentral.ShellImpl should be moved to info.magnolia.ui.framework.shell.ShellImpl

It is however not possible to move ShellImpl because of its dependency on BaseDialogPresenter.

Comment by Tobias Mattsson [ 20/Feb/13 ]

I used the wrong ticket for one of the commits: acf0e473ecde176350d4f1d30394504d42a9791e
https://git.magnolia-cms.com/gitweb/?p=magnolia_ui.git;a=commit;h=acf0e473ecde176350d4f1d30394504d42a9791e

Comment by Aleksandr Pchelintcev [ 20/Feb/13 ]

I had an idea that maybe a Component part could be named as MagnoliaShellUI by probably it is not the best way to go as in Vaadin7 UI is a core class representing the root of the app.

Generated at Mon Feb 12 08:39:05 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.