mirror of
https://git.rwth-aachen.de/acs/public/villas/web/
synced 2025-03-09 00:00:01 +01:00
Change widget value to new simulator data
This commit is contained in:
parent
a3d35ab5fc
commit
b7156f5325
8 changed files with 52 additions and 37 deletions
|
@ -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;
|
||||
export default EditWidgetSignalControl;
|
||||
|
|
|
@ -28,7 +28,7 @@ class EditWidgetSimulatorControl extends Component {
|
|||
|
||||
this.state = {
|
||||
widget: {
|
||||
simulator: ''
|
||||
simulator: {}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -39,17 +39,16 @@ class EditWidgetSimulatorControl extends Component {
|
|||
}
|
||||
|
||||
render() {
|
||||
|
||||
return (
|
||||
<FormGroup controlId="simulator">
|
||||
<ControlLabel>Simulator</ControlLabel>
|
||||
<FormControl componentClass="select" placeholder="Select simulator" value={this.state.widget.simulator || '' } onChange={(e) => this.props.handleChange(e)}>
|
||||
<ControlLabel>Simulation Model</ControlLabel>
|
||||
<FormControl componentClass="select" placeholder="Select simulation model" value={JSON.stringify(this.state.widget.simulator) || '' } onChange={(e) => this.props.handleChange(e)}>
|
||||
{
|
||||
this.props.simulation.models.length === 0? (
|
||||
<option disabled value style={{ display: 'none' }}> No simulators available. </option>
|
||||
<option disabled value style={{ display: 'none' }}> No simulation models available. </option>
|
||||
) : (
|
||||
this.props.simulation.models.map((model, index) => (
|
||||
<option key={index} value={model.simulator}>{model.name}</option>
|
||||
<option key={index} value={JSON.stringify(model.simulator)}>{model.name}</option>
|
||||
)))
|
||||
}
|
||||
</FormControl>
|
||||
|
@ -58,4 +57,4 @@ class EditWidgetSimulatorControl extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default EditWidgetSimulatorControl;
|
||||
export default EditWidgetSimulatorControl;
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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 {
|
|||
<FormControl componentClass="select" placeholder="Select simulator" value={this.state.simulator.node + '/' + this.state.simulator.simulator} onChange={(e) => this.handleChange(e)}>
|
||||
{this.props.nodes.map(node => (
|
||||
node.simulators.map((simulator, index) => (
|
||||
<option key={node._id + index} value={node.name + '/' + simulator.name}>{node.name}/{simulator.name}</option>
|
||||
<option key={node._id + index} value={JSON.stringify({ node: node._id, simulator: index })}>{node.name}/{simulator.name}</option>
|
||||
))
|
||||
))}
|
||||
</FormControl>
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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 => {
|
||||
|
|
Loading…
Add table
Reference in a new issue