diff --git a/src/components/widget-gauge.js b/src/components/widget-gauge.js index be1ba9c..344fbbf 100644 --- a/src/components/widget-gauge.js +++ b/src/components/widget-gauge.js @@ -44,6 +44,8 @@ class WidgetGauge extends Component { // update value if (nextProps.data == null || nextProps.data[simulator] == null + || nextProps.data[simulator].output == null + || nextProps.data[simulator].output.values == null || nextProps.data[simulator].output.values.length === 0 || nextProps.data[simulator].output.values[0].length === 0) { this.setState({ value: 0 }); diff --git a/src/components/widget-lamp.js b/src/components/widget-lamp.js index baefe98..2ed2f0e 100644 --- a/src/components/widget-lamp.js +++ b/src/components/widget-lamp.js @@ -42,7 +42,7 @@ class WidgetLamp extends Component { const simulator = nextProps.simulationModel.simulator; // update value - if (nextProps.data == null || nextProps.data[simulator] == null || nextProps.data[simulator].output.values == null) { + if (nextProps.data == null || nextProps.data[simulator] == null || nextProps.data[simulator].output == null || nextProps.data[simulator].output.values == null) { this.setState({ value: '' }); return; } diff --git a/src/components/widget-plot-table.js b/src/components/widget-plot-table.js index 02d11be..9e9f353 100644 --- a/src/components/widget-plot-table.js +++ b/src/components/widget-plot-table.js @@ -103,7 +103,7 @@ class WidgetPlotTable extends Component { const simulator = this.props.simulationModel.simulator; let simulatorData = []; - if (this.props.data[simulator] != null) { + if (this.props.data[simulator] != null && this.props.data[simulator].output != null && this.props.data[simulator].output.values != null) { simulatorData = this.props.data[simulator].output.values.filter((values, index) => ( this.props.widget.signals.findIndex(value => value === index) !== -1 )); diff --git a/src/components/widget-plot.js b/src/components/widget-plot.js index 5ccfa5f..cb8271c 100644 --- a/src/components/widget-plot.js +++ b/src/components/widget-plot.js @@ -43,7 +43,7 @@ class WidgetPlot extends React.Component { const simulator = nextProps.simulationModel.simulator; // Proceed if a simulation with models and a simulator are available - if (simulator && nextProps.data[simulator] != null && nextProps.data[simulator] != null) { + if (simulator && nextProps.data[simulator] != null && nextProps.data[simulator] != null && nextProps.data[simulator].output != null && nextProps.data[simulator].output.values != null) { const chosenSignals = nextProps.widget.signals; const data = nextProps.data[simulator].output.values.filter((values, index) => ( diff --git a/src/components/widget-table.js b/src/components/widget-table.js index 52d98d3..b266a23 100644 --- a/src/components/widget-table.js +++ b/src/components/widget-table.js @@ -46,7 +46,6 @@ class WidgetTable extends Component { if (nextProps.data == null || nextProps.data[simulator] == null || nextProps.data[simulator].output == null - || nextProps.data[simulator].output.length === 0 || nextProps.data[simulator].output.values.length === 0 || nextProps.data[simulator].output.values[0].length === 0) { // clear values diff --git a/src/components/widget-value.js b/src/components/widget-value.js index 2a5c765..aa056da 100644 --- a/src/components/widget-value.js +++ b/src/components/widget-value.js @@ -32,8 +32,15 @@ class WidgetValue extends Component { } componentWillReceiveProps(nextProps) { + if (nextProps.simulationModel == null) { + this.setState({ value: '' }); + return; + } + + const simulator = nextProps.simulationModel.simulator; + // update value - if (nextProps.data == null || nextProps.simulationModel == null || nextProps.data[nextProps.simulationModel.simulator] == null || nextProps.data[nextProps.simulationModel.simulator].output == null || nextProps.data[nextProps.simulationModel.simulator].output.values == null) { + if (nextProps.data == null || nextProps.data[simulator] == null || nextProps.data[simulator].output == null || nextProps.data[simulator].output.values == null) { this.setState({ value: '' }); return; } @@ -41,7 +48,7 @@ class WidgetValue extends Component { const unit = nextProps.simulationModel.outputMapping[nextProps.widget.signal].type; // check if value has changed - const signal = nextProps.data[nextProps.simulationModel.simulator].output.values[nextProps.widget.signal]; + const signal = nextProps.data[simulator].output.values[nextProps.widget.signal]; if (signal != null && this.state.value !== signal[signal.length - 1].y) { this.setState({ value: signal[signal.length - 1].y, unit }); }