Analysis
Overview
The user should be able to add actions to the frames or selected text that are evoked via predefine events. Link is an aspect of the frame or text content that includes this actions and events. For some links there could be a separated parameter(for 'Open URL' the user should specified the URL).
Events are:
- Mouse Up
- Mouse Down
- Mouse Double Click
- Mouse Enter(Over)
- Mouse Leave(Out)
- Page Shows
- Frame Shows
- Frame Hidden
Frame's states are:
- up(normal)
- over
- pressed
Text's states are:
- up(normal)
- over
- pressed
- visited
Actions are listed in separated task LINKS_ACTIONS_COMMON_R0
Task requirements
- Create environment that allows the development of all links related task(maybe a different module or step on existing frames infrastructure).
- Create links architecture (it will be nice to have centralized way of control over the links).
- Allow easy way of adding and removing links actions.
Task result
- The result should be code.
Implementation idea
It may be a good idea to create separated module for links. Keep in mind that this module should communicate with other modules (For example the frame view is affected after a link is added, they could also control(play, pause) the timeline etc.). Also create a manager that is responsible for events monitoring, provide easy way to add and remove event listeners from a single place. Delegate the responsibility for states changes, see if it is necessary to do some refactoring over the existing modules(for example the frame view should be responsible for managing different frame's states).
It will be nice if some diagrams are added.
Related
LINKS_MANIPULATION_R0
LINKS_ACTIONS_COMMON_R0
LINKS_ACTIONS_NAVIGATING_R0?
LINKS_ACTIONS_SHOWING_R0
LINKS_ACTIONS_PLAYING_R0
LINKS_ACTIONS_MULTI_PARAMETERS_R0?
LINKS_ACTIONS_ANNOBEAMS_R0?
How to demo
- create a test environment and see if some actions are attached and evoked correctly.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)