Chronicle Specification
The Chronicle bean presents a visual representation of a set of
temporally qualified (or comparably qualified) objects and a
developer-defined model of how they should be arranged. It currently
relies on the viper.api.time package, indicating that this package
should perhaps be moved to a neutral location (part of a more generic
utilities
jar that all others in the viper project require).
The Data Model
There are two major elements of the Data model: the graph, and the
interpretation. The TimeLineDataModel
offers access to the
graph, including selecting nodes by label. The interpretation is what is
seen by the bean, through the ChronicleModel
interface.
The ChronicleModel
interface offers a link into the graph,
with the getRoot. It also provides access to the current focus, i.e. the location
of the portal, and the major moment - the location of the tick.
The View
The display uses a Piccolo view, and each timeline (node in the graph) may have its own display. Each timeline is given a rectangular space to develop its view.
Overlays
There are several overlays that may be useful: names for the timelines, markers, the rules, ordering constraint links (a la tqes), and buttons for exploring the graph (like tree expander nodes). There is a marker model included for drawing lines across the timeline that indicate something about a certain moment in time, and allow the user to modify them (for example, the current moment of interest - the tick).
Rules
Markers
User Interaction
The user interacts at two levels: with the view of the chronicle as a whole (including zooming and selecting the major moment) and interacting with the individual time lines or overlay objects.