Kevin Trometer 8 lat temu
rodzic
commit
1052835022
1 zmienionych plików z 16 dodań i 20 usunięć
  1. 16 20
      src/ui/view/MyCanvas.java

+ 16 - 20
src/ui/view/MyCanvas.java

@@ -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;