Page History
...
Currently the AppFrameView is created and managed by the AppContext. We are using abstract classes where not really necessary. So we end up creating App classes extending AbstractApp, only because the class is abstract
we can simplify the AppContext and remove the dependency on AppFrameView.
Inject AppView (interface of AppFrameView) into BaseApp. make start return AppView.
...
Where is mapping between MagnoliaTab and SubApp? -> AppFrameView implementation or SubAppView? Reintroduce tab to tabId in MagnoliaShell. Use com.vaadin.server.KeyMapper
MagnoliaTab is SubAppView !
We are using abstract classes where not really necessary. So we end up creating App classes extending AbstractApp, only because the class is abstract.
-> Use concrete implementations for AbstractApp, AbstractContentApp, AbstractItemApp. This will allow us to get rid of most classes implementing those classes. We can inject the AppContext and App(Frame)View directly into the AbstractApp instead of passing it from the AppClass.we can simplify the AppContext and remove the dependency on AppFrameView.
Rename AbstractApp to BaseApp.
...