From b7156f5325ba0d0ec1b8fe7619c79ee29affb172 Mon Sep 17 00:00:00 2001 From: Markus Grigull Date: Tue, 11 Jul 2017 19:46:45 +0200 Subject: [PATCH] Change widget value to new simulator data --- .../dialog/edit-widget-signal-control.js | 8 ++++---- .../dialog/edit-widget-simulator-control.js | 13 ++++++------- src/components/dialog/edit-widget.js | 15 ++++++++++++--- src/components/dialog/new-simulation-model.js | 9 +++++---- src/components/widget-value.js | 9 ++++++--- src/containers/simulation.js | 10 +++++++++- src/containers/visualization.js | 19 ++++++++++--------- src/stores/simulator-data-store.js | 6 ------ 8 files changed, 52 insertions(+), 37 deletions(-) diff --git a/src/components/dialog/edit-widget-signal-control.js b/src/components/dialog/edit-widget-signal-control.js index 623b416..98d9b06 100644 --- a/src/components/dialog/edit-widget-signal-control.js +++ b/src/components/dialog/edit-widget-signal-control.js @@ -28,7 +28,7 @@ class EditWidgetSignalControl extends Component { this.state = { widget: { - simulator: '' + simulator: {} } }; } @@ -43,10 +43,10 @@ class EditWidgetSignalControl extends Component { if (this.props.simulation) { // get selected simulation model - const simulationModel = this.props.simulation.models.find( model => model.simulator === this.state.widget.simulator ); + const simulationModel = this.props.simulation.models.find( model => model.simulator.node === this.state.widget.simulator.node && model.simulator.simulator === this.state.widget.simulator.simulator ); // If simulation model update the signals to render - signalsToRender = simulationModel? simulationModel.mapping : []; + signalsToRender = simulationModel ? simulationModel.mapping : []; } return ( @@ -68,4 +68,4 @@ class EditWidgetSignalControl extends Component { } } -export default EditWidgetSignalControl; \ No newline at end of file +export default EditWidgetSignalControl; diff --git a/src/components/dialog/edit-widget-simulator-control.js b/src/components/dialog/edit-widget-simulator-control.js index 48186ef..ec4cec5 100644 --- a/src/components/dialog/edit-widget-simulator-control.js +++ b/src/components/dialog/edit-widget-simulator-control.js @@ -28,7 +28,7 @@ class EditWidgetSimulatorControl extends Component { this.state = { widget: { - simulator: '' + simulator: {} } }; } @@ -39,17 +39,16 @@ class EditWidgetSimulatorControl extends Component { } render() { - return ( - Simulator - this.props.handleChange(e)}> + Simulation Model + this.props.handleChange(e)}> { this.props.simulation.models.length === 0? ( - + ) : ( this.props.simulation.models.map((model, index) => ( - + ))) } @@ -58,4 +57,4 @@ class EditWidgetSimulatorControl extends Component { } } -export default EditWidgetSimulatorControl; \ No newline at end of file +export default EditWidgetSimulatorControl; diff --git a/src/components/dialog/edit-widget.js b/src/components/dialog/edit-widget.js index 8c2277f..e3d56ed 100644 --- a/src/components/dialog/edit-widget.js +++ b/src/components/dialog/edit-widget.js @@ -41,7 +41,7 @@ class EditWidgetDialog extends Component { this.state = { temporal: { name: '', - simulator: '', + simulator: {}, signal: 0 } }; @@ -58,7 +58,16 @@ class EditWidgetDialog extends Component { handleChange(e) { if (e.constructor === Array) { // Every property in the array will be updated - let changes = e.reduce( (changesObject, event) => { changesObject[event.target.id] = event.target.value; return changesObject }, {}); + let changes = e.reduce( (changesObject, event) => { + if (event.target.id === 'simulator') { + changesObject[event.target.id] = JSON.parse(event.target.value); + } else { + changesObject[event.target.id] = event.target.value; + } + + return changesObject; + }, {}); + this.setState({ temporal: Object.assign({}, this.state.temporal, changes ) }); } else { let changeObject = {}; @@ -87,7 +96,7 @@ class EditWidgetDialog extends Component { } render() { - + let controls = null; if (this.props.widget) { controls = createControls( diff --git a/src/components/dialog/new-simulation-model.js b/src/components/dialog/new-simulation-model.js index 0acc38d..8ae219c 100644 --- a/src/components/dialog/new-simulation-model.js +++ b/src/components/dialog/new-simulation-model.js @@ -48,6 +48,7 @@ class NewSimulationModelDialog extends Component { onClose(canceled) { if (canceled === false) { + console.log(this.state); this.props.onClose(this.state); } else { this.props.onClose(); @@ -69,8 +70,8 @@ class NewSimulationModelDialog extends Component { } if (e.target.id === 'simulator') { - var value = e.target.value.split("/"); - this.setState({ simulator: { node: value[0], simulator: value[1] } }); + console.log(e.target.value); + this.setState({ simulator: JSON.parse(e.target.value) }); } else { this.setState({ [e.target.id]: e.target.value }); } @@ -91,7 +92,7 @@ class NewSimulationModelDialog extends Component { resetState() { this.setState({ name: '', - simulator: { node: this.props.nodes[0] ? this.props.nodes[0].name : '', simulator: this.props.nodes[0].simulators[0] ? this.props.nodes[0].simulators[0].name : '' }, + simulator: { node: this.props.nodes[0] ? this.props.nodes[0]._id : '', simulator: this.props.nodes[0].simulators[0] ? 0 : '' }, length: '1', mapping: [ { name: 'Signal', type: 'Type' } ] }); @@ -138,7 +139,7 @@ class NewSimulationModelDialog extends Component { this.handleChange(e)}> {this.props.nodes.map(node => ( node.simulators.map((simulator, index) => ( - + )) ))} diff --git a/src/components/widget-value.js b/src/components/widget-value.js index eeceeed..f3451aa 100644 --- a/src/components/widget-value.js +++ b/src/components/widget-value.js @@ -32,15 +32,18 @@ class WidgetValue extends Component { componentWillReceiveProps(nextProps) { // update value - const simulator = nextProps.widget.simulator; + const simulator = nextProps.widget.simulator.simulator; + const node = nextProps.widget.simulator.node; - if (nextProps.data == null || nextProps.data[simulator] == null || nextProps.data[simulator].values == null) { + //console.log(nextProps.widget.simulator); + + if (nextProps.data == null || nextProps.data[node] == null || nextProps.data[node][simulator] == null || nextProps.data[node][simulator].values == null) { this.setState({ value: '' }); return; } // check if value has changed - const signal = nextProps.data[simulator].values[nextProps.widget.signal]; + const signal = nextProps.data[node][simulator].values[nextProps.widget.signal]; if (this.state.value !== signal[signal.length - 1].y) { this.setState({ value: signal[signal.length - 1].y }); } diff --git a/src/containers/simulation.js b/src/containers/simulation.js index 52f5649..0aff4bf 100644 --- a/src/containers/simulation.js +++ b/src/containers/simulation.js @@ -120,7 +120,15 @@ class Simulation extends Component { } getSimulatorName(simulator) { - return simulator.node + '/' + simulator.simulator; + var name = "undefined"; + + this.state.nodes.forEach(node => { + if (node._id === simulator.node) { + name = node.name + '/' + node.simulators[simulator.simulator].name; + } + }); + + return name; } render() { diff --git a/src/containers/visualization.js b/src/containers/visualization.js index a526df3..66c5403 100644 --- a/src/containers/visualization.js +++ b/src/containers/visualization.js @@ -65,13 +65,13 @@ class Visualization extends Component { editModal: prevState.editModal || false, modalData: prevState.modalData || null, modalIndex: prevState.modalIndex || null, - + maxWidgetHeight: prevState.maxWidgetHeight || 0, dropZoneHeight: prevState.dropZoneHeight || 0, last_widget_key: prevState.last_widget_key || 0 }; } - + componentWillMount() { AppDispatcher.dispatch({ type: 'visualizations/start-load' @@ -154,6 +154,7 @@ class Visualization extends Component { NotificationsDataManager.addNotification(NotificationsFactory.NO_SIM_MODEL_AVAILABLE); } else { defaultSimulator = this.state.simulation.models[0].simulator; + console.log(defaultSimulator); } // create new widget @@ -167,7 +168,7 @@ class Visualization extends Component { var visualization = Object.assign({}, this.state.visualization, { widgets: new_widgets }); - + this.increaseHeightWithWidget(widget); this.setState({ visualization: visualization }); } @@ -185,7 +186,7 @@ class Visualization extends Component { var visualization = Object.assign({}, this.state.visualization, { widgets: new_widgets }); - + // Check if the height needs to be increased, the section may have shrunk if not if (!this.increaseHeightWithWidget(updated_widget)) { this.computeHeightWithWidgets(visualization.widgets); @@ -201,12 +202,12 @@ class Visualization extends Component { let maxHeight = Object.keys(widgets).reduce( (maxHeightSoFar, widgetKey) => { let thisWidget = widgets[widgetKey]; let thisWidgetHeight = thisWidget.y + thisWidget.height; - + return thisWidgetHeight > maxHeightSoFar? thisWidgetHeight : maxHeightSoFar; }, 0); - this.setState({ - maxWidgetHeight: maxHeight, + this.setState({ + maxWidgetHeight: maxHeight, dropZoneHeight: maxHeight + 40 }); } @@ -219,8 +220,8 @@ class Visualization extends Component { let thisWidgetHeight = widget.y + widget.height; if (thisWidgetHeight > this.state.maxWidgetHeight) { increased = true; - this.setState({ - maxWidgetHeight: thisWidgetHeight, + this.setState({ + maxWidgetHeight: thisWidgetHeight, dropZoneHeight: thisWidgetHeight + 40 }); } diff --git a/src/stores/simulator-data-store.js b/src/stores/simulator-data-store.js index 457768c..a6bf05c 100644 --- a/src/stores/simulator-data-store.js +++ b/src/stores/simulator-data-store.js @@ -45,12 +45,6 @@ class SimulationDataStore extends ReduceStore { case 'simulatorData/opened': // create entry for simulator - /*state[action.identifier] = { signals: action.signals, values: [], sequence: null, timestamp: null }; - - for (i = 0; i < action.signals; i++) { - state[action.identifier].values.push([]); - }*/ - state[action.node._id] = {}; action.node.simulators.forEach(simulator => {