Browse Source

Fix Aktiv Elemnts not Rekursiv.
Add Consumption and Produktion.

Tom Troppmann 5 years ago
parent
commit
9236a3089f
2 changed files with 41 additions and 8 deletions
  1. 17 8
      src/ui/controller/UpdateController.java
  2. 24 0
      src/ui/model/DecoratedGroupNode.java

+ 17 - 8
src/ui/controller/UpdateController.java

@@ -333,10 +333,13 @@ public class UpdateController {
 				deleteRows(model.getMultiTable());
 				//short fix please make me new
 				DecoratedGroupNode dGroupNode = controller.getSimManager().getVisualRepresentationalState(model.getCurIteration()).getCreatedGroupNodes().get((CpsUpperNode) obj);
-				Object[] numEle = { "Number of Elements", ((CpsUpperNode) obj).getNodes().size() };
+				Object[] info = { "On this Canvas:", "" };
+				
+				Object[] numEle = { "Number of Canvas Objects", ((CpsUpperNode) obj).getNodes().size() };
 				Object[] numObj = { "Number of HolonObject", ((CpsUpperNode) obj).getNumHolonObj().size() };
 				Object[] numSwi = { "Number of HolonSwitch", ((CpsUpperNode) obj).getNumSwitches().size() };
 				Object[] numUpp = { "Number of UpperNodes", ((CpsUpperNode) obj).getNumUpperNodes().size() };
+				model.getPropertyTable().addRow(info);
 				model.getPropertyTable().addRow(numEle);
 				model.getPropertyTable().addRow(numObj);
 				model.getPropertyTable().addRow(numSwi);
@@ -360,15 +363,17 @@ public class UpdateController {
 					numerator = dGroupNode.getAmountOfPassiv();
 					Object[] passiv = { "Passiv(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
 					
-					numerator = dGroupNode.getPassivList().stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
-								dGroupNode.getSupplierList().stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
-								dGroupNode.getConsumerList().stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b);
-					denominator = dGroupNode.getPassivList().stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
-							dGroupNode.getSupplierList().stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
-							dGroupNode.getConsumerList().stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b);
+					Object[] nothing= {"", ""};
+					numerator = dGroupNode.getAmountOfAktiveElemntsFromHolonObjects();
+					denominator = dGroupNode.getAmountOfElemntsFromHolonObjects();
 					Object[] aktiv = { "AktivHolonElemnts(%):",  numerator + "/" + denominator + "("+ (float)numerator/(float)denominator * 100 + "%)"};
+					float consumption = dGroupNode.getConsumptionFromConsumer();
+					float production = dGroupNode.getProductionFromSupplier();
+					Object[] consumptionObj = { "Consumption:",  consumption};
+					Object[] productionObj = { "Production:",  production};
+					Object[] difference = { "Divrence:",  Math.abs(consumption - production)};
+					
 					
-					Object[] nothing= {"", ""};
 					model.getPropertyTable().addRow(title);
 					model.getPropertyTable().addRow(producer);
 					model.getPropertyTable().addRow(notSupplied);
@@ -378,6 +383,10 @@ public class UpdateController {
 					model.getPropertyTable().addRow(passiv);
 					model.getPropertyTable().addRow(nothing);
 					model.getPropertyTable().addRow(aktiv);
+					model.getPropertyTable().addRow(nothing);
+					model.getPropertyTable().addRow(consumptionObj);
+					model.getPropertyTable().addRow(productionObj);
+					model.getPropertyTable().addRow(difference);
 				}
 				
 			} else if (obj instanceof HolonBattery) {

+ 24 - 0
src/ui/model/DecoratedGroupNode.java

@@ -89,7 +89,31 @@ public class DecoratedGroupNode {
 		return ((int) consumerList.stream().map(con -> con.getState()).filter(rightState -> (rightState == state)).count()) +  groupNodeList.stream().map(groupNode -> groupNode.getAmountOfConsumerWithState(state)).reduce(0, (a,b)->a+b);
 	}
 	
+	public int getAmountOfElemntsFromHolonObjects() {
+		return passivList.stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
+				supplierList.stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
+				consumerList.stream().map(object -> object.getModel().getElements().size()).reduce(0, (a, b) -> a + b)+
+				groupNodeList.stream().map(groupNode -> groupNode.getAmountOfElemntsFromHolonObjects()).reduce(0, (a,b)->a+b);
+	}
 
+	public int getAmountOfAktiveElemntsFromHolonObjects() {
+		return passivList.stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
+				supplierList.stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
+				consumerList.stream().map(object -> object.getModel().getNumberOfActiveElements()).reduce(0, (a, b) -> a + b)+
+				groupNodeList.stream().map(groupNode -> groupNode.getAmountOfAktiveElemntsFromHolonObjects()).reduce(0, (a,b)->a+b);
+	}
+	public float getConsumptionFromConsumer() {		
+		return consumerList.stream().map(con -> con.getEnergyNeededFromNetwork()).reduce(0.f, (a, b) -> a + b)+
+				groupNodeList.stream().map(groupNode -> groupNode.getConsumptionFromConsumer()).reduce(0.f, (a,b)->a+b);
+	}
+	public float getProductionFromSupplier() {		
+		return supplierList.stream().map(sup -> sup.getEnergyToSupplyNetwork()).reduce(0.f, (a, b) -> a + b)+
+				groupNodeList.stream().map(groupNode -> groupNode.getProductionFromSupplier()).reduce(0.f, (a,b)->a+b);
+	}
+	
+	
+	
+	
 	
 	public String toString() {
 		return