       numerator: -1
       denominator: -1
     ]
+  inputDataVersion: 0
+  currentDataVersion: 0
   compareResult: []
-  getDataNum: (type)->
+  getDataNum: (type, data, dataAfterFilter, searchArgv)->
     data = 0
     switch type
       when -2
-        data = @props.data.length
+        data = data.length
       when -1
-        data = @props.dataAfterFilter.length
+        data = dataAfterFilter.length
       else
         data = @state.searchArgv[type].result.length
     data
-  refreshSearchResult: (searchArgv)->
+  refreshSearchResult: (searchArgv, data, dataAfterFilter)->
     for index in [0..searchArgv.length-1]
       switch searchArgv[index].searchBaseOn
         when -2
-          data = @props.data
+          data = data
         when -1
-          data = @props.dataAfterFilter
+          data = dataAfterFilter
         else
           data = searchArgv[searchArgv[index].searchBaseOn].result
       searchArgv[index].num = data.length

    @setState
      filterPaneShow: filterPaneShow
      statisticsPaneShow: statisticsPaneShow
    @refreshSearchResult @state.searchArgv
    @refreshCompareResult @state.compareArgv
  componentWillReceiveProps: (nextProps)->
    @refreshSearchResult @state.searchArgv
  componentWillUpdate: (nextProps, nextState)->
    @refreshCompareResult nextState.compareArgv
  render: ->
    <div className='akashic-records-settings' className={if @state.filterPaneShow or @state.statisticsPaneShow then "tap-pane-show" else "tab-pane-hidden"}>
      <Grid>

      else if item.searchBaseOn > index
        item.searchBaseOn -= 1
    searchArgv.splice index, 1
    @refreshSearchResult searchArgv, @props.data, @props.dataAfterFilter

  handleCompareChange: ()->
    {compareArgv} = @state
