|  |  | @ -5,7 +5,7 @@ | 
			
		
	
		
			
				
					|  |  |  | * A dynamic, browser-based visualization library. | 
			
		
	
		
			
				
					|  |  |  | * | 
			
		
	
		
			
				
					|  |  |  | * @version 0.2.0-SNAPSHOT | 
			
		
	
		
			
				
					|  |  |  | * @date    2013-06-20 | 
			
		
	
		
			
				
					|  |  |  | * @date    2013-09-02 | 
			
		
	
		
			
				
					|  |  |  | * | 
			
		
	
		
			
				
					|  |  |  | * @license | 
			
		
	
		
			
				
					|  |  |  | * Copyright (C) 2011-2013 Almende B.V, http://almende.com | 
			
		
	
	
		
			
				
					|  |  | @ -3002,6 +3002,7 @@ function Range(options) { | 
			
		
	
		
			
				
					|  |  |  | this.start = 0; // Number | 
			
		
	
		
			
				
					|  |  |  | this.end = 0;   // Number | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // this.options = options || {}; // TODO | 
			
		
	
		
			
				
					|  |  |  | this.options = { | 
			
		
	
		
			
				
					|  |  |  | min: null, | 
			
		
	
		
			
				
					|  |  |  | max: null, | 
			
		
	
	
		
			
				
					|  |  | @ -3514,6 +3515,22 @@ Range.prototype.move = function(moveFactor) { | 
			
		
	
		
			
				
					|  |  |  | this.end = newEnd; | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  | * Move the range to a new center point | 
			
		
	
		
			
				
					|  |  |  | * @param {Number} moveTo      New center point of the range | 
			
		
	
		
			
				
					|  |  |  | */ | 
			
		
	
		
			
				
					|  |  |  | Range.prototype.moveTo = function(moveTo) { | 
			
		
	
		
			
				
					|  |  |  | var center = (this.start + this.end) / 2; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | var diff = center - moveTo; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // calculate new start and end | 
			
		
	
		
			
				
					|  |  |  | var newStart = this.start - diff; | 
			
		
	
		
			
				
					|  |  |  | var newEnd = this.end - diff; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | this.setRange(newStart, newEnd); | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  | * @constructor Controller | 
			
		
	
		
			
				
					|  |  |  | * | 
			
		
	
	
		
			
				
					|  |  | @ -4875,9 +4892,9 @@ ItemSet.prototype.repaint = function repaint() { | 
			
		
	
		
			
				
					|  |  |  | itemsData = this.itemsData, | 
			
		
	
		
			
				
					|  |  |  | items = this.items, | 
			
		
	
		
			
				
					|  |  |  | dataOptions = { | 
			
		
	
		
			
				
					|  |  |  | fields: [(itemsData && itemsData.fieldId || 'id'), 'start', 'end', 'content', 'type'] | 
			
		
	
		
			
				
					|  |  |  | // TODO: cleanup | 
			
		
	
		
			
				
					|  |  |  | //fields: [(itemsData && itemsData.fieldId || 'id'), 'start', 'end', 'content', 'type'] | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  | // TODO: copy options from the itemset itself? | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // show/hide added/changed/removed items | 
			
		
	
		
			
				
					|  |  |  | Object.keys(queue).forEach(function (id) { | 
			
		
	
	
		
			
				
					|  |  | @ -5942,7 +5959,7 @@ ItemRange.prototype.repaint = function repaint() { | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // update class | 
			
		
	
		
			
				
					|  |  |  | var className = this.data.className ? ('' + this.data.className) : ''; | 
			
		
	
		
			
				
					|  |  |  | var className = this.data.className ? (' ' + this.data.className) : ''; | 
			
		
	
		
			
				
					|  |  |  | if (this.className != className) { | 
			
		
	
		
			
				
					|  |  |  | this.className = className; | 
			
		
	
		
			
				
					|  |  |  | dom.box.className = 'item range' + className; | 
			
		
	
	
		
			
				
					|  |  | @ -6804,6 +6821,14 @@ function Timeline (container, items, options) { | 
			
		
	
		
			
				
					|  |  |  | start: now.clone().add('days', -3).valueOf(), | 
			
		
	
		
			
				
					|  |  |  | end:   now.clone().add('days', 4).valueOf() | 
			
		
	
		
			
				
					|  |  |  | }); | 
			
		
	
		
			
				
					|  |  |  | /* TODO: fix range options | 
			
		
	
		
			
				
					|  |  |  | var rangeOptions = Object.create(this.options); | 
			
		
	
		
			
				
					|  |  |  | this.range = new Range(rangeOptions); | 
			
		
	
		
			
				
					|  |  |  | this.range.setRange( | 
			
		
	
		
			
				
					|  |  |  | now.clone().add('days', -3).valueOf(), | 
			
		
	
		
			
				
					|  |  |  | now.clone().add('days', 4).valueOf() | 
			
		
	
		
			
				
					|  |  |  | ); | 
			
		
	
		
			
				
					|  |  |  | */ | 
			
		
	
		
			
				
					|  |  |  | // TODO: reckon with options moveable and zoomable | 
			
		
	
		
			
				
					|  |  |  | this.range.subscribe(this.rootPanel, 'move', 'horizontal'); | 
			
		
	
		
			
				
					|  |  |  | this.range.subscribe(this.rootPanel, 'zoom', 'horizontal'); | 
			
		
	
	
		
			
				
					|  |  | @ -6850,6 +6875,8 @@ Timeline.prototype.setOptions = function (options) { | 
			
		
	
		
			
				
					|  |  |  | util.extend(this.options, options); | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // TODO: apply range min,max | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | this.controller.reflow(); | 
			
		
	
		
			
				
					|  |  |  | this.controller.repaint(); | 
			
		
	
		
			
				
					|  |  |  | }; | 
			
		
	
	
		
			
				
					|  |  |  |