 
   createGraph: (yAttributeName)->
     timeUnit = TimeUnits.toString SimulationStore.store.settings.stepUnits, true
+    nodes = @graphStore.getNodes()
+
+    # First column definition is the time index
+    sampleDataAttrs = [
+      {
+        name: timeUnit
+        type: "numeric"
+      }
+    ]
+
+    # Append node names to column descriptions.
+    _.each nodes, (node) ->
+      type = if node.valueDefinedSemiQuantitatively then 'qualitative' else 'numeric'
+      sampleDataAttrs.push
+        name: node.title
+        type: type
+
+    @codapPhone.call
+      action: 'createCollection'
+      args:
+        name: 'Samples'
+        attrs: sampleDataAttrs
+
     @codapPhone.call
       action: 'createComponent'
       args: {

      else
        log.info "CODAP returned an error on 'openCase'"

  _sendSimulationData: (data) ->
    if not @currentCaseID
      # openNewCase may not have completed yet, so we queue these up


  _openNewCase: (nodeNames) ->
    @currentCaseID = null

    @_createCollection(nodeNames)

    @codapPhone.call {
      action: 'openCase'
