|
@@ -24,6 +24,7 @@ import javax.swing.JToolTip;
|
|
|
|
|
|
import com.sun.javafx.geom.Edge;
|
|
import com.sun.javafx.geom.Edge;
|
|
|
|
|
|
|
|
+import classes.CpsEdge;
|
|
import classes.CpsNode;
|
|
import classes.CpsNode;
|
|
import classes.CpsObject;
|
|
import classes.CpsObject;
|
|
import classes.HolonElement;
|
|
import classes.HolonElement;
|
|
@@ -106,26 +107,24 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
tempCps.getPosition().y + controller.getScaleDiv2(), x, y);
|
|
tempCps.getPosition().y + controller.getScaleDiv2(), x, y);
|
|
|
|
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
- for (CpsObject con : cps.getConnectedTo()) {
|
|
|
|
- if (con.getID() != model.getSelectedObjectID() && cps.getID() != model.getSelectedObjectID())
|
|
|
|
|
|
+ for (Pair<CpsObject, CpsEdge> con : cps.getConnectedTo()) {
|
|
|
|
+ if (con.getKey().getID() != model.getSelectedObjectID() && cps.getID() != model.getSelectedObjectID())
|
|
g2.drawLine(cps.getPosition().x + controller.getScaleDiv2(),
|
|
g2.drawLine(cps.getPosition().x + controller.getScaleDiv2(),
|
|
cps.getPosition().y + controller.getScaleDiv2(),
|
|
cps.getPosition().y + controller.getScaleDiv2(),
|
|
- con.getPosition().x + controller.getScaleDiv2(),
|
|
|
|
- con.getPosition().y + controller.getScaleDiv2());
|
|
|
|
- g2.drawString("100", (cps.getPosition().x + con.getPosition().x) / 2 + model.getScaleDiv2(),
|
|
|
|
- (cps.getPosition().y + con.getPosition().y) / 2 + model.getScaleDiv2());
|
|
|
|
|
|
+ con.getKey().getPosition().x + controller.getScaleDiv2(),
|
|
|
|
+ con.getKey().getPosition().y + controller.getScaleDiv2());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Highlighted Edge
|
|
// Highlighted Edge
|
|
g2.setColor(Color.GREEN);
|
|
g2.setColor(Color.GREEN);
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
- for (CpsObject con : cps.getConnectedTo()) {
|
|
|
|
- if (con.getID() == model.getSelectedObjectID())
|
|
|
|
|
|
+ for (Pair<CpsObject, CpsEdge> con : cps.getConnectedTo()) {
|
|
|
|
+ if (con.getKey().getID() == model.getSelectedObjectID())
|
|
g2.drawLine(cps.getPosition().x + controller.getScaleDiv2(),
|
|
g2.drawLine(cps.getPosition().x + controller.getScaleDiv2(),
|
|
cps.getPosition().y + controller.getScaleDiv2(),
|
|
cps.getPosition().y + controller.getScaleDiv2(),
|
|
- con.getPosition().x + controller.getScaleDiv2(),
|
|
|
|
- con.getPosition().y + controller.getScaleDiv2());
|
|
|
|
|
|
+ con.getKey().getPosition().x + controller.getScaleDiv2(),
|
|
|
|
+ con.getKey().getPosition().y + controller.getScaleDiv2());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -208,8 +207,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
}
|
|
}
|
|
|
|
|
|
// Rightclick List
|
|
// Rightclick List
|
|
- if (e.getButton() == e.BUTTON3) {
|
|
|
|
- if (e.getButton() == e.BUTTON3 && tempCps != null) {
|
|
|
|
|
|
+ if (e.getButton() == MouseEvent.BUTTON3) {
|
|
|
|
+ if (e.getButton() == MouseEvent.BUTTON3 && tempCps != null) {
|
|
itemDelete.setEnabled(true);
|
|
itemDelete.setEnabled(true);
|
|
} else {
|
|
} else {
|
|
itemDelete.setEnabled(false);
|
|
itemDelete.setEnabled(false);
|
|
@@ -299,19 +298,44 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
*/
|
|
*/
|
|
private void drawDeleteEdge() {
|
|
private void drawDeleteEdge() {
|
|
boolean node = true;
|
|
boolean node = true;
|
|
|
|
+ boolean newEdge = true;
|
|
|
|
+ CpsEdge e;
|
|
CpsNode n = null;
|
|
CpsNode n = null;
|
|
|
|
+ Pair<CpsObject, CpsEdge> tempPair = null;
|
|
|
|
+ Pair<CpsObject, CpsEdge> cpsPair = null;
|
|
|
|
+
|
|
|
|
+ for (Pair<CpsObject, CpsEdge> p: tempCps.getConnections()) {
|
|
|
|
+ if(p.getKey() == tempCps){
|
|
|
|
+ cpsPair = p;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
cx = cps.getPosition().x;
|
|
cx = cps.getPosition().x;
|
|
cy = cps.getPosition().y;
|
|
cy = cps.getPosition().y;
|
|
if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy
|
|
if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy
|
|
&& cps != tempCps) {
|
|
&& cps != tempCps) {
|
|
node = false;
|
|
node = false;
|
|
- if (!cps.getConnectedTo().contains(tempCps)) {
|
|
|
|
- cps.AddConnection(tempCps);
|
|
|
|
- tempCps.AddConnection(cps);
|
|
|
|
- } else {
|
|
|
|
- cps.getConnectedTo().remove(tempCps);
|
|
|
|
- tempCps.getConnectedTo().remove(cps);
|
|
|
|
|
|
+ for (Pair<CpsObject, CpsEdge> p: tempCps.getConnections()) {
|
|
|
|
+ if(p.getKey() == cps){
|
|
|
|
+ System.out.println("remove");
|
|
|
|
+ for (Pair<CpsObject, CpsEdge> pp: tempCps.getConnections()) {
|
|
|
|
+ if(p.getKey() == tempCps){
|
|
|
|
+ cpsPair = p;
|
|
|
|
+ cps.getConnectedTo().remove(tempPair);
|
|
|
|
+ tempCps.getConnectedTo().remove(cpsPair);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (newEdge) {
|
|
|
|
+ e = new CpsEdge(cps, tempCps);
|
|
|
|
+ tempPair = new Pair<CpsObject, CpsEdge>(tempCps, e);
|
|
|
|
+ cpsPair = new Pair<CpsObject, CpsEdge>(cps, e);
|
|
|
|
+
|
|
|
|
+ cps.AddConnection(tempPair);
|
|
|
|
+ tempCps.AddConnection(cpsPair);
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -319,8 +343,13 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
n = new CpsNode("Node");
|
|
n = new CpsNode("Node");
|
|
n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
|
|
n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
|
|
controller.addObjectCanvas(n);
|
|
controller.addObjectCanvas(n);
|
|
- n.AddConnection(tempCps);
|
|
|
|
- tempCps.AddConnection(n);
|
|
|
|
|
|
+
|
|
|
|
+ e = new CpsEdge(n, tempCps);
|
|
|
|
+ tempPair = new Pair<CpsObject, CpsEdge>(tempCps, e);
|
|
|
|
+ cpsPair = new Pair<CpsObject, CpsEdge>(n, e);
|
|
|
|
+
|
|
|
|
+ n.AddConnection(tempPair);
|
|
|
|
+ tempCps.AddConnection(cpsPair);
|
|
System.out.println("node ID: " + n.getID());
|
|
System.out.println("node ID: " + n.getID());
|
|
}
|
|
}
|
|
}
|
|
}
|