TASK_INDEX
ITERATION_02
SCENE_VIDEO_POINT_R0
SCENE_AUDIO_POINT_R0
READER_PAGE_WORK_AREA_R0
SCENE_TUTORIAL
SCENE_COMMONS_R0
AUTHOR_PAGE_WORK_AREA_R0
APP_RESOURCE_PREVIEW_POINT_R0
| Ticket | Summary | Owner | Status | Type | Component | Priority | Effort | Importance |
|---|---|---|---|---|---|---|---|---|
| #264 | SCENE_POINT_R0 | peko | closed | planned_task | BASE_SCENE | 3 | 2 | 20 |
| Description |
wiki page: SCENE_POINT_R0 - effort: 2d |
|||||||
| Analysis_owners |
pap,pap |
|||||||
| Analysis_reviewers |
peko, tanya |
|||||||
| Analysis_score |
3.5 |
|||||||
| Design_owners |
pap, peko |
|||||||
| Design_reviewers |
boyan |
|||||||
| Design_score |
2 |
|||||||
| Imp._owners |
pap, peko |
|||||||
| Imp._score |
0 |
|||||||
| Test_score |
0 |
|||||||
Analysis
Overview
This task is related to the interaction between the base scene module and other parts of the application.
Task requirements
- Make a module for the scene library
- There should be an extension point for concrete implementations
- Every concrete implementation should provide an extension to this point.
- The point should be used to make the scene implementation display an object model created by this module.
- There should be extension points for audio and video players.
- These are supposed to be implemented by the concrete scenes.
- It is also possible(although a bit strange) for another bundle to provide an extension to this point.
- Define the interfaces used for communication with other components
- How will the page area instruct the scene to build a model
- How will the scene get information for the elements in the model.
Task result
The result of this task should be source code.
Implementation idea
- Make a sophie module.
- Make classes and/or interfaces for the extension point.
Related
How to demo
- Explain the capabilities of the extension points and interfaces
Design
- Since we need to supply at least two implementations on a scene, we will have an extension point SceneEngine implementations.
- SceneEngine will be an interface with a single method that provides the !JComponent to be drawn in the PageWorkArea:
public interface SceneEngine {
/**
* Transforms the object model given in the scene parameter to a graphical representation.
* @param scene
* The Scene object to be visualized
* @return A swing component that holds the desired graphical representation.
*/
JComponent makeSceneUIComponent(Scene scene);
}
- A BaseSceneModule class should be implemented in the org.sophie2.base.scene module.
- It should provide extension points for the different implementations of the SceneEngine.
Implementation
As described in design =>
Testing
Comments
Log
Analysis: Pap - done(25m)
Review: Peko - 2 - Its is generally OK, but not clear enough for people who have never discussed this. In my opinion things that need more clarity are: where are the extension points and how many they are, who are the extensions and which extension points do they belong to.
Analysis2: Pap - done(15m)
Review: 3.5 by Tanya OK
Design:
Implementation:
Testing:
Comments:
