Browse Source

removes sortDebug Code, improves replacement & fixes wrong Highlights

- will no longer spam "Sort : 1" in the console
+ replacing objects will snap into Position of replaced Object
+ random replacements Highlights will no longer be shown, when dragging
  multiple Objects.
- disables replacing when dragging multiple Objects
Andreas T. Meyer-Berg 6 years ago
parent
commit
8a2a7cc192

+ 4 - 0
src/ui/controller/CanvasController.java

@@ -170,6 +170,10 @@ public class CanvasController {
 		}
 		/** delete 'toBeReplaced' new empty connections, to prevent Nullpointer*/
 		toBeReplaced.setConnections(new ArrayList<CpsEdge>(1));
+		/**
+		 * set Position of by to exactly toBeReplaced
+		 */
+		by.setPosition(toBeReplaced.getPosition());
 		deleteObjectOnCanvas(toBeReplaced);
 	}
 	

+ 4 - 0
src/ui/controller/NodeController.java

@@ -534,6 +534,10 @@ class NodeController {
 		}
 		/** delete 'toBeReplaced' new empty connections, to prevent Nullpointer*/
 		toBeReplaced.setConnections(new ArrayList<CpsEdge>(1));
+		/**
+		 * set Position of by to exactly toBeReplaced
+		 */
+		by.setPosition(toBeReplaced.getPosition());
 		deleteObjectInUpperNode(toBeReplaced, upperNode);
 	}
 

+ 0 - 1
src/ui/controller/UpdateController.java

@@ -108,7 +108,6 @@ public class UpdateController {
 	 * @return sorted HolonElement-List! 
 	 */
 	public LinkedList<HolonElement> sortElemList(LinkedList<HolonElement> elemList) {
-		System.out.println("Sort : "+sortBy);
 		switch(sortBy) {
 		case 0://"Object": 
 			elemList.sort(new ElemCompOnObj());

+ 6 - 4
src/ui/view/MyCanvas.java

@@ -603,9 +603,10 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 			try {
 				
 				/**
-				 * check if tempCps could replace an Object on the canvas
+				 * check if a unique tempCps could replace an Object on the canvas
 				 */
-				if(checkForReplacement(model.getObjectsOnCanvas(), tempCps, tempCps.getPosition().x, tempCps.getPosition().y)){
+				if(model.getSelectedCpsObjects().size()==1 
+						&& checkForReplacement(model.getObjectsOnCanvas(), tempCps, tempCps.getPosition().x, tempCps.getPosition().y)){
 					/**
 					 * replace on canvas
 					 */
@@ -651,7 +652,7 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 		// If Edge is drawn
 		x = e.getX();
 		y = e.getY();
-		checkForReplacement(0, 0);
+		
 		if (!model.getSelectedCpsObjects().contains(tempCps) && !doMark) {
 			model.getSelectedCpsObjects().clear();
 			if (tempCps != null) {
@@ -715,7 +716,8 @@ public class MyCanvas extends AbstractCanvas implements MouseListener,
 				/**
 				 * check if something might be replaced
 				 */
-				checkForReplacement(model.getObjectsOnCanvas(), tempCps, x, y);
+				if(model.getSelectedCpsObjects().size()==1)
+					checkForReplacement(model.getObjectsOnCanvas(), tempCps, x, y);
 				
 				repaint();
 			} catch (Exception eex) {

+ 8 - 7
src/ui/view/UpperNodeCanvas.java

@@ -728,7 +728,7 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
 				/**
 				 * check if tempCps could replace an Object on the UpperNodeanvas
 				 */
-				if(checkForReplacement(upperNode.getNodes(), tempCps, tempCps.getPosition().x, tempCps.getPosition().y)){
+				if(model.getSelectedCpsObjects().size() == 1 && checkForReplacement(upperNode.getNodes(), tempCps, tempCps.getPosition().x, tempCps.getPosition().y)){
 					/**
 					 * replace on canvas
 					 */
@@ -776,12 +776,7 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
             }
         }
         if (dragging) {
-            try {
-            	/**
-            	 * check if something would be replaced
-            	 */
-            	checkForReplacement(upperNode.getNodes(), tempCps, x, y);
-            	
+            try {            	
                 // tempCps in the upperNode? else its a connected Object from
                 // outside
                 if (upperNode.getNodes().contains(tempCps)) {
@@ -833,6 +828,12 @@ public class UpperNodeCanvas extends AbstractCanvas implements MouseListener, Mo
                         }
                     }
                 }
+                /**
+            	 * check if something would be replaced
+            	 */
+                if(model.getSelectedCpsObjects().size()==1)
+                	checkForReplacement(upperNode.getNodes(), tempCps, x, y);
+
                 repaint();
             } catch (Exception eex) {