29 | | ^Describe your design here. |
| 29 | The design does not include UML diagrams since they take time to be generated and this is a redesign task with high priority that needs to be finished as soon as possible. |
| 30 | |
| 31 | The hierarchy of the main window will be the following: |
| 32 | * Interface [source:/branches/second_resource_refactoring/sophie2-platform/modules/org.sophie2.base.layout/src/main/java/org/sophie2/base/layout/model/MainWindow.java MainWindow] (org.sophie2.base.layout) - contains properties for the three flaps, the tab-bar and menu-bar, the [source:/branches/second_resource_refactoring/sophie2-platform/modules/org.sophie2.base.layout/src/main/java/org/sophie2/base/layout/model/MainWindowOptions.java MainWindowOptions], a list of all documents, the current and the desktop document. |
| 33 | * Class [source:/branches/second_resource_refactoring/sophie2-platform/modules/org.sophie2.base.layout/src/main/java/org/sophie2/base/layout/testing/DummyMainWindow.java DummyMainWindow] - a simple RW implementation used for testing purposes. |
| 34 | * Class [source:/branches/second_resource_refactoring/sophie2-platform/modules/org.sophie2.base.layout/src/main/java/org/sophie2/base/layout/impl/DefaultMainWindow.java DefaultMainWindow] - a base class defining most of the properties and useful for testing. |
| 35 | * Class [source:/branches/second_resource_refactoring/sophie2-platform/modules/org.sophie2.main.app.commons/src/main/java/org/sophie2/main/app/commons/app/AppMainWindow.java AppMainWindow] - the main class, providing the AppLocator. |
| 36 | |
| 37 | Now there are no redundant things and the list of all documents plus the current document is kept in a meaningful location. You should change the current document using the static methods present in DefaultMainWindow. |
| 38 | |
| 39 | The DocumentsDesktop and all related classes will be deleted since they are redundant. The MDMainWindow (part of the layout) will contain a property holding a DesktopPane. It is responsibility of the MDDocument window to layout the bottom panel if needed. Therefore all swing things in BookDocView related to that will be moved in the layout. This cleans up the hierarchy of the DocViews which turned out to be another part of this task. Also as part of this the AuthorBookDocView, ReaderBookDocView and DesktopBookDocView classes will be deleted as redundant. |
| 40 | |
| 41 | There are more things that will be done as part of this task: |
| 42 | * Delete the main.layout.vldocking module - it cannot be used due to licence restrictions. Currently it only raises the number of errors in the project (and it is not worth fixing them). |
| 43 | * Delete the main.app.reader module - it contained things related to the views that are now all in main.app.commons. |
| 44 | |
| 45 | The work related to the logics will be done as part of another task. |