Index: src/webapp/api/scripts/views/timeline-view.js
===================================================================
--- src/webapp/api/scripts/views/timeline-view.js	(revision 6922)
+++ src/webapp/api/scripts/views/timeline-view.js	(working copy)
@@ -8,7 +8,7 @@
     this._div = div;
     this._configuration = configuration;
     this._globalConfiguration = globalConfiguration;
-    
+   
     this._lensConfiguration = {};
     if ("Lens" in globalConfiguration) {
         this._lensConfiguration["Lens"] = globalConfiguration["Lens"];
@@ -24,19 +24,21 @@
         this._lensConfiguration["Lens"].lensSelector = configuration.lensSelector;
     }
     
-    this._densityFactor = 50;
+    this._densityFactor = 5;
     this._topBandIntervalPixels = 150;
     this._bottomBandIntervalPixels = 200;
     this._bubbleWidth = 400;
     this._bubbleHeight = 300;
     this._timelineConstructor = null;
-    
+  
     var getDurations = null;
     try {
         var getStart = null;
         var getEnd = null;
+		var getCategorie = null;
         
         var makeAccessor = function(expression) {
+		 
             var expr = Exhibit.Expression.parse(expression);
             return function(itemID, database) {
                 var v = expr.evaluateSingle(
@@ -77,6 +79,23 @@
         }
         getEnd = getEnd != null ? getEnd : function(itemID, database) { return null; }
         
+		
+		if (domConfiguration != null) {
+            var categorie = Exhibit.getAttribute(domConfiguration, "categorie");
+            if (categorie != null && categorie.length > 0) {
+                getCategorie = makeAccessor(categorie);
+            }
+        }
+        if ("categorie" in configuration) {
+            getCategorie = makeAccessor(configuration.categorie);
+        }
+        getCategorie = getCategorie != null ? getCategorie : function(itemID, database) { return null; }
+		
+		
+		
+		
+		
+		
         var getStartEnd = function(itemID, database) {
             return {
                 start:  getStart(itemID, database),
@@ -371,11 +390,12 @@
     
     if (currentSize > 0) {
         var events = [];
-        
-        var addEvent = function(itemID, duration, markerData) {
+       
+        var addEvent = function(itemID, duration, markerData,categorie) {
             var evt = new Timeline.DefaultEventSource.Event(
                 duration.start,
                 duration.end,
+				database.getObject(itemID, "categorie"),
                 null,
                 null,
                 duration.end == null, // is instant?
@@ -406,6 +426,7 @@
                 durations = self._getDurations(itemID, database);
                 self._durationCache[itemID] = durations;
             }
+			//var categorie=self._getCategorie(itemID, database);
             
             if ((durations instanceof Array && durations.length > 0) ||
                 (durations.start != null)) {
@@ -427,13 +448,13 @@
                     self._markerCache[markerKey] = markerData;
                     self._maxMarker = (self._maxMarker + 1) % Exhibit.TimelineView.theme.markers.length;
                 }
-                
+      
                 if (durations instanceof Array) {
                     for (var i = 0; i < durations.length; i++) {
-                        addEvent(itemID, durations[i], markerData);
+                        addEvent(itemID, durations[i], markerData,0);
                     }
                 } else {
-                    addEvent(itemID, durations, markerData);
+                    addEvent(itemID, durations, markerData,0);
                 }
             }
         });
