wiki:GROUP_LINKS_R0

Version 4 (modified by pap, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=GROUP_LINKS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

(Give as much as possible of the needed information for designing and implementing the task in the following sections.)

Overview

  • Links allow the user to add interaction between different pages, page elements or frame contents.
  • When a specific event happens with a source then the corresponding action is taken.
  • The appearance of elements with defined links may be different in different states of the link.
  • LINKS_COMMONS_R0? has more on this issue.
  • Links have effect only when opened in Sophie reader or when in preview mode.
  • Changes done by links are not to be persisted.

Task requirements

  • Define a model for links - how will triggers and actions be represented.
  • Define how links are to be made part of the book and persisted.
  • Define how different styles will be represented.
  • Define a GUI for manipulation of links.
  • Define some basic link triggers and actions.(look at subtasks for details)
  • Links cannot be "executed" while in author mode.
  • Text links(when triggering events are performed on text content) are not mandatory for now.
  • Some additional tasks should be done - the preview mode of the book and the interactivity of scenes.
  • Changes done in preview mode are not persisted.

Task result

The result of this task should be source code.

Implementation idea

  • Define the Link as a list of LinkRules
  • The later are pairs of (Trigger, Action)
  • Actions are a class hierarchy
  • Define an OperationR3 that will handle all the links in the application instance

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

  • Run Sophie2
  • Make a book with two frames
  • Add a link to the first frame that on some action toggles the visibility of the second frame
  • Switch in preview mode
  • Perform the triggering action several times to demonstrate the showing and hiding of the second frame.

Design

  • Make a ResourceRef class.
    • It should hold a reference to a Resource (in the form of its ID).
    • It should have a getResource method that finds the corresponding resource
    • When a resource is cloned all ReourceRefs in it pointing to some owned subresources should change their reference to the cloned resources.

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.)