Code coverage report for code/stores/nodes-store.coffee

Statements: 0% (0 / 29)      Branches: 0% (0 / 4)      Functions: 0% (0 / 10)      Lines: 0% (0 / 28)      Ignored: none     

All files » code/stores/ » nodes-store.coffee
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64                                                                                                                               
PaletteStore = require './palette-store'
GraphStore   = require './graph-store'
 
nodeActions = Reflux.createActions(
  [
    "nodesChanged"
  ]
)
 
nodeStore   = Reflux.createStore
  listenables: [nodeActions]
 
  init: ->
    @nodes               = []
    @paletteItemHasNodes = false
    @selectedPaletteItem = null
 
    PaletteStore.store.listen @paletteChanged
    GraphStore.store.listen  @graphChanged
 
  onNodesChanged: (nodes) ->
    @nodes = nodes
    @internalUpdate()
 
  graphChanged: (status) ->
    @nodes = status.nodes
    @internalUpdate()
 
  paletteChanged: ->
    @selectedPaletteItem = PaletteStore.store.selectedPaletteItem
    @internalUpdate()
 
  internalUpdate: ->
    @paletteItemHasNodes = false
    return unless @selectedPaletteItem
    _.each @nodes, (node) =>
      if node.paletteItemIs @selectedPaletteItem
        @paletteItemHasNodes = true
    @notifyChange()
 
  notifyChange: ->
    data =
      nodes: @nodes
      paletteItemHasNodes: @paletteItemHasNodes
    @trigger(data)
 
mixin =
  getInitialState: ->
    nodes: nodeStore.nodes
    paletteItemHasNodes: nodeStore.paletteItemHasNodes
 
  componentDidMount: ->
    nodeStore.listen @onNodesChange
 
  onNodesChange: (status) ->
    @setState
      # nodes: status.nodes
      paletteItemHasNodes: status.paletteItemHasNodes
 
module.exports =
  actions: nodeActions
  store: nodeStore
  mixin: mixin