|
@@ -56,6 +56,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
ArrayList<CpsObject> TempSelected = new ArrayList<CpsObject>();
|
|
|
|
|
|
private boolean dragging = false; // for dragging
|
|
|
+ private boolean dragged = false; // if an object/objects was/were dragged
|
|
|
private boolean drawEdge = false; // for drawing edges
|
|
|
private boolean click = false; // for double click
|
|
|
private boolean doMark = false; // for double click
|
|
@@ -241,14 +242,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
|
|
|
@Override
|
|
|
public void mouseClicked(MouseEvent e) {
|
|
|
- // clear SelectedObjects
|
|
|
- if (!e.isControlDown() && dragging == false) {
|
|
|
- model.getSelectedCpsObjects().clear();
|
|
|
- TempSelected.clear();
|
|
|
- if (tempCps != null) {
|
|
|
- controller.addSelectedObject(tempCps);
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -287,6 +281,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
if (tempCps == null) {
|
|
|
edgeHighlight = mousePositionOnEdge(x, y);
|
|
|
controller.setSelecteEdge(edgeHighlight);
|
|
|
+ if (!e.isControlDown()) {
|
|
|
+ model.getSelectedCpsObjects().clear();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (edgeHighlight == null && tempCps == null) {
|
|
@@ -302,17 +299,18 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
|
|
|
@Override
|
|
|
public void mouseReleased(MouseEvent e) {
|
|
|
+ dragging = false;
|
|
|
+
|
|
|
if (drawEdge) {
|
|
|
drawEdge = false;
|
|
|
drawDeleteEdge();
|
|
|
}
|
|
|
|
|
|
- // if Dragged reposition the Object
|
|
|
- if (dragging) {
|
|
|
- x = e.getX();
|
|
|
- y = e.getY();
|
|
|
- dragging = false;
|
|
|
+ if (!e.isControlDown() && dragged == false && tempCps != null) {
|
|
|
+ model.getSelectedCpsObjects().clear();
|
|
|
+ controller.addSelectedObject(tempCps);
|
|
|
}
|
|
|
+ dragged = false;
|
|
|
|
|
|
// Rightclick List
|
|
|
if (e.getButton() == MouseEvent.BUTTON3) {
|
|
@@ -331,6 +329,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
controller.addSelectedObject(cps);
|
|
|
}
|
|
|
}
|
|
|
+ TempSelected.clear();
|
|
|
}
|
|
|
|
|
|
controller.calculateStateForTimeStep(model.getCurIteration());
|
|
@@ -344,16 +343,16 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
// If Edge is drawn
|
|
|
x = e.getX();
|
|
|
y = e.getY();
|
|
|
- if (!model.getSelectedCpsObjects().contains(tempCps)) {
|
|
|
+ if (!model.getSelectedCpsObjects().contains(tempCps) && doMark == false) {
|
|
|
model.getSelectedCpsObjects().clear();
|
|
|
- TempSelected.clear();
|
|
|
if (tempCps != null) {
|
|
|
controller.addSelectedObject(tempCps);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ System.out.println("test");
|
|
|
if (dragging) {
|
|
|
try {
|
|
|
+ dragged = true;
|
|
|
float xDist, yDist; // Distance
|
|
|
|
|
|
x = e.getX() - controller.getScaleDiv2();
|
|
@@ -406,10 +405,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
|
|
|
}
|
|
|
|
|
|
// Mark Objects
|
|
|
- TempSelected.clear();
|
|
|
- if (doMark)
|
|
|
-
|
|
|
- {
|
|
|
+ if (doMark){
|
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
|
int x1 = sx, x2 = x, y1 = sy, y2 = y;
|
|
|
|