     for c of app.component
         for i of app.component[c]
             item = app.component[c][i]
-            item.update() if item.spec.isSink is "true"
+            item.update() # if item.isSink is "true"
 
 class App
 


class Sheet
    
    constructor: (@spec) ->
        @spec.data ?= [[0]]
        @spec.colHeaders ?= ("c#{k}" for k in [0...@spec.data[0].length])
        @spec.rowHeaders ?= ("r#{k}" for k in [0...@spec.data.length])

    rowJson: ->
        x = {}
        x[rh] = @spec.data[k] for rh, k in @spec.rowHeaders
        return x

    labelRows: ->
        ([@spec.rowHeaders[m]].concat row for row, m in @spec.data)

    toLocal: ->
        #console.log "app.sheet", app.sheet
        eval("#{@spec.id} = app.sheet['#{@spec.id}'].spec.data")

    fromLocal: (u)->
        app.sheet[@spec.id].spec.data = u


$blab.compute = ()->


        make = (type) =>
            @component[type] = {}
            for spec in JSON.parse(@file["#{type}.json"])
                spec.containerId ?= "app"
                @component[type][spec.id] = new @toolbox[type](spec, @sheet, @file)
        make(type) for type of @toolbox

