|
@@ -32,7 +32,7 @@ public class StatisticGraph extends JPanel {
|
|
private static final long serialVersionUID = 1L;
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
// Maximum y Value
|
|
// Maximum y Value
|
|
- double maximum = 0;
|
|
|
|
|
|
+ float maximum = 0;
|
|
|
|
|
|
// is the Simulation running?
|
|
// is the Simulation running?
|
|
private boolean isSimRunning;
|
|
private boolean isSimRunning;
|
|
@@ -117,7 +117,7 @@ public class StatisticGraph extends JPanel {
|
|
case TrackedDataSet.PERCENT_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_NOT_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_NOT_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_PARTIAL_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_PARTIAL_SUPPLIED:
|
|
- //TODO Percentage Method
|
|
|
|
|
|
+ createPathPercent(set);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
@@ -285,13 +285,13 @@ public class StatisticGraph extends JPanel {
|
|
set.setValAt(-getTotalConsumptionAt(model.getObjectsOnCanvas(), model.getCurIteration()), model.getCurIteration());
|
|
set.setValAt(-getTotalConsumptionAt(model.getObjectsOnCanvas(), model.getCurIteration()), model.getCurIteration());
|
|
break;
|
|
break;
|
|
case TrackedDataSet.PERCENT_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_SUPPLIED:
|
|
-
|
|
|
|
|
|
+ set.setValAt(getPercentState(model.getObjectsOnCanvas(), HolonObject.SUPPLIED), model.getCurIteration());
|
|
break;
|
|
break;
|
|
case TrackedDataSet.PERCENT_NOT_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_NOT_SUPPLIED:
|
|
-
|
|
|
|
|
|
+ set.setValAt(getPercentState(model.getObjectsOnCanvas(), HolonObject.NOT_SUPPLIED), model.getCurIteration());
|
|
break;
|
|
break;
|
|
case TrackedDataSet.PERCENT_PARTIAL_SUPPLIED:
|
|
case TrackedDataSet.PERCENT_PARTIAL_SUPPLIED:
|
|
-
|
|
|
|
|
|
+ set.setValAt(getPercentState(model.getObjectsOnCanvas(), HolonObject.PARTIALLY_SUPPLIED), model.getCurIteration());
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
@@ -348,6 +348,31 @@ public class StatisticGraph extends JPanel {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * create Path for percent values
|
|
|
|
+ *
|
|
|
|
+ * @param set
|
|
|
|
+ */
|
|
|
|
+ private void createPathPercent(TrackedDataSet set) {
|
|
|
|
+ boolean init = true;
|
|
|
|
+ path.moveTo(0, 0);
|
|
|
|
+ for (int i = 0; i < model.getCurIteration(); i++) {
|
|
|
|
+ if (init && set.getValues()[i] != -1) {
|
|
|
|
+ path.moveTo(i * this.getWidth() / model.getIterations() - 1, convertToCanvasY(set.getValues()[i]*maximum));
|
|
|
|
+ init = false;
|
|
|
|
+ }
|
|
|
|
+ if (!init) {
|
|
|
|
+ if (set.getValues()[i + 1] != -1) {
|
|
|
|
+ path.lineTo((i + 1) * this.getWidth() / model.getIterations(),
|
|
|
|
+ convertToCanvasY(set.getValues()[i + 1]*maximum));
|
|
|
|
+ } else {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* get the max total production of the given Objects
|
|
* get the max total production of the given Objects
|
|
*
|
|
*
|
|
@@ -437,5 +462,18 @@ public class StatisticGraph extends JPanel {
|
|
}
|
|
}
|
|
return val;
|
|
return val;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * get the Percentage of how many objects with the given state are in the given List
|
|
|
|
+ *
|
|
|
|
+ * @param objects List of Objects
|
|
|
|
+ */
|
|
|
|
+ private float getPercentState(ArrayList<AbstractCpsObject> objects, int state) {
|
|
|
|
+ float count = controller.getNumberHolonObjects(objects);
|
|
|
|
+ float stateObjectss= controller.getNumberStateObjects(objects, state);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return stateObjectss/count;
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|