 
   initialize: (options) ->
 
+    # setup colors scales
+    @COLOR_QUALITATIVE = [
+      @COLORS['solid-3']
+      @COLORS['solid-7']
+      @COLORS['solid-1']
+      @COLORS['solid-5']
+      @COLORS['solid-2']
+      @COLORS['solid-8']
+      @COLORS['solid-4']
+      @COLORS['solid-9']
+      @COLORS['solid-6']
+      @COLORS['solid-10']
+      @COLORS['solid-11']
+      @COLORS['solid-12']
+    ]
+    @COLOR_QUANTITATIVE = [
+      @COLORS['quantitative-1']
+      @COLORS['quantitative-2']
+      @COLORS['quantitative-3']
+      @COLORS['quantitative-4']
+      @COLORS['quantitative-5']
+      @COLORS['quantitative-6']
+      @COLORS['quantitative-7']
+      @COLORS['quantitative-8']
+      @COLORS['quantitative-9']
+      @COLORS['quantitative-10']
+    ]
+
+    # Setup color scale
+    @colorQualitativeScale  = d3.scaleOrdinal().range @COLOR_QUALITATIVE
+    @colorQuantitativeScale = d3.scaleOrdinal().range @COLOR_QUANTITATIVE
 
   setup: (_data, _parameters) ->
 

    #   .size         [@viewport.width, @viewport.height]
    #   .on           'tick', @onTick

    # @forceDrag = @force.drag()
    #   .on('dragstart',  @onNodeDragStart)
    #   .on('dragend',    @onNodeDragEnd)

    # Setup SVG
    @svg = d3.select('svg')


  # Nodes drag events
  onNodeDragStart: (d) =>
    # d3.event.sourceEvent.stopPropagation() # silence other listeners
    # @viewport.drag.x = d.x
    # @viewport.drag.y = d.y
    if !d3.event.active
      @force.alphaTarget(0.1).restart()
    @force.fix(d)
  
  onNodeDragged: (d) =>
    @force.fix d, d3.event.x, d3.event.y

  onNodeDragEnd: (d) =>
    # d3.event.sourceEvent.stopPropagation() # silence other listeners
    # if @viewport.drag.x == d.x and @viewport.drag.y == d.y
    #   return  # Skip if has no translation
    # # fix the node position when the node is dragged
    # d.fixed = true;
    if !d3.event.active
      @force.alphaTarget(0)
    #@force.unfix d

  onNodeOver: (d) =>
    #@nodes.select('circle')
