|
@@ -361,25 +361,84 @@ public class UpdateController {
|
|
|
*/
|
|
|
public void paintHolonBody(int id) {
|
|
|
if (id != -1) {
|
|
|
- ArrayList<SubNet> subs = controller.getSimManager().getSubNets();
|
|
|
- if(!subs.isEmpty()){
|
|
|
- SubNet sub = subs.get(id);
|
|
|
- Object[] tempId = { "ID", id };
|
|
|
- model.getPropertyTable().addRow(tempId);
|
|
|
- Object[] tempObj = { "Nr. of Objects", sub.getObjects().size() };
|
|
|
- model.getPropertyTable().addRow(tempObj);
|
|
|
- Object[] tempEdg = { "Nr. of Edges", sub.getEdges().size() };
|
|
|
- model.getPropertyTable().addRow(tempEdg);
|
|
|
- Object[] tempSwi = { "Nr. of Switches", sub.getSwitches().size() };
|
|
|
- model.getPropertyTable().addRow(tempSwi);
|
|
|
- Object[] tempProd = {"Total Production", "" + getTotalProduction(new ArrayList<AbstractCpsObject>(sub.getObjects()))};
|
|
|
- model.getPropertyTable().addRow(tempProd);
|
|
|
- Object[] tempCons = {"Total Production", "" + getTotalConsumption(new ArrayList<AbstractCpsObject>(sub.getObjects()))};
|
|
|
- model.getPropertyTable().addRow(tempCons);
|
|
|
+ ArrayList<SubNet> subs = controller.getSimManager().getSubNets();
|
|
|
+ if (!subs.isEmpty()) {
|
|
|
+ SubNet sub = subs.get(id);
|
|
|
+ Object[] tempId = { "ID", id };
|
|
|
+ model.getPropertyTable().addRow(tempId);
|
|
|
+ Object[] tempObj = { "Nr. of Objects", sub.getObjects().size() };
|
|
|
+ model.getPropertyTable().addRow(tempObj);
|
|
|
+ Object[] tempEdg = { "Nr. of Edges", sub.getEdges().size() };
|
|
|
+ model.getPropertyTable().addRow(tempEdg);
|
|
|
+ Object[] tempSwi = { "Nr. of Switches", sub.getSwitches().size() };
|
|
|
+ model.getPropertyTable().addRow(tempSwi);
|
|
|
+ Object[] tempProd = { "Total Production",
|
|
|
+ "" + getTotalProduction(new ArrayList<AbstractCpsObject>(sub.getObjects())) };
|
|
|
+ model.getPropertyTable().addRow(tempProd);
|
|
|
+ Object[] tempCons = { "Total Production",
|
|
|
+ "" + getTotalConsumption(new ArrayList<AbstractCpsObject>(sub.getObjects())) };
|
|
|
+ model.getPropertyTable().addRow(tempCons);
|
|
|
+ Object[] tempEle = { "Nr. of Elements",
|
|
|
+ "" + getTotalElements(new ArrayList<AbstractCpsObject>(sub.getObjects())) };
|
|
|
+ model.getPropertyTable().addRow(tempEle);
|
|
|
+ Object[] tempProds = { "Nr. of Producers",
|
|
|
+ "" + getTotalProducers(new ArrayList<AbstractCpsObject>(sub.getObjects())) };
|
|
|
+ model.getPropertyTable().addRow(tempProds);
|
|
|
+ Object[] tempAct = { "Nr. of active Elements",
|
|
|
+ "" + getActiveElements(new ArrayList<AbstractCpsObject>(sub.getObjects())) };
|
|
|
+ model.getPropertyTable().addRow(tempAct);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int getActiveElements(ArrayList<AbstractCpsObject> objects) {
|
|
|
+ int val = 0;
|
|
|
+ for (AbstractCpsObject obj : objects) {
|
|
|
+ if (obj instanceof HolonObject) {
|
|
|
+ for (HolonElement ele : ((HolonObject) obj).getElements()) {
|
|
|
+ if (ele.getActive()) {
|
|
|
+ val += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (obj instanceof CpsUpperNode) {
|
|
|
+ val += getTotalProduction(((CpsUpperNode) obj).getNodes());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return val;
|
|
|
+ }
|
|
|
+
|
|
|
+ private int getTotalProducers(ArrayList<AbstractCpsObject> objects) {
|
|
|
+ float val = 0;
|
|
|
+ int prod = 0;
|
|
|
+ int tStep = model.getCurIteration();
|
|
|
+ for (AbstractCpsObject obj : objects) {
|
|
|
+ if (obj instanceof HolonObject) {
|
|
|
+ for (HolonElement ele : ((HolonObject) obj).getElements()) {
|
|
|
+ if (ele.getEnergyAt()[tStep] > 0 && ele.getActive()) {
|
|
|
+ val += ele.getEnergyAt()[tStep] * ele.getAmount();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (val > 0)
|
|
|
+ prod += 1;
|
|
|
+ } else if (obj instanceof CpsUpperNode) {
|
|
|
+ val += getTotalProduction(((CpsUpperNode) obj).getNodes());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return prod;
|
|
|
+ }
|
|
|
+
|
|
|
+ private float getTotalElements(ArrayList<AbstractCpsObject> objects) {
|
|
|
+ float val = 0;
|
|
|
+ for (AbstractCpsObject obj : objects) {
|
|
|
+ if (obj instanceof HolonObject) {
|
|
|
+ val += ((HolonObject) obj).getElements().size();
|
|
|
+ } else if (obj instanceof CpsUpperNode) {
|
|
|
+ val += getTotalConsumption(((CpsUpperNode) obj).getNodes());
|
|
|
}
|
|
|
}
|
|
|
+ return val;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private float getTotalConsumption(ArrayList<AbstractCpsObject> objects) {
|
|
|
float val = 0;
|
|
|
int tStep = model.getCurIteration();
|
|
@@ -396,22 +455,22 @@ public class UpdateController {
|
|
|
}
|
|
|
return val;
|
|
|
}
|
|
|
-
|
|
|
- private float getTotalProduction(ArrayList<AbstractCpsObject> arrayList) {
|
|
|
- float val = 0;
|
|
|
- int tStep = model.getCurIteration();
|
|
|
- for (AbstractCpsObject obj : arrayList) {
|
|
|
- if (obj instanceof HolonObject) {
|
|
|
- for (HolonElement ele : ((HolonObject) obj).getElements()) {
|
|
|
- if (ele.getEnergyAt()[tStep] > 0 && ele.getActive()) {
|
|
|
- val += ele.getEnergyAt()[tStep] * ele.getAmount();
|
|
|
- }
|
|
|
+
|
|
|
+ private float getTotalProduction(ArrayList<AbstractCpsObject> arrayList) {
|
|
|
+ float val = 0;
|
|
|
+ int tStep = model.getCurIteration();
|
|
|
+ for (AbstractCpsObject obj : arrayList) {
|
|
|
+ if (obj instanceof HolonObject) {
|
|
|
+ for (HolonElement ele : ((HolonObject) obj).getElements()) {
|
|
|
+ if (ele.getEnergyAt()[tStep] > 0 && ele.getActive()) {
|
|
|
+ val += ele.getEnergyAt()[tStep] * ele.getAmount();
|
|
|
}
|
|
|
- } else if (obj instanceof CpsUpperNode) {
|
|
|
- val += getTotalProduction(((CpsUpperNode) obj).getNodes());
|
|
|
}
|
|
|
+ } else if (obj instanceof CpsUpperNode) {
|
|
|
+ val += getTotalProduction(((CpsUpperNode) obj).getNodes());
|
|
|
}
|
|
|
- return val;
|
|
|
}
|
|
|
+ return val;
|
|
|
+ }
|
|
|
|
|
|
}
|