Timeline UnderstandingInitialization
From SIMILE Widgets
Understanding Initialization
Timeline.createBandInfo() fills in default settings for constructing a band in a timeline. Defaults can be changed using params. What Timeline.createBandInfo() does is something like this (in pseudo-code):
Timeline.createBandInfo = function(params) {
return {
width: params.width,
eventSource: params.eventSource, //(or null by default)
timeZone: params.timeZone, //offset from GMT (default is 0)
ether: new Timeline.LinearEther({
interval: f(params.intervalUnit), //the number of milliseconds in params.intervalUnit
pixelsPerInterval: params.intervalPixels,
centersOn: params.date //or the current date by defaul
}),
etherPainter: new Timeline.GregorianEtherPainter({
unit: params.intervalUnit,
theme: params.theme, //or the default theme
}),
eventPainter: new Timeline.DurationEventPainter({
showText: params.showEventText, //or true by default
theme: params.theme, //or the default theme...same theme above
trackHeight: params.trackHeight, //orr the default track height in the theme
trackGap: params.trackHeight, //or the default track gap in the theme
layout: new Timeline.StaticTrackBasedLayout({
eventSource: //same as the same eventSource above
ether: //same ether above
showText: //same showText value above
theme: //same theme above
})
})
}
};
In other words, Timeline.createBandInfo() takes an object whose fields store initialization settings, and returns yet another object whose fields store initialization settings that Timeline.create() can understand.
Timeline.createBandInfo() does the work of routing each initialization setting that you give it to the appropriate place(s). For example, params.intervalUnit is referenced twice above, once to construct an ether and once to construct an ether painter. Whatever default setting that Timeline.createBandInfo() doesn't provide is provided by the theme.

