aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/flowtable.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/js/components/flowtable.js')
-rw-r--r--web/src/js/components/flowtable.js42
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 (