diff --git a/src/common/table-column.js b/src/common/table-column.js index 748035a..53b99e5 100644 --- a/src/common/table-column.js +++ b/src/common/table-column.js @@ -29,6 +29,7 @@ class TableColumn extends Component { linkKey: '', dataIndex: false, inlineEditable: false, + inputType: 'text', clickable: false, labelKey: null, checkbox: false, diff --git a/src/common/table.js b/src/common/table.js index b4edea3..d68191a 100644 --- a/src/common/table.js +++ b/src/common/table.js @@ -205,7 +205,7 @@ class CustomTable extends Component { return ( {(this.state.editCell[0] === cellIndex && this.state.editCell[1] === rowIndex ) ? ( - children[cellIndex].props.onInlineChange(event, rowIndex, cellIndex)} ref={ref => { this.activeInput = ref; }} /> + children[cellIndex].props.onInlineChange(event, rowIndex, cellIndex)} ref={ref => { this.activeInput = ref; }} /> ) : ( {cell.map((element, elementIndex) => ( diff --git a/src/signal/edit-signal-mapping.js b/src/signal/edit-signal-mapping.js index cf5ac2e..0c64108 100644 --- a/src/signal/edit-signal-mapping.js +++ b/src/signal/edit-signal-mapping.js @@ -39,7 +39,8 @@ class EditSignalMapping extends React.Component { this.state = { dir, - signals: [] + signals: [], + modifiedSignalIDs : [] }; } @@ -51,46 +52,60 @@ class EditSignalMapping extends React.Component { }); return { - signals: signals + signals: signals, }; } onClose(canceled) { + + for (let signalID of this.state.modifiedSignalIDs){ + + let sig = this.state.signals.find(s => s.id === signalID); + + //dispatch changes to signal + AppDispatcher.dispatch({ + type: 'signals/start-edit', + data: sig, + token: this.props.sessionToken, + }); + } + this.props.onCloseEdit(this.state.dir) } handleMappingChange = (event, row, column) => { - let sig = {} + + let signals = this.state.signals; + let modifiedSignals = this.state.modifiedSignalIDs; + if (column === 1) { // Name change - if (event.target.value !== '') { - sig = this.state.signals[row]; - sig.name = event.target.value; - } + signals[row].name = event.target.value; + if (modifiedSignals.find(id => id === signals[row].id) === undefined){ + modifiedSignals.push(signals[row].id); + } } else if (column === 2) { // unit change - if (event.target.value !== '') { - sig = this.state.signals[row]; - sig.unit = event.target.value; - } + signals[row].unit = event.target.value; + if (modifiedSignals.find(id => id === signals[row].id) === undefined){ + modifiedSignals.push(signals[row].id); + } } else if (column === 3) { // scaling factor change - if (parseFloat(event.target.value) !== 0.0) { - sig = this.state.signals[row]; - sig.scalingFactor = parseFloat(event.target.value); + signals[row].scalingFactor = parseFloat(event.target.value); + if (modifiedSignals.find(id => id === signals[row].id) === undefined){ + modifiedSignals.push(signals[row].id); } } else if (column === 0) { //index change - sig = this.state.signals[row]; - sig.index = parseInt(event.target.value, 10); + signals[row].index =parseInt(event.target.value, 10); + if (modifiedSignals.find(id => id === signals[row].id) === undefined){ + modifiedSignals.push(signals[row].id); + } } - if (sig !== {}){ - //dispatch changes to signal - AppDispatcher.dispatch({ - type: 'signals/start-edit', - data: sig, - token: this.props.sessionToken, - }); - } + this.setState({ + signals: signals, + modifiedSignalIDs: modifiedSignals + }) }; @@ -145,7 +160,7 @@ class EditSignalMapping extends React.Component { this.onClose(c)} onReset={() => this.resetState()} @@ -155,10 +170,10 @@ class EditSignalMapping extends React.Component { {this.props.direction} Mapping Click Index, Name or Unit cell to edit - this.handleMappingChange(e, row, column)} /> - this.handleMappingChange(e, row, column)} /> - this.handleMappingChange(e, row, column)} /> - this.handleMappingChange(e, row, column)} /> + this.handleMappingChange(e, row, column)} /> + this.handleMappingChange(e, row, column)} /> + this.handleMappingChange(e, row, column)} /> + this.handleMappingChange(e, row, column)} /> this.handleDelete(index)} />
diff --git a/src/widget/widgets/table.js b/src/widget/widgets/table.js index 089eec0..3ecc59a 100644 --- a/src/widget/widgets/table.js +++ b/src/widget/widgets/table.js @@ -41,15 +41,20 @@ class WidgetTable extends Component { // determine ID of infrastructure component related to signal (via config) let icID = props.icIDs[sig.id] + let signalName = sig.name; + if(sig.scalingFactor !== 1.0){ + signalName = signalName + "(x" + String(sig.scalingFactor) + ")"; + } + // distinguish between input and output signals if (sig.direction === "out") { if (props.data[icID] != null && props.data[icID].output != null && props.data[icID].output.values != null) { if (props.data[icID].output.values[sig.index-1] !== undefined) { let data = props.data[icID].output.values[sig.index-1]; rows.push({ - name: sig.name, + name: signalName, unit: sig.unit, - value: data[data.length - 1].y + value: data[data.length - 1].y * sig.scalingFactor }); } @@ -59,9 +64,9 @@ class WidgetTable extends Component { if (props.data[icID].input.values[sig.index-1] !== undefined) { let data = props.data[icID].input.values[sig.index-1]; rows.push({ - name: sig.name, + name: signalName, unit: sig.unit, - value: data[data.length - 1].y + value: data[data.length - 1].y * sig.scalingFactor }); } } @@ -86,7 +91,7 @@ class WidgetTable extends Component { var columns = [ , - + ]; if (this.props.widget.customProperties.showUnit)