Code coverage report for code/stores/palette-delete-dialog-store.coffee

Statements: 40.91% (18 / 44)      Branches: 100% (0 / 0)      Functions: 26.67% (4 / 15)      Lines: 40.91% (18 / 44)      Ignored: none     

All files » code/stores/ » palette-delete-dialog-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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 1051 1   1         1       1 1 1     1 1 1 1 1 1     1                                                                                   1             1     1                                             1        
PaletteStore = require './palette-store'
UndoRedo       = require '../utils/undo-redo'
 
paletteDialogActions = Reflux.createActions([
    "open", "close", "delete", "cancel", "select"
  ])
 
 
store = Reflux.createStore
  listenables: [ paletteDialogActions ]
 
  init: ->
    @enableListening()
    @initValues()
    @undoManger = UndoRedo.instance debug:true
 
  initValues: ->
    @showing      = false
    @paletteItem  = PaletteStore.store.selectedPaletteItem
    @palette      = PaletteStore.store.palette
    @replacement  = null
    @deleted      = false
    @_notifyChanges()
 
  enableListening: ->
    PaletteStore.store.listen @onPaletteSelect
 
  onOpen: ->
    @showing      = true
    @_reset()
    @_notifyChanges()
 
  onClose: ->
    @close()
 
  onSelect: (replacement) ->
    @replacement = replacement
    @_notifyChanges()
 
  onCancel: ->
    @close()
 
  onDelete: (item) ->
    @deleted = true
    @undoManger.startCommandBatch()
    PaletteStore.actions.deleteSelected()
    @close()
    @undoManger.endCommandBatch()
 
  onPaletteSelect: (status) ->
    @paletteItem = status.selectedPaletteItem
    @palette     = status.palette
    @replacement = status.replacement
    @_reset()
    @_notifyChanges()
 
  close: ->
    @showing = false
    PaletteStore.actions.restoreSelection()
    @_notifyChanges()
 
  _reset: ->
    @deleted      = false
    @options      = _.without @palette, @paletteItem
    @replacement  = @options[0]
 
  _notifyChanges: ->
    data =
      showing     : @showing
      paletteItem : @paletteItem
      palette     : @palette
      options     : @options
      replacement : @replacement
      deleted     : @deleted
    @trigger(data)
 
 
listenerMixin =
  actions: paletteDialogActions
 
  getInitialState: ->
    showing     : store.showing
    paletteItem : store.paletteItem
    palette     : store.palette
    options     : store.options
    replacement : store.replacement
    deleted     : store.deleted
 
  componentDidMount: ->
    store.listen @onChange
 
  onChange: (status) ->
    @setState
      showing     : status.showing
      paletteItem : status.paletteItem
      palette     : status.palette
      options     : status.options
      replacement : status.replacement
      deleted     : status.deleted
 
module.exports =
  store: store
  actions: paletteDialogActions
  mixin: listenerMixin