TASK_INDEX
ITERATION_02
UNPLANNED_TEST_TRACKING_MAINTENANCE_R1b/ManualTests
BASE_LAYOUT_R0
GlobalSpecification/Palette
GlobalSpecification/Flap
GlobalSpecification/Tab
GlobalSpecification/Dialog
GLOBAL_SPEC_MANAGING_R3
APP_LAYOUT_MYDOGGY_R0
| Ticket | Summary | Owner | Status | Type | Component | Priority | Effort | Importance |
|---|---|---|---|---|---|---|---|---|
| #392 | APP_LAYOUT_ALTERNATIVE_R0 | meddle | closed | planned_task | APP_PLUGIN | 3 | 1 | 20 |
| description |
wiki page: APP_LAYOUT_ALTERNATIVE_R0 - effort: 1d |
|||||||
| analysis_owners |
pap |
|||||||
| analysis_reviewers |
tanya |
|||||||
| analysis_score |
3 |
|||||||
| design_owners |
tanya, mira |
|||||||
| design_reviewers |
meddle |
|||||||
| design_score |
3 |
|||||||
| implementation_owners |
tanya |
|||||||
| implementation_reviewers |
meddle |
|||||||
| implementation_score |
3 |
|||||||
| test_score |
0 |
|||||||
Analysis
Overview
This is a layout implementation made using an alternative docking library(different from MyDoggy). It is responsible for visualizing the model defined in BASE_LAYOUT.
Task requirements
- Search for an alternative docking library.(one is VLDocking)
- Make a Sophie module
- It should provide an extension to the corresponding extension point of BASE_LAYOUT lib
- It should be able to display the things described in BASE_LAYOUT_R0
- The two layout implementations should be fully replaceable
Task result
The result of this task is source code.
Implementation idea
- Make a class extending SophieModule
- Use available VLDocking code.
Related
BASE_LAYOUT_R0
APP_LAYOUT_MYDOGGY_R0
How to demo
- Run Sophie 2.0 and show the layout
Design
- Create org.sophie2.layout.vldocking module
The new module should depend on org.sophie2.base and org.sophie2.base.layout. It should include all classes related to the concrete VlDocking layout implementation
- Move all existing classes from the messy module which are related to the VlDocking layout implementation in the new module.
- DockableDesktopScroll
- DockableLayoutElement
- Create class LayoutVlDockingModule which extends SophieModule and is responsible for the main window to be shown by VlDocking library.
- Create class VlEngine which implements LayoutEngine interface (the extension point interface) and provides implementation for the two methods:
- show(MainWindow mainWindow)
- hide(MainWindow mainWindow)
- Create class VlMainWindow which has property mainWindow() for the structure representation of the main window and also properties for every element of this structure.
- Create VlFlap class which should extend DockableLayoutElement and override the attach(DockingDesktop desk),detach(DockingDesktop desk),getDesk() and getDockable() methods. It should have the properties:
- flap() used for the Flap structure
- tabViews() used for the list of all tab views for this flap
- desk() used for the docking desktop where the flap is attached to. If you call set it will attach/detach.
- compoundDockable() is the component where the tab views will be attached to.
- Create VlTab class which should extend DockableLayoutElement and override the attach(DockingDesktop desk),detach(DockingDesktop desk),getDesk(), getDockable() and dispose() methods. It should have the properties:
- tab() used for the Tab structure
- parent() referring to the VlFlap which is parent of the VlTab
- paletteViews() used for the list of all palettes in the tab.
- compoundDockable() is the component where the palette views will be attached to.
- Create VlPalette class which should extend DockableLayoutElement and override the attach(DockingDesktop desk),detach(DockingDesktop desk),getDesk() and getDockable() methods. It should have the properties:
- palette() used for the Palette structure (the model)
- dockable() is for the dockable component of the palette which will be attached to the compound dockable of the tab.
* The demo test org.sophie2.layout.vldocking.VlDockingDemo.java tests creation, updating, showing and hiding of VlDockingMainWindow components.
Implementation
- There is a module org.sophie2.layout.vldocking where everything connected with the VlDocking library is.
- Modifications - 429, 431 and 432
Testing
Comments
Log
Analysis: Pap - done(15m)
Review: 3.5 by Tanya - 15min
Design:
Implementation:
Testing:
