summaryrefslogtreecommitdiff
path: root/src/containers/sidebars/topology
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-17 17:55:04 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:06:03 +0200
commiteb208a7e2fd020ab5d07d11cc6d52d1e3dcfcc7c (patch)
treed2ec8a20408b7b2880e62feaa70fe95a78c484dd /src/containers/sidebars/topology
parent326b74fc39f63f47c71359276601ea93f7345dc6 (diff)
Add simulation mode framework
Includes object states in the store (by tick), charting, and progress bars.
Diffstat (limited to 'src/containers/sidebars/topology')
-rw-r--r--src/containers/sidebars/topology/building/BuildingSidebarContainer.js2
-rw-r--r--src/containers/sidebars/topology/building/CancelNewRoomConstructionButton.js16
-rw-r--r--src/containers/sidebars/topology/building/FinishNewRoomConstructionButton.js16
-rw-r--r--src/containers/sidebars/topology/building/NewRoomConstructionContainer.js28
-rw-r--r--src/containers/sidebars/topology/building/StartNewRoomConstructionButton.js16
-rw-r--r--src/containers/sidebars/topology/machine/MachineSidebarContainer.js15
-rw-r--r--src/containers/sidebars/topology/rack/MachineContainer.js15
-rw-r--r--src/containers/sidebars/topology/rack/RackSidebarContainer.js15
-rw-r--r--src/containers/sidebars/topology/room/RoomSidebarContainer.js2
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,
};
};