|
@@ -92,6 +92,9 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
combo.addItem("Nr. of Switches");
|
|
combo.addItem("Nr. of Switches");
|
|
combo.addItem("Total Production");
|
|
combo.addItem("Total Production");
|
|
combo.addItem("Total Consumption");
|
|
combo.addItem("Total Consumption");
|
|
|
|
+ combo.addItem("Nr. of Elements");
|
|
|
|
+ combo.addItem("Nr. of Producers");
|
|
|
|
+ combo.addItem("Nr. of active Elements");
|
|
|
|
|
|
combo.addActionListener(new ActionListener() {
|
|
combo.addActionListener(new ActionListener() {
|
|
@Override
|
|
@Override
|
|
@@ -103,7 +106,7 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
this.addMouseMotionListener(this);
|
|
this.addMouseMotionListener(this);
|
|
|
|
|
|
chckbxSort.addChangeListener(new ChangeListener() {
|
|
chckbxSort.addChangeListener(new ChangeListener() {
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void stateChanged(ChangeEvent e) {
|
|
public void stateChanged(ChangeEvent e) {
|
|
sizeChange = true;
|
|
sizeChange = true;
|
|
@@ -169,7 +172,7 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
sizeChange = false;
|
|
sizeChange = false;
|
|
HolonBody tmp = null;
|
|
HolonBody tmp = null;
|
|
int j = 0;
|
|
int j = 0;
|
|
- sortedSize.addAll(bodies);
|
|
|
|
|
|
+ sortedSize.addAll(bodies);
|
|
insertionSizeSort(sortedSize);
|
|
insertionSizeSort(sortedSize);
|
|
sortedDist.addAll(bodies);
|
|
sortedDist.addAll(bodies);
|
|
|
|
|
|
@@ -177,7 +180,7 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
for (int i = 0; i < subCount; i++) {
|
|
for (int i = 0; i < subCount; i++) {
|
|
for (j = 0; j < subCount; j++) {
|
|
for (j = 0; j < subCount; j++) {
|
|
if (sortedSize.get(subCount - 1 - i).getId() == bodies.get(j).getId()) {
|
|
if (sortedSize.get(subCount - 1 - i).getId() == bodies.get(j).getId()) {
|
|
- bodies.get(j).position = pos.get(i);
|
|
|
|
|
|
+ bodies.get(j).position = pos.get(i);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -245,12 +248,21 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
case 3:
|
|
case 3:
|
|
info = "" + subnets.get(bodyNr).getSwitches().size();
|
|
info = "" + subnets.get(bodyNr).getSwitches().size();
|
|
break;
|
|
break;
|
|
- case 4:
|
|
|
|
|
|
+ case 4:
|
|
info = "" + getTotalProduction(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
info = "" + getTotalProduction(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
break;
|
|
break;
|
|
case 5:
|
|
case 5:
|
|
info = "" + getTotalConsumption(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
info = "" + getTotalConsumption(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
break;
|
|
break;
|
|
|
|
+ case 6:
|
|
|
|
+ info = "" + getTotalElements(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
|
|
+ break;
|
|
|
|
+ case 7:
|
|
|
|
+ info = "" + getTotalProducers(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
|
|
+ break;
|
|
|
|
+ case 8:
|
|
|
|
+ info = "" + getActiveElements(new ArrayList<AbstractCpsObject>(subnets.get(bodyNr).getObjects()));
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
info = "" + bodyNr;
|
|
info = "" + bodyNr;
|
|
break;
|
|
break;
|
|
@@ -261,6 +273,54 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ 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) {
|
|
private float getTotalConsumption(ArrayList<AbstractCpsObject> objects) {
|
|
float val = 0;
|
|
float val = 0;
|
|
int tStep = model.getCurIteration();
|
|
int tStep = model.getCurIteration();
|
|
@@ -388,7 +448,7 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
center.height /= 2;
|
|
center.height /= 2;
|
|
center.width /= 2;
|
|
center.width /= 2;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void mouseWheelMoved(MouseWheelEvent e) {
|
|
public void mouseWheelMoved(MouseWheelEvent e) {
|
|
controller.setHolonBodyScale(model.getHolonBodyScale() + (-e.getScrollAmount() * e.getWheelRotation()));
|
|
controller.setHolonBodyScale(model.getHolonBodyScale() + (-e.getScrollAmount() * e.getWheelRotation()));
|
|
@@ -437,15 +497,15 @@ public class HolonCanvas extends JPanel implements MouseWheelListener, MouseList
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void mouseDragged(MouseEvent e) {
|
|
public void mouseDragged(MouseEvent e) {
|
|
- if(toDrag!=null){
|
|
|
|
|
|
+ if (toDrag != null) {
|
|
toDrag.position = new Vector2d(e.getX(), e.getY());
|
|
toDrag.position = new Vector2d(e.getX(), e.getY());
|
|
- }
|
|
|
|
|
|
+ }
|
|
repaint();
|
|
repaint();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void mouseMoved(MouseEvent e) {
|
|
public void mouseMoved(MouseEvent e) {
|
|
// TODO Auto-generated method stub
|
|
// TODO Auto-generated method stub
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|