Browse Source

every property implemented

Kevin Trometer 7 years ago
parent
commit
9d961ad02e
1 changed files with 93 additions and 3 deletions
  1. 93 3
      src/ui/view/StatisticGraph.java

+ 93 - 3
src/ui/view/StatisticGraph.java

@@ -117,6 +117,10 @@ public class StatisticGraph extends JPanel {
 				case TrackedDataSet.AMOUNT_CLOSED_SWITCHES:
 				case TrackedDataSet.AVG_AMOUNT_OBJECTS_IN_HOLONS:
 				case TrackedDataSet.AVG_AMOUNT_ELEMENTS_IN_HOLONS:
+				case TrackedDataSet.AVG_AMOUNT_PRODUCERS_IN_HOLONS:
+				case TrackedDataSet.AVG_CONSUMED_ENERGY_IN_HOLONS:
+				case TrackedDataSet.AVG_WASTED_ENERGY_IN_HOLONS:
+				case TrackedDataSet.AMOUNT_BROKEN_EDGES:
 					createPathFloats(set);
 					break;
 				case TrackedDataSet.ON_OFF:
@@ -125,6 +129,7 @@ public class StatisticGraph extends JPanel {
 				case TrackedDataSet.PERCENT_SUPPLIED:
 				case TrackedDataSet.PERCENT_NOT_SUPPLIED:
 				case TrackedDataSet.PERCENT_PARTIAL_SUPPLIED:
+				case TrackedDataSet.RATIO_PRODUCERS_CONSUMERS:
 					createPathPercent(set);
 					break;
 				default:
@@ -264,6 +269,37 @@ public class StatisticGraph extends JPanel {
 					eCount = 0;
 				}
 				break;
+			case TrackedDataSet.AVG_AMOUNT_PRODUCERS_IN_HOLONS:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					if (val < sub.getObjects().size()) {
+						val = sub.getObjects().size();
+					}
+				}
+				break;
+			case TrackedDataSet.AVG_CONSUMED_ENERGY_IN_HOLONS:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					float tempVal = -getMaxTotalConsumption(new ArrayList<>(sub.getObjects()));
+					if (val < tempVal) {
+						val = tempVal;
+					}
+				}
+				break;
+			case TrackedDataSet.AVG_WASTED_ENERGY_IN_HOLONS:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					float tempVal = getMaxTotalProduction(new ArrayList<>(sub.getObjects()));
+					if (val < tempVal) {
+						val = tempVal;
+					}
+				}
+				break;
+			case TrackedDataSet.AMOUNT_BROKEN_EDGES:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					val += sub.getSwitches().size();
+				}
+				break;
+			case TrackedDataSet.RATIO_PRODUCERS_CONSUMERS:
+				val = 1;
+				break;
 			default:
 				maximum = 0;
 				break;
@@ -376,7 +412,61 @@ public class StatisticGraph extends JPanel {
 						val += obj.getElements().size();
 					}
 				}
-				val /=controller.getSimManager().getSubNets().size();
+				val /= controller.getSimManager().getSubNets().size();
+				set.setValAt(val, model.getCurIteration());
+				break;
+			case TrackedDataSet.AVG_AMOUNT_PRODUCERS_IN_HOLONS:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					for (HolonObject obj : sub.getObjects()) {
+						if (obj.getCurrentEnergyAtTimeStep(model.getCurIteration()) > 0) {
+							val++;
+						}
+					}
+				}
+				val /= controller.getSimManager().getSubNets().size();
+				set.setValAt(val, model.getCurIteration());
+				break;
+			case TrackedDataSet.AVG_CONSUMED_ENERGY_IN_HOLONS:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					val += -getTotalConsumptionAt(new ArrayList<AbstractCpsObject>(sub.getObjects()),
+							model.getCurIteration());
+				}
+				val /= controller.getSimManager().getSubNets().size();
+				set.setValAt(val, model.getCurIteration());
+				break;
+			case TrackedDataSet.AVG_WASTED_ENERGY_IN_HOLONS:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					val += (getTotalProductionAt(new ArrayList<AbstractCpsObject>(sub.getObjects()),
+							model.getCurIteration())
+							+ getTotalConsumptionAt(new ArrayList<AbstractCpsObject>(sub.getObjects()),
+									model.getCurIteration()));
+				}
+				val /= controller.getSimManager().getSubNets().size();
+				set.setValAt(val, model.getCurIteration());
+				break;
+			case TrackedDataSet.AMOUNT_BROKEN_EDGES:
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					for (HolonSwitch s : sub.getSwitches()) {
+						if (s.getState()) {
+							val++;
+						}
+					}
+				}
+				set.setValAt(val, model.getCurIteration());
+				break;
+			case TrackedDataSet.RATIO_PRODUCERS_CONSUMERS:
+				float prod = 0;
+				float cons = 0;
+				for (SubNet sub : controller.getSimManager().getSubNets()) {
+					for (HolonObject obj : sub.getObjects()) {
+						if (obj.getCurrentEnergyAtTimeStep(model.getCurIteration()) > 0) {
+							prod++;
+						} else if(obj.getCurrentEnergyAtTimeStep(model.getCurIteration()) < 0) {
+							cons++;
+						}
+					}
+				}
+				val = prod/(prod+cons);
 				set.setValAt(val, model.getCurIteration());
 				break;
 			default:
@@ -567,8 +657,8 @@ public class StatisticGraph extends JPanel {
 
 		return stateObjectss / count;
 	}
-	
-	public ArrayList<TrackedDataSet> getDataSets(){
+
+	public ArrayList<TrackedDataSet> getDataSets() {
 		return dataSets;
 	}