|
@@ -214,19 +214,19 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
@Override
|
|
@Override
|
|
public void actionPerformed(ActionEvent e) {
|
|
public void actionPerformed(ActionEvent e) {
|
|
// Remove the selected Object objects
|
|
// Remove the selected Object objects
|
|
- for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
|
|
|
|
|
|
+ for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
|
|
controller.delObjUpperNode(cps, upperNode);
|
|
controller.delObjUpperNode(cps, upperNode);
|
|
// Remove UpperNodeTab if UpperNode deleted
|
|
// Remove UpperNodeTab if UpperNode deleted
|
|
- if(cps instanceof CpsUpperNode){
|
|
|
|
|
|
+ if (cps instanceof CpsUpperNode) {
|
|
JTabbedPane tabbedPane = (JTabbedPane) getParent().getParent().getParent();
|
|
JTabbedPane tabbedPane = (JTabbedPane) getParent().getParent().getParent();
|
|
for (int i = 2; i < tabbedPane.getTabCount(); i++) {
|
|
for (int i = 2; i < tabbedPane.getTabCount(); i++) {
|
|
- if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport().getComponent(0)).upperNode
|
|
|
|
- .getID() == cps.getID()) {
|
|
|
|
|
|
+ if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport()
|
|
|
|
+ .getComponent(0)).upperNode.getID() == cps.getID()) {
|
|
tabbedPane.remove(i);
|
|
tabbedPane.remove(i);
|
|
- i = tabbedPane.getTabCount();
|
|
|
|
|
|
+ i = tabbedPane.getTabCount();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
model.getSelectedCpsObjects().clear();
|
|
model.getSelectedCpsObjects().clear();
|
|
tempCps = null;
|
|
tempCps = null;
|
|
@@ -280,12 +280,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
g2.setRenderingHints(rh);
|
|
g2.setRenderingHints(rh);
|
|
|
|
|
|
// Left Border
|
|
// Left Border
|
|
- borderPos = (int) (model.getScale()+scalediv20+scalediv20+10);
|
|
|
|
|
|
+ borderPos = (int) (model.getScale() + scalediv20 + scalediv20 + 10);
|
|
g2.setColor(new Color(230, 230, 230));
|
|
g2.setColor(new Color(230, 230, 230));
|
|
g2.fillRect(0, 0, borderPos, this.getHeight());
|
|
g2.fillRect(0, 0, borderPos, this.getHeight());
|
|
g2.setColor(Color.BLACK);
|
|
g2.setColor(Color.BLACK);
|
|
g2.drawLine(0, 0, this.getWidth(), 0);
|
|
g2.drawLine(0, 0, this.getWidth(), 0);
|
|
-
|
|
|
|
|
|
|
|
// Test SubNet Coloring
|
|
// Test SubNet Coloring
|
|
int i = 0;
|
|
int i = 0;
|
|
@@ -461,13 +460,30 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
// Objects connected to upperNode
|
|
// Objects connected to upperNode
|
|
int count = 0;
|
|
int count = 0;
|
|
for (CpsEdge e : upperNode.getConnections()) {
|
|
for (CpsEdge e : upperNode.getConnections()) {
|
|
-
|
|
|
|
AbstractCpsObject cps;
|
|
AbstractCpsObject cps;
|
|
if (e.getA().equals(this.upperNode)) {
|
|
if (e.getA().equals(this.upperNode)) {
|
|
cps = e.getB();
|
|
cps = e.getB();
|
|
} else {
|
|
} else {
|
|
cps = e.getA();
|
|
cps = e.getA();
|
|
}
|
|
}
|
|
|
|
+ // Show and Highlight
|
|
|
|
+ if (model.getSelectedCpsObjects().contains(cps)) {
|
|
|
|
+ for (CpsEdge ed : cps.getConnections()) {
|
|
|
|
+ AbstractCpsObject obj = null;
|
|
|
|
+ if (upperNode.getNodes().contains(ed.getA())) {
|
|
|
|
+ obj = ed.getA();
|
|
|
|
+ } else if (upperNode.getNodes().contains(ed.getB())) {
|
|
|
|
+ obj = ed.getB();
|
|
|
|
+ }
|
|
|
|
+ if (obj != null) {
|
|
|
|
+ g2.setColor(Color.BLUE);
|
|
|
|
+ g2.drawLine(obj.getPosition().x + model.getScaleDiv2(),
|
|
|
|
+ obj.getPosition().y + model.getScaleDiv2(), (borderPos >> 1),
|
|
|
|
+ (int) (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count)
|
|
|
|
+ + model.getScaleDiv2());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
// Border Highlighting
|
|
// Border Highlighting
|
|
g2.setColor(cps.getBorderColor());
|
|
g2.setColor(cps.getBorderColor());
|
|
@@ -519,11 +535,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
controller.getScale(), null);
|
|
controller.getScale(), null);
|
|
count++;
|
|
count++;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
// Dragg Highlighting
|
|
// Dragg Highlighting
|
|
|
|
+ g2.setStroke(new BasicStroke(1));
|
|
if (doMark) {
|
|
if (doMark) {
|
|
g2.setColor(Color.BLACK);
|
|
g2.setColor(Color.BLACK);
|
|
- g2.setStroke(new BasicStroke(1));
|
|
|
|
if (sx > x && sy > y) {
|
|
if (sx > x && sy > y) {
|
|
g2.drawRect(x, y, sx - x, sy - y);
|
|
g2.drawRect(x, y, sx - x, sy - y);
|
|
} else if (sx < x && sy < y) {
|
|
} else if (sx < x && sy < y) {
|
|
@@ -534,8 +550,8 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
g2.drawRect(sx, y, x - sx, sy - y);
|
|
g2.drawRect(sx, y, x - sx, sy - y);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- //Border Line
|
|
|
|
|
|
+
|
|
|
|
+ // Border Line
|
|
g2.setColor(Color.BLACK);
|
|
g2.setColor(Color.BLACK);
|
|
g2.drawLine(borderPos, 0, borderPos, this.getHeight());
|
|
g2.drawLine(borderPos, 0, borderPos, this.getHeight());
|
|
}
|
|
}
|
|
@@ -584,6 +600,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
+ int count = 0;
|
|
for (CpsEdge ed : upperNode.getConnections()) {
|
|
for (CpsEdge ed : upperNode.getConnections()) {
|
|
AbstractCpsObject cps;
|
|
AbstractCpsObject cps;
|
|
if (ed.getA().equals(this.upperNode)) {
|
|
if (ed.getA().equals(this.upperNode)) {
|
|
@@ -591,7 +608,26 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
|
|
} else {
|
|
} else {
|
|
cps = ed.getA();
|
|
cps = ed.getA();
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ if (x - controller.getScale() <= ((borderPos >> 1) - model.getScaleDiv2())
|
|
|
|
+ && y - controller.getScale() <= (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count)
|
|
|
|
+ && x >= (borderPos >> 1) - model.getScaleDiv2()
|
|
|
|
+ && y >= (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count)) {
|
|
|
|
+ tempCps = cps;
|
|
|
|
+ controller.addTextToConsole("Selected: ", Color.BLACK, 12, false, 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.setSelectedObjectID(tempCps.getID());
|
|
|
|
+ // If drawing an Edge (CTRL down)
|
|
|
|
+ if (tempCps.getClass() == HolonObject.class) {
|
|
|
|
+ HolonObject tempObj = ((HolonObject) tempCps);
|
|
|
|
+ dataSelected = tempObj.getElements();
|
|
|
|
+ }
|
|
|
|
+ if (e.isShiftDown()) {
|
|
|
|
+ drawEdge = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ count++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|