Browse Source

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Teh-Hai Julian Zheng 8 years ago
parent
commit
5f1735a4d3
3 changed files with 34 additions and 12 deletions
  1. 1 1
      src/ui/controller/LoadStoreController.java
  2. 4 4
      src/ui/view/GUI.java
  3. 29 7
      src/ui/view/MyCanvas.java

+ 1 - 1
src/ui/controller/LoadStoreController.java

@@ -34,7 +34,7 @@ public class LoadStoreController {
 		writeCategoryObjects(jsonObj);
 		writeCategoryElements(jsonObj);
 
-		FileWriter file = new FileWriter("//Users//zheng//Desktop//Tesst.json");
+		FileWriter file = new FileWriter("C:/Users/krabs/Desktop/Tesst.json");
 		file.write(jsonObj.toJSONString());
 
 		file.flush();

+ 4 - 4
src/ui/view/GUI.java

@@ -269,11 +269,11 @@ public class GUI implements CategoryListener {
 		scrollProperties.setViewportView(tableProperties);
 		tableHolonElementScrollPane.setViewportView(tableHolonElement);
 		scrollGraph.setViewportView(testgraph);
-		
-		scrollElements.setLayout(new BorderLayout(0,0));
+
+		scrollElements.setLayout(new BorderLayout(0, 0));
 		scrollElements.add(panel_HolonEl, BorderLayout.NORTH);
-		scrollElements.add(tableHolonElementScrollPane);		
-		
+		scrollElements.add(tableHolonElementScrollPane);
+
 		panel_HolonEl.setLayout(new BoxLayout(panel_HolonEl, BoxLayout.X_AXIS));
 		toolBarHolonEl.setFloatable(false);
 

+ 29 - 7
src/ui/view/MyCanvas.java

@@ -121,8 +121,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		if (model.getSelectedObjectID() > 0) {
 			g2.setColor(Color.GREEN);
 			for (CpsEdge con : model.getEdgesOnCanvas()) {
-				if (con.getA().getID() == model.getSelectedObjectID() || con.getB().getID() == model.getSelectedObjectID()
-						&& con != edgeHighlight) {
+				if (con.getA().getID() == model.getSelectedObjectID()
+						|| con.getB().getID() == model.getSelectedObjectID() && con != edgeHighlight) {
 					g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
 							con.getA().getPosition().y + controller.getScaleDiv2(),
 							con.getB().getPosition().x + controller.getScaleDiv2(),
@@ -322,8 +322,10 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 		boolean node = true;
 		boolean newEdge = true;
 		boolean onEdge = true;
+		boolean deleteNode = false;
 		CpsEdge e = null;
-
+		CpsObject tempCPS = null; 
+		
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPosition().x;
 			cy = cps.getPosition().y;
@@ -337,9 +339,20 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 						e = p;
 					}
 				}
-				controller.removeEdgesOnCanvas(e);
-				tempCps.getConnections().remove(e);
-				cps.getConnections().remove(e);
+				if (!newEdge) {
+					controller.removeEdgesOnCanvas(e);
+					tempCps.getConnections().remove(e);
+					cps.getConnections().remove(e);
+					// Node ohne Edge
+					if (e.getA().getClass() == CpsNode.class && e.getA().getConnections().isEmpty()) {
+						tempCps = e.getA();
+						deleteNode = true;
+					} 
+					if (e.getB().getClass() == CpsNode.class && e.getB().getConnections().isEmpty()) {
+						tempCPS = e.getB();
+						deleteNode = true;
+					}
+				}
 				if (newEdge) {
 					e = new CpsEdge(cps, tempCps);
 					cps.AddConnection(e);
@@ -387,7 +400,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 				controller.AddEdgeOnCanvas(e2);
 			}
 		}
-
+		
+		//ins leere Gedragged
 		if (node) {
 			CpsNode n = new CpsNode("Node");
 			n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
@@ -400,6 +414,14 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			controller.AddEdgeOnCanvas(e);
 			System.out.println("node ID: " + n.getID());
 		}
+		
+		if(deleteNode){
+			controller.deleteObjectOnCanvas(tempCps);
+			controller.deleteObjectOnCanvas(tempCPS);
+			tempCPS = null;
+			tempCps = null;
+			objectSelectionHighlighting();
+		}
 	}
 
 	/**