Version 18 (modified by Tanya, 16 years ago) (diff) |
---|
Analysis
Overview
The layout of Sophie 2.0 consists of a book desktop, menu bar and flaps. Flaps may contain tabs. Tabs may contain palettes.
Base layout is the base library of the layout so that it is independent from realization. It is sort of a layout model.
Task requirements
- Create a SophieModule for the library.
- The module should have extension points for adding different layout elements.
- Flaps
- Tabs
- List palettes
- desktop
- menu bar
- The library should provide a method that creates the layout according to the provided extensions.
- The constructed layout should be displayed by a concrete implementation.
- Create an extension point for the concrete implementation.
- The implementation should take the given structure of the layout(the model)
- It should then display it as a set of GUI elements
Task result
The result of this task should be source code.
Implementation idea
- Allow attachment of flaps tabs and palettes to make the library independent from the concrete layout elements.
- This means to add flaps and their elements dynamically
- Write a class extending SophieModule
- Create an extension point for the implementation. It should have a show (or similar) method.
- Make classes that are independent of the GUI
Related
APP_MAIN_WINDOW_R0
APP_LAYOUT_ALTERNATIVE_R0
APP_LAYOUT_MYDOGGY_R0
How to demo
- Run Sophie 2.0 and show the layout
- remove some of the extensions and show how the layout is changed.
Design
- Create org.sophie2.base.layout module
- Create class MainWindow - Defines the basic elements of a main window (such as the main window of Sophie 2 Author). MainWindow has following properties:
- leftFlap
- rightFlap
- bottomFlap
- menuBar
- bookDesktop
- tabBar
- Create class Flap with following properties
- tabs
- title
- tooltip
- Create class Tab with following properties
- palettes
- parent - Parent Property returning parent flap - left, right or bottom
- Create class Palette with following properties
- abstract Prop swingComponent
- parent - Parent Property returning parent tab - left, right or bottom
- BaseLayout extends SophieModule. BaseLayout provides extension point for LayoutEngine
Implementation
- org.sophie2.base.layout module and org.sophie2.layout.vldocking module created
- modifications made - 429, 430 and 432
Testing
Comments
Log
Analyzing: Pap - done(35m)
Review: 3.5 by Tanya
Design: Tanya
Implementation:
Testing: