Forráskód Böngészése

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons.git into Ohne_Drag_and_Drop

Kevin Trometer 7 éve
szülő
commit
c1cc06228e

+ 10 - 0
src/classes/CpsEdge.java

@@ -4,6 +4,7 @@ public class CpsEdge {
 
 	float maxCapacity;
 	float flow;
+	boolean isWorking;
 	
 	CpsObject A;
 	CpsObject B;
@@ -14,6 +15,8 @@ public class CpsEdge {
 		this.A.AddConnection(this);
 		this.B.AddConnection(this);
 		this.maxCapacity = 100;
+		flow = 0;
+		isWorking = true;
 	}
 	
 	
@@ -43,6 +46,9 @@ public class CpsEdge {
 	 */
 	public void setFlow(float flow) {
 		this.flow = flow;
+		if(flow > maxCapacity){
+			isWorking = false;
+		}
 	}
 	
 	/**
@@ -75,5 +81,9 @@ public class CpsEdge {
 	public void setB(CpsObject b) {
 		B = b;
 	}
+	
+	public boolean getState(){
+		return isWorking;
+	}
 
 }

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

@@ -20,6 +20,10 @@ public class SimulationManager {
 	}
 	
 	
+	/**
+	 * calculates the flow of the edges and the supply for objects
+	 * @param x
+	 */
 	public void calculateStateForTimeStep(int x){
 		searchForSubNets();
 		for(subNet singleSubNet: subNets){
@@ -28,7 +32,28 @@ public class SimulationManager {
 			for(CpsEdge e: singleSubNet.getEdges()){
 				e.setFlow(production);
 			}
+			for(HolonObject hl: singleSubNet.getObjects()){
+				boolean end = false;
+				int i = 0;
+				while(!end){
+					CpsEdge edge = hl.getConnectedTo().get(i);
+					if(edge.getState()){
+						if(hl.getCurrentEnergyAtTimeStep(x) + edge.getFlow() >= 0 ){
+							hl.setSupplied(true);
+						}else{
+							hl.setSupplied(false);
+						}
+						end = true;
+					}else{
+						i++;
+						if(i == singleSubNet.getObjects().size()){
+							end = true;
+						}
+					}
+				}
+			}
 		}
+		
 	}
 	
 	/**

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

@@ -111,6 +111,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		// drawEdges
 		// g2.setColor(Color.BLACK);
 		if (drawEdge) {
+			g2.setColor(Color.BLACK);
 			g2.setStroke(new BasicStroke(2));
 			g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
 					tempCps.getPosition().y + controller.getScaleDiv2(), x, y);
@@ -120,7 +121,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			if (con.getA().getID() != model.getSelectedObjectID() && con.getB().getID() != model.getSelectedObjectID()
 					&& con != edgeHighlight) {
 				if (con.getFlow() <= con.getCapacity()) {
-					g2.setColor(Color.BLACK);
+					g2.setColor(Color.GREEN);
 					g2.setStroke(new BasicStroke(Math.min((con.getFlow() / con.getCapacity() * 4), 4)));
 				} else {
 					g2.setColor(Color.RED);