Browse Source

simulation status for edges

dominik.rieder 7 years ago
parent
commit
8fdabbf148

+ 12 - 0
src/classes/CpsEdge.java

@@ -65,12 +65,24 @@ public class CpsEdge {
 	 */
 	public void setFlow(float flow) {
 		this.flow = flow;
+		/**
 		if (flow <= maxCapacity || flow == -1) {
 			isWorking = true;
 		} else {
 			isWorking = false;
 			state = false;
 		}
+		**/
+	}
+	
+	public void calculateState(boolean simMode){
+		if(flow > maxCapacity && maxCapacity != -1){
+			isWorking = false;
+		}else {
+			if(!simMode && flow <= maxCapacity){
+				isWorking = true;
+			}
+		}
 	}
 
 	public void setState(boolean isActive) {

+ 7 - 0
src/classes/HolonObject.java

@@ -60,6 +60,13 @@ public class HolonObject extends CpsObject {
 			if (getCurrentEnergy() == 0) {
 				setState(0);
 				stateColor = Color.WHITE;
+			}else {
+				if(checkIfPartiallySupplied(0)){
+					stateColor = Color.yellow;
+				}else {
+					stateColor = new Color(230,120,100);
+				}
+				
 			}
 		}
 	}

+ 5 - 0
src/ui/controller/SimulationManager.java

@@ -19,11 +19,13 @@ public class SimulationManager {
 	private ArrayList<subNet> subNets;
 	private MyCanvas canvas;
 	private int timeStep;
+	private boolean simMode;
 	
 	public SimulationManager(Model m){
 		canvas = null;
 		model = m;
 		subNets = new ArrayList<subNet>();
+		simMode = model.getIsSimulation();
 	}
 	
 	
@@ -32,6 +34,7 @@ public class SimulationManager {
 	 * @param x
 	 */
 	public void calculateStateForTimeStep(int x){
+		simMode = model.getIsSimulation();
 		timeStep = x;
 		searchForSubNets();
 		for(subNet singleSubNet: subNets){
@@ -79,6 +82,7 @@ public class SimulationManager {
 			if(energy > 0){
 				for(CpsEdge e : sN.getEdges()){
 					e.setFlow(e.getFlow() + energy);
+					e.calculateState(simMode);
 				}
 			}
 		}
@@ -89,6 +93,7 @@ public class SimulationManager {
 		for(CpsEdge e: cps.getConnections()){
 			if(!(visitedEdges.contains(e))){
 				e.setFlow(0);
+				e.calculateState(simMode);
 				visitedEdges.add(e);
 				if(!(visitedObj.contains(e.getA().getID()))){
 					ResetConnections(e.getA(), visitedObj, visitedEdges);

+ 1 - 1
src/ui/view/MyCanvas.java

@@ -168,7 +168,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		for (CpsEdge con : model.getEdgesOnCanvas()) {
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
 					&& con != edgeHighlight) {
-				if (con.getFlow() <= con.getCapacity() || con.getCapacity() == -1) {
+				if (con.getState()) {
 					g2.setColor(Color.GREEN);
 					if (con.getCapacity() != -1) {
 						g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));