|
@@ -52,6 +52,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
Graphics2D g2; // For Painting
|
|
|
private int cx, cy;
|
|
|
private int sx, sy; // Mark Coords
|
|
|
+ private float scalediv20;
|
|
|
|
|
|
ArrayList<HolonElement> dataSelected = new ArrayList<HolonElement>();
|
|
|
ArrayList<CpsObject> TempSelected = new ArrayList<CpsObject>();
|
|
@@ -73,8 +74,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
private JMenuItem itemCopy = new JMenuItem("Copy");
|
|
|
public JMenuItem itemPaste = new JMenuItem("Paste");
|
|
|
private JToolTip objectTT = new JToolTip();
|
|
|
-
|
|
|
- private Point mousePosition = new Point(); //Mouse Position when rightclicked
|
|
|
+
|
|
|
+ private Point mousePosition = new Point(); // Mouse Position when
|
|
|
+ // rightclicked
|
|
|
|
|
|
// contains the value of the Capacity for new created Edges
|
|
|
private float edgeCapacity;
|
|
@@ -83,7 +85,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
this.add(objectTT);
|
|
|
this.controller = control;
|
|
|
this.model = mod;
|
|
|
-
|
|
|
+
|
|
|
+ scalediv20 = model.getScale() / 20;
|
|
|
+
|
|
|
showedInformation[0] = true;
|
|
|
showedInformation[1] = true;
|
|
|
edgeCapacity = 10000;
|
|
@@ -111,7 +115,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
repaint();
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
itemCut.addActionListener(new ActionListener() {
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
@@ -120,7 +124,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
repaint();
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
itemCopy.addActionListener(new ActionListener() {
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
@@ -129,7 +133,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
repaint();
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
itemPaste.addActionListener(new ActionListener() {
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
@@ -249,6 +253,16 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
|
|
|
// Objects
|
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
|
+ // Border Highlighting
|
|
|
+ g2.setColor(cps.getBorderColor());
|
|
|
+ if (g2.getColor() != Color.WHITE) {
|
|
|
+ g2.fillRect((int) (cps.getPosition().x - scalediv20 - 3), (int) (cps.getPosition().y - scalediv20 - 3),
|
|
|
+ (int) (controller.getScale() + ((scalediv20 + 3) * 2)),
|
|
|
+ (int) (controller.getScale() + ((scalediv20 + 3) * 2)));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // node image
|
|
|
if (cps.getID() == model.getSelectedObjectID() && controller.searchByID(model.getSelectedObjectID()) != null
|
|
|
&& controller.searchByID(model.getSelectedObjectID()) instanceof CpsNode) {
|
|
|
img = new ImageIcon(this.getClass().getResource("/Images/node_selected.png")).getImage();
|
|
@@ -260,14 +274,14 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
((HolonSwitch) cps).setState(false);
|
|
|
}
|
|
|
}
|
|
|
+ // Highlighting
|
|
|
if ((cps == tempCps && model.getSelectedCpsObjects().size() == 0 && TempSelected.size() == 0)
|
|
|
|| model.getSelectedCpsObjects().contains(cps) || TempSelected.contains(cps)) {
|
|
|
g2.setColor(Color.BLUE);
|
|
|
- g2.fillRect(cps.getPosition().x - (controller.getScale() / 20),
|
|
|
- cps.getPosition().y - (controller.getScale() / 20),
|
|
|
- controller.getScale() + ((controller.getScale() / 20) * 2),
|
|
|
- controller.getScale() + ((controller.getScale() / 20) * 2));
|
|
|
- if(showedInformation[1] && cps instanceof HolonObject){
|
|
|
+ g2.fillRect((int) (cps.getPosition().x - scalediv20), (int) (cps.getPosition().y - scalediv20),
|
|
|
+ (int) (controller.getScale() + (scalediv20 * 2)),
|
|
|
+ (int) (controller.getScale() + (scalediv20 * 2)));
|
|
|
+ if (showedInformation[1] && cps instanceof HolonObject) {
|
|
|
g2.setColor(Color.BLACK);
|
|
|
float totalEnergy = ((HolonObject) cps).getCurrentEnergyAtTimeStep(model.getCurIteration());
|
|
|
g2.drawString(Float.toString(totalEnergy), cps.getPosition().x, cps.getPosition().y - 10);
|
|
@@ -275,17 +289,17 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
} else if (cps instanceof HolonObject) {
|
|
|
g2.setColor(((HolonObject) cps).getColor());
|
|
|
|
|
|
- g2.fillRect(cps.getPosition().x - (controller.getScale() / 20),
|
|
|
- cps.getPosition().y - (controller.getScale() / 20),
|
|
|
- controller.getScale() + ((controller.getScale() / 20) * 2),
|
|
|
- controller.getScale() + ((controller.getScale() / 20) * 2));
|
|
|
-
|
|
|
- if(showedInformation[1]){
|
|
|
+ g2.fillRect((int) (cps.getPosition().x - scalediv20), (int) (cps.getPosition().y - scalediv20),
|
|
|
+ (int) (controller.getScale() + (scalediv20 * 2)),
|
|
|
+ (int) (controller.getScale() + (scalediv20 * 2)));
|
|
|
+
|
|
|
+ if (showedInformation[1]) {
|
|
|
g2.setColor(Color.BLACK);
|
|
|
float totalEnergy = ((HolonObject) cps).getCurrentEnergyAtTimeStep(model.getCurIteration());
|
|
|
g2.drawString(Float.toString(totalEnergy), cps.getPosition().x, cps.getPosition().y - 10);
|
|
|
}
|
|
|
}
|
|
|
+ // draw image
|
|
|
File checkPath = new File(cps.getImage());
|
|
|
if (checkPath.exists()) {
|
|
|
img = new ImageIcon(cps.getImage()).getImage();
|
|
@@ -339,9 +353,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
|
|
|
tempCps = cps;
|
|
|
controller.addTextToConsole("Selected: ", Color.BLACK, 12, false, false, false);
|
|
|
- controller.addTextToConsole(""+cps.getName(), Color.BLUE, 12, true, false, false);
|
|
|
+ controller.addTextToConsole("" + cps.getName(), Color.BLUE, 12, true, false, false);
|
|
|
controller.addTextToConsole(", ID:", Color.BLACK, 12, false, false, false);
|
|
|
- controller.addTextToConsole(""+cps.getID(), Color.RED, 12, true, false, true);
|
|
|
+ controller.addTextToConsole("" + cps.getID(), Color.RED, 12, true, false, true);
|
|
|
dragging = true;
|
|
|
// If drawing an Edge (CTRL down)
|
|
|
if (tempCps.getClass() == HolonObject.class) {
|
|
@@ -605,7 +619,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
node = false;
|
|
|
|
|
|
CpsNode n = new CpsNode("Node");
|
|
|
-
|
|
|
+
|
|
|
n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
|
|
|
controller.addObjectCanvas(n);
|
|
|
|
|
@@ -629,7 +643,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
// ins leere Gedragged
|
|
|
if (node) {
|
|
|
CpsNode n = new CpsNode("Node");
|
|
|
-
|
|
|
+
|
|
|
n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
|
|
|
controller.addObjectCanvas(n);
|
|
|
|