A timeline contains one or more Bands, which can be panned infinitely by dragging with the mouse pointer, using the mouse scroll-wheel or the keyboard’s arrow buttons. A band can be configured to synchronize with another band such that panning one band also scrolls the other.
Creating your own Timeline
Implementation Details
- an ether, whose sole responsibility is mapping between pixel coordinates and dates/times;
- an ether painter, which paints date/time labels and the background of the band as well as the highlight (the lighter part of the lower band in the first timeline above);
- zero or more decorators, which further decorate the background of the band; and
- an event painter, which paints the events.
The band also takes an event source which provides events to be displayed in that band. Different bands can have different event sources. This flexibility allows for ”’timeline mashups”’, as exemplified here. Various sub-components that do painting take a theme, which stores default visual and behavioral settings.
(via Timeline_Basics - simile-widgets - An introduction to Timeline - Google Code)
3 years ago
