40 | | 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. |
41 | | |
42 | | Create Channel helper and TimelineOption helper to facilitate the change of the corresponding keys in Element. |
43 | | |
44 | | 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. |
45 | | |
46 | | Group activation: |
47 | | |
48 | | * Have TimelineMemberView activationTime property check ancestor activation and if ancestors are inactive return inactive state too. |
49 | | * Change GroupView renderFrame to return null if the frame is inactive. |
50 | | |
51 | | The intro, main and outro sections will exist in each timeline, for instance initially the timeline for the first page is displayed and its channels will be divided into three parts (bearing different colors). When the timeline for a frame is opened the three sections will be displayed for that frame over all of its channels. There will be controls for setting the length of the intro and outro and those should not be allowed to be greater than 60 seconds.[[BR]] |
52 | | The time values for activation time and local time will be separated by a large enough constant (C = 10^15^) 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. |
53 | | |
| 40 | Subtasks: |
| 41 | * Timeline for each page. |
| 42 | * 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. |
| 43 | * Helpers. |
| 44 | * Create Channel helper and TimelineOption helper to facilitate the change of the corresponding keys in Element. |
| 45 | * Group activation. |
| 46 | * Have TimelineMemberView activationTime property check ancestor activation and if ancestors are inactive return inactive state too. |
| 47 | * Change GroupView renderFrame to return null if the frame is inactive. |
| 48 | * Intro, main, outro. |
| 49 | * The intro, main and outro sections will exist in each timeline, for instance initially the timeline for the first page is displayed and its channels will be divided into three parts (bearing different colors). When the timeline for a frame is opened the three sections will be displayed for that frame over all of its channels. There will be controls for setting the length of the intro and outro and those should not be allowed to be greater than 60 seconds.[[BR]] |
| 50 | * The time values for activation time and local time will be separated by a large enough constant (C = 10^15^) 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. |
| 51 | * Palette - mostly compacting the view. |
| 52 | * The title of the timeline will be moved to the left of the controls |
| 53 | * The palette slider will be removed and replaced by a drawn play head. |
| 54 | * Channels will be shrunk to half size and expanded upon selection. |
| 55 | * A time ruler will be drawn on the channel directly below the selected channel, for the last channel there will be an empty channel panel below. |
| 56 | * Channels will be resized when the application is resized. |