wiki:TIMELINES_REDESIGN_R0

Version 39 (modified by todor, 16 years ago) (diff)

--

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

Error: Macro TicketQuery(summary=TIMELINES_REDESIGN_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

Overview

The current model should be reworked to correspond to the new resource model. The current implementation of timelines lacks a couple of things and those need to be added:

  • Support for groups activation.
  • Intro, main and outro parts.
  • Properly manage the time values of each page.

Task requirements

Review the current model design and adapt it to the changes to the resource model.

As timelines don't use resources directly the impact of the change is low. Representation of timelines in the book model will be changed and this impacts user code. There should be means to operate with the new resource keys in a easy and transparent way.

Improvements:

  • Group activation should be made to work like frame activation - i.e. an inactive group's timeline should not be played.
  • Intro, main and outro sections should be added to the current timeline model.
  • In the current implementation the timeline for all pages was played at once and changing the page did not affect it. This should be changed by creating separate timers for each page and starting/stoping them when the page becomes current.

Task result

Prototype, UML class diagram, implementation schedule.

Implementation idea

  • Use the design draft posted by milo in http://pastebin.asteasolutions.net/f444cc8f1.
  • Implement new time values that are shifted by a large value like C = 1015 for the 3 different parts of the timeline, thus intro will be in the interval of [0, C), main - [C, 2C), outro - [2C, 3C).
  • Sample appearance design is shown on the picture below

No image "TimelineRedesignPages.jpg" attached to TIMELINES_REDESIGN_R0

GROUP_TIMELINES_R0

How to demo

Design

TimelineTopView (timeline for pages) should have a start/stop timeline method so each page's timeline will be played only when the page is opened.

Create Channel helper and TimelineOption helper to facilitate the change of the corresponding keys in Element.

Use immutable map with ResourceRef key to store activation channels instead of ImmList. This will speed up the mapping of ResourceRef to ActivationChannel in many places where it is done in a loop for all ActivationChannels.

Group activation:

  • Have TimelineMemberView activationTime property check ancestor activation and if ancestors are inactive return inactive state too.
  • Change GroupView renderFrame to return null if the frame is inactive.

The time values for activation time and local time will be separated by a large enough constant (C = 1015) to isolate the intro, main and outro parts of the timeline. Thus if the length of those sections is changed the corresponding section will retain its entries. Helper methods should be added to convert from real time to channel time and the other way around.

UML diagram:

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

Attachments