diff options
Diffstat (limited to 'web/src/js/components/flowtable.js')
| -rw-r--r-- | web/src/js/components/flowtable.js | 42 | 
1 files changed, 16 insertions, 26 deletions
| diff --git a/web/src/js/components/flowtable.js b/web/src/js/components/flowtable.js index 4217786a..609034f6 100644 --- a/web/src/js/components/flowtable.js +++ b/web/src/js/components/flowtable.js @@ -108,33 +108,25 @@ var ROW_HEIGHT = 32;  var FlowTable = React.createClass({      mixins: [common.StickyHeadMixin, common.AutoScrollMixin, VirtualScrollMixin], +    contextTypes: { +        view: React.PropTypes.object.isRequired +    },      getInitialState: function () {          return {              columns: flowtable_columns          };      }, -    _listen: function(view){ -        if(!view){ -            return; -        } -        view.addListener("add", this.onChange); -        view.addListener("update", this.onChange); -        view.addListener("remove", this.onChange); -        view.addListener("recalculate", this.onChange); -    },      componentWillMount: function () { -        this._listen(this.props.view); +        this.context.view.addListener("add", this.onChange); +        this.context.view.addListener("update", this.onChange); +        this.context.view.addListener("remove", this.onChange); +        this.context.view.addListener("recalculate", this.onChange);      }, -    componentWillReceiveProps: function (nextProps) { -        if (nextProps.view !== this.props.view) { -            if (this.props.view) { -                this.props.view.removeListener("add"); -                this.props.view.removeListener("update"); -                this.props.view.removeListener("remove"); -                this.props.view.removeListener("recalculate"); -            } -            this._listen(nextProps.view); -        } +    componentWillUnmount: function(){ +        this.context.view.removeListener("add", this.onChange); +        this.context.view.removeListener("update", this.onChange); +        this.context.view.removeListener("remove", this.onChange); +        this.context.view.removeListener("recalculate", this.onChange);      },      getDefaultProps: function () {          return { @@ -150,7 +142,7 @@ var FlowTable = React.createClass({      },      scrollIntoView: function (flow) {          this.scrollRowIntoView( -            this.props.view.index(flow), +            this.context.view.index(flow),              this.refs.body.getDOMNode().offsetTop          );      }, @@ -158,8 +150,8 @@ var FlowTable = React.createClass({          var selected = (flow === this.props.selected);          var highlighted =              ( -            this.props.view._highlight && -            this.props.view._highlight[flow.id] +            this.context.view._highlight && +            this.context.view._highlight[flow.id]              );          return <FlowRow key={flow.id} @@ -172,9 +164,7 @@ var FlowTable = React.createClass({          />;      },      render: function () { -        //console.log("render flowtable", this.state.start, this.state.stop, this.props.selected); -        var flows = this.props.view ? this.props.view.list : []; - +        var flows = this.context.view.list;          var rows = this.renderRows(flows);          return ( | 
