|
@@ -15,11 +15,14 @@ import javax.swing.ImageIcon;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.Timer;
|
|
import javax.swing.Timer;
|
|
|
|
|
|
|
|
+import com.sun.media.jfxmedia.track.Track;
|
|
|
|
+
|
|
import classes.AbstractCpsObject;
|
|
import classes.AbstractCpsObject;
|
|
import classes.CpsUpperNode;
|
|
import classes.CpsUpperNode;
|
|
import classes.HolonElement;
|
|
import classes.HolonElement;
|
|
import classes.HolonObject;
|
|
import classes.HolonObject;
|
|
import classes.HolonSwitch;
|
|
import classes.HolonSwitch;
|
|
|
|
+import classes.SubNet;
|
|
import classes.TrackedDataSet;
|
|
import classes.TrackedDataSet;
|
|
import ui.controller.Control;
|
|
import ui.controller.Control;
|
|
import ui.model.Model;
|
|
import ui.model.Model;
|
|
@@ -46,7 +49,7 @@ public class StatisticGraph extends JPanel {
|
|
GeneralPath path = new GeneralPath();
|
|
GeneralPath path = new GeneralPath();
|
|
|
|
|
|
// Data
|
|
// Data
|
|
- public ArrayList<TrackedDataSet> objects = new ArrayList<>();
|
|
|
|
|
|
+ private ArrayList<TrackedDataSet> dataSets = new ArrayList<>();
|
|
|
|
|
|
/**
|
|
/**
|
|
* Constructor.
|
|
* Constructor.
|
|
@@ -59,7 +62,6 @@ public class StatisticGraph extends JPanel {
|
|
public StatisticGraph(final Model model, Control control) {
|
|
public StatisticGraph(final Model model, Control control) {
|
|
this.controller = control;
|
|
this.controller = control;
|
|
this.model = model;
|
|
this.model = model;
|
|
-
|
|
|
|
this.setBackground(Color.WHITE);
|
|
this.setBackground(Color.WHITE);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -101,7 +103,7 @@ public class StatisticGraph extends JPanel {
|
|
addValues();
|
|
addValues();
|
|
|
|
|
|
// Create Paths and draw them
|
|
// Create Paths and draw them
|
|
- for (TrackedDataSet set : objects) {
|
|
|
|
|
|
+ for (TrackedDataSet set : dataSets) {
|
|
path.reset();
|
|
path.reset();
|
|
switch (set.getProperty()) {
|
|
switch (set.getProperty()) {
|
|
case TrackedDataSet.CONSUMPTION:
|
|
case TrackedDataSet.CONSUMPTION:
|
|
@@ -112,6 +114,9 @@ public class StatisticGraph extends JPanel {
|
|
case TrackedDataSet.AMOUNT_HOLONS:
|
|
case TrackedDataSet.AMOUNT_HOLONS:
|
|
case TrackedDataSet.GROUP_CONSUMPTION:
|
|
case TrackedDataSet.GROUP_CONSUMPTION:
|
|
case TrackedDataSet.GROUP_PRODUCTION:
|
|
case TrackedDataSet.GROUP_PRODUCTION:
|
|
|
|
+ case TrackedDataSet.AMOUNT_CLOSED_SWITCHES:
|
|
|
|
+ case TrackedDataSet.AVG_AMOUNT_OBJECTS_IN_HOLONS:
|
|
|
|
+ case TrackedDataSet.AVG_AMOUNT_ELEMENTS_IN_HOLONS:
|
|
createPathFloats(set);
|
|
createPathFloats(set);
|
|
break;
|
|
break;
|
|
case TrackedDataSet.ON_OFF:
|
|
case TrackedDataSet.ON_OFF:
|
|
@@ -139,7 +144,7 @@ public class StatisticGraph extends JPanel {
|
|
* the Object to add
|
|
* the Object to add
|
|
*/
|
|
*/
|
|
public void addObject(TrackedDataSet set) {
|
|
public void addObject(TrackedDataSet set) {
|
|
- objects.add(set);
|
|
|
|
|
|
+ dataSets.add(set);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -149,7 +154,7 @@ public class StatisticGraph extends JPanel {
|
|
* the id of the Object to remove
|
|
* the id of the Object to remove
|
|
*/
|
|
*/
|
|
public void removeObject(int id) {
|
|
public void removeObject(int id) {
|
|
- objects.remove(id);
|
|
|
|
|
|
+ dataSets.remove(id);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -184,7 +189,7 @@ public class StatisticGraph extends JPanel {
|
|
*/
|
|
*/
|
|
public void calcMaximum() {
|
|
public void calcMaximum() {
|
|
maximum = 0;
|
|
maximum = 0;
|
|
- for (TrackedDataSet set : objects) {
|
|
|
|
|
|
+ for (TrackedDataSet set : dataSets) {
|
|
float val = 0;
|
|
float val = 0;
|
|
switch (set.getProperty()) {
|
|
switch (set.getProperty()) {
|
|
case TrackedDataSet.CONSUMPTION:
|
|
case TrackedDataSet.CONSUMPTION:
|
|
@@ -237,6 +242,28 @@ public class StatisticGraph extends JPanel {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
+ case TrackedDataSet.AMOUNT_CLOSED_SWITCHES:
|
|
|
|
+ val = model.getSwitches().size();
|
|
|
|
+ break;
|
|
|
|
+ case TrackedDataSet.AVG_AMOUNT_OBJECTS_IN_HOLONS:
|
|
|
|
+ for (SubNet sub : controller.getSimManager().getSubNets()) {
|
|
|
|
+ if (val < sub.getObjects().size()) {
|
|
|
|
+ val = sub.getObjects().size();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case TrackedDataSet.AVG_AMOUNT_ELEMENTS_IN_HOLONS:
|
|
|
|
+ float eCount = 0;
|
|
|
|
+ for (SubNet sub : controller.getSimManager().getSubNets()) {
|
|
|
|
+ for (HolonObject obj : sub.getObjects()) {
|
|
|
|
+ eCount += obj.getElements().size();
|
|
|
|
+ }
|
|
|
|
+ if (val < eCount) {
|
|
|
|
+ val = eCount;
|
|
|
|
+ }
|
|
|
|
+ eCount = 0;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
maximum = 0;
|
|
maximum = 0;
|
|
break;
|
|
break;
|
|
@@ -252,7 +279,7 @@ public class StatisticGraph extends JPanel {
|
|
* Add the Current Values to each set
|
|
* Add the Current Values to each set
|
|
*/
|
|
*/
|
|
private void addValues() {
|
|
private void addValues() {
|
|
- for (TrackedDataSet set : objects) {
|
|
|
|
|
|
+ for (TrackedDataSet set : dataSets) {
|
|
float val = 0;
|
|
float val = 0;
|
|
switch (set.getProperty()) {
|
|
switch (set.getProperty()) {
|
|
case TrackedDataSet.CONSUMPTION:
|
|
case TrackedDataSet.CONSUMPTION:
|
|
@@ -316,16 +343,42 @@ public class StatisticGraph extends JPanel {
|
|
model.getCurIteration());
|
|
model.getCurIteration());
|
|
break;
|
|
break;
|
|
case TrackedDataSet.GROUP_PRODUCTION:
|
|
case TrackedDataSet.GROUP_PRODUCTION:
|
|
- set.setValAt(getTotalProductionAt(((CpsUpperNode) set.getCpsObject()).getNodes(), model.getCurIteration()),
|
|
|
|
|
|
+ set.setValAt(
|
|
|
|
+ getTotalProductionAt(((CpsUpperNode) set.getCpsObject()).getNodes(), model.getCurIteration()),
|
|
model.getCurIteration());
|
|
model.getCurIteration());
|
|
break;
|
|
break;
|
|
case TrackedDataSet.GROUP_CONSUMPTION:
|
|
case TrackedDataSet.GROUP_CONSUMPTION:
|
|
- set.setValAt(-getTotalConsumptionAt(((CpsUpperNode) set.getCpsObject()).getNodes(), model.getCurIteration()),
|
|
|
|
|
|
+ set.setValAt(
|
|
|
|
+ -getTotalConsumptionAt(((CpsUpperNode) set.getCpsObject()).getNodes(), model.getCurIteration()),
|
|
model.getCurIteration());
|
|
model.getCurIteration());
|
|
break;
|
|
break;
|
|
case TrackedDataSet.AMOUNT_HOLONS:
|
|
case TrackedDataSet.AMOUNT_HOLONS:
|
|
set.setValAt(controller.getSimManager().getSubNets().size(), model.getCurIteration());
|
|
set.setValAt(controller.getSimManager().getSubNets().size(), model.getCurIteration());
|
|
break;
|
|
break;
|
|
|
|
+ case TrackedDataSet.AMOUNT_CLOSED_SWITCHES:
|
|
|
|
+ for (HolonSwitch s : model.getSwitches()) {
|
|
|
|
+ if (s.getState(model.getCurIteration())) {
|
|
|
|
+ val++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ set.setValAt(val, model.getCurIteration());
|
|
|
|
+ break;
|
|
|
|
+ case TrackedDataSet.AVG_AMOUNT_OBJECTS_IN_HOLONS:
|
|
|
|
+ for (SubNet sub : controller.getSimManager().getSubNets()) {
|
|
|
|
+ val += sub.getObjects().size();
|
|
|
|
+ }
|
|
|
|
+ val /= controller.getSimManager().getSubNets().size();
|
|
|
|
+ set.setValAt(val, model.getCurIteration());
|
|
|
|
+ break;
|
|
|
|
+ case TrackedDataSet.AVG_AMOUNT_ELEMENTS_IN_HOLONS:
|
|
|
|
+ for (SubNet sub : controller.getSimManager().getSubNets()) {
|
|
|
|
+ for (HolonObject obj : sub.getObjects()) {
|
|
|
|
+ val += obj.getElements().size();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ val /=controller.getSimManager().getSubNets().size();
|
|
|
|
+ set.setValAt(val, model.getCurIteration());
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -514,5 +567,9 @@ public class StatisticGraph extends JPanel {
|
|
|
|
|
|
return stateObjectss / count;
|
|
return stateObjectss / count;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public ArrayList<TrackedDataSet> getDataSets(){
|
|
|
|
+ return dataSets;
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|