diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-17 17:55:04 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:06:03 +0200 |
| commit | eb208a7e2fd020ab5d07d11cc6d52d1e3dcfcc7c (patch) | |
| tree | d2ec8a20408b7b2880e62feaa70fe95a78c484dd /src/containers/sidebars/topology | |
| parent | 326b74fc39f63f47c71359276601ea93f7345dc6 (diff) | |
Add simulation mode framework
Includes object states in the store (by tick), charting, and progress bars.
Diffstat (limited to 'src/containers/sidebars/topology')
9 files changed, 75 insertions, 50 deletions
diff --git a/src/containers/sidebars/topology/building/BuildingSidebarContainer.js b/src/containers/sidebars/topology/building/BuildingSidebarContainer.js index a91ad5ef..a3e09149 100644 --- a/src/containers/sidebars/topology/building/BuildingSidebarContainer.js +++ b/src/containers/sidebars/topology/building/BuildingSidebarContainer.js @@ -3,7 +3,7 @@ import BuildingSidebarComponent from "../../../../components/sidebars/topology/b const mapStateToProps = state => { return { - currentRoomInConstruction: state.construction.currentRoomInConstruction + inSimulation: state.construction.currentExperimentId !== -1 }; }; diff --git a/src/containers/sidebars/topology/building/CancelNewRoomConstructionButton.js b/src/containers/sidebars/topology/building/CancelNewRoomConstructionButton.js deleted file mode 100644 index 399c7a0d..00000000 --- a/src/containers/sidebars/topology/building/CancelNewRoomConstructionButton.js +++ /dev/null @@ -1,16 +0,0 @@ -import {connect} from "react-redux"; -import {cancelNewRoomConstruction} from "../../../../actions/topology/building"; -import CancelNewRoomConstructionComponent from "../../../../components/sidebars/topology/building/CancelNewRoomConstructionComponent"; - -const mapDispatchToProps = dispatch => { - return { - onClick: () => dispatch(cancelNewRoomConstruction()), - }; -}; - -const CancelNewRoomConstructionButton = connect( - null, - mapDispatchToProps -)(CancelNewRoomConstructionComponent); - -export default CancelNewRoomConstructionButton; diff --git a/src/containers/sidebars/topology/building/FinishNewRoomConstructionButton.js b/src/containers/sidebars/topology/building/FinishNewRoomConstructionButton.js deleted file mode 100644 index 8fc192e0..00000000 --- a/src/containers/sidebars/topology/building/FinishNewRoomConstructionButton.js +++ /dev/null @@ -1,16 +0,0 @@ -import {connect} from "react-redux"; -import {finishNewRoomConstruction} from "../../../../actions/topology/building"; -import FinishNewRoomConstructionComponent from "../../../../components/sidebars/topology/building/FinishNewRoomConstructionComponent"; - -const mapDispatchToProps = dispatch => { - return { - onClick: () => dispatch(finishNewRoomConstruction()), - }; -}; - -const FinishNewRoomConstructionButton = connect( - null, - mapDispatchToProps -)(FinishNewRoomConstructionComponent); - -export default FinishNewRoomConstructionButton; diff --git a/src/containers/sidebars/topology/building/NewRoomConstructionContainer.js b/src/containers/sidebars/topology/building/NewRoomConstructionContainer.js new file mode 100644 index 00000000..0236522d --- /dev/null +++ b/src/containers/sidebars/topology/building/NewRoomConstructionContainer.js @@ -0,0 +1,28 @@ +import {connect} from "react-redux"; +import { + cancelNewRoomConstruction, + finishNewRoomConstruction, + startNewRoomConstruction +} from "../../../../actions/topology/building"; +import StartNewRoomConstructionComponent from "../../../../components/sidebars/topology/building/NewRoomConstructionComponent"; + +const mapStateToProps = state => { + return { + currentRoomInConstruction: state.construction.currentRoomInConstruction + }; +}; + +const mapDispatchToProps = dispatch => { + return { + onStart: () => dispatch(startNewRoomConstruction()), + onFinish: () => dispatch(finishNewRoomConstruction()), + onCancel: () => dispatch(cancelNewRoomConstruction()), + }; +}; + +const NewRoomConstructionButton = connect( + mapStateToProps, + mapDispatchToProps +)(StartNewRoomConstructionComponent); + +export default NewRoomConstructionButton; diff --git a/src/containers/sidebars/topology/building/StartNewRoomConstructionButton.js b/src/containers/sidebars/topology/building/StartNewRoomConstructionButton.js deleted file mode 100644 index c2c9808a..00000000 --- a/src/containers/sidebars/topology/building/StartNewRoomConstructionButton.js +++ /dev/null @@ -1,16 +0,0 @@ -import {connect} from "react-redux"; -import {startNewRoomConstruction} from "../../../../actions/topology/building"; -import StartNewRoomConstructionComponent from "../../../../components/sidebars/topology/building/StartNewRoomConstructionComponent"; - -const mapDispatchToProps = dispatch => { - return { - onClick: () => dispatch(startNewRoomConstruction()), - }; -}; - -const StartNewRoomConstructionButton = connect( - null, - mapDispatchToProps -)(StartNewRoomConstructionComponent); - -export default StartNewRoomConstructionButton; diff --git a/src/containers/sidebars/topology/machine/MachineSidebarContainer.js b/src/containers/sidebars/topology/machine/MachineSidebarContainer.js new file mode 100644 index 00000000..b0d5eed9 --- /dev/null +++ b/src/containers/sidebars/topology/machine/MachineSidebarContainer.js @@ -0,0 +1,15 @@ +import {connect} from "react-redux"; +import MachineSidebarComponent from "../../../../components/sidebars/topology/machine/MachineSidebarComponent"; + +const mapStateToProps = state => { + return { + machineId: state.interactionLevel.machineId, + inSimulation: state.currentExperimentId !== -1, + }; +}; + +const MachineSidebarContainer = connect( + mapStateToProps +)(MachineSidebarComponent); + +export default MachineSidebarContainer; diff --git a/src/containers/sidebars/topology/rack/MachineContainer.js b/src/containers/sidebars/topology/rack/MachineContainer.js index 21ab06c4..7406d191 100644 --- a/src/containers/sidebars/topology/rack/MachineContainer.js +++ b/src/containers/sidebars/topology/rack/MachineContainer.js @@ -1,10 +1,23 @@ import {connect} from "react-redux"; import {goFromRackToMachine} from "../../../../actions/interaction-level"; import MachineComponent from "../../../../components/sidebars/topology/rack/MachineComponent"; +import {getStateLoad} from "../../../../util/simulation-load"; const mapStateToProps = (state, ownProps) => { + const machine = state.objects.machine[ownProps.machineId]; + const inSimulation = state.currentExperimentId !== -1; + + let machineLoad = undefined; + if (inSimulation) { + if (state.states.machine[state.currentTick] && state.states.machine[state.currentTick][machine.id]) { + machineLoad = getStateLoad(state.loadMetric, state.states.machine[state.currentTick][machine.id]); + } + } + return { - machine: state.objects.machine[ownProps.machineId], + machine, + inSimulation, + machineLoad }; }; diff --git a/src/containers/sidebars/topology/rack/RackSidebarContainer.js b/src/containers/sidebars/topology/rack/RackSidebarContainer.js new file mode 100644 index 00000000..4652b968 --- /dev/null +++ b/src/containers/sidebars/topology/rack/RackSidebarContainer.js @@ -0,0 +1,15 @@ +import {connect} from "react-redux"; +import RackSidebarComponent from "../../../../components/sidebars/topology/rack/RackSidebarComponent"; + +const mapStateToProps = state => { + return { + rackId: state.objects.tile[state.interactionLevel.tileId].objectId, + inSimulation: state.currentExperimentId !== -1, + }; +}; + +const RackSidebarContainer = connect( + mapStateToProps +)(RackSidebarComponent); + +export default RackSidebarContainer; diff --git a/src/containers/sidebars/topology/room/RoomSidebarContainer.js b/src/containers/sidebars/topology/room/RoomSidebarContainer.js index b7ded316..6dded3e7 100644 --- a/src/containers/sidebars/topology/room/RoomSidebarContainer.js +++ b/src/containers/sidebars/topology/room/RoomSidebarContainer.js @@ -3,7 +3,9 @@ import RoomSidebarComponent from "../../../../components/sidebars/topology/room/ const mapStateToProps = state => { return { + roomId: state.interactionLevel.roomId, roomType: state.objects.room[state.interactionLevel.roomId].roomType, + inSimulation: state.currentExperimentId !== -1, }; }; |
