Browse Source

more split view progress

Kevin Trometer 8 years ago
parent
commit
b76d1e1c83
2 changed files with 79 additions and 73 deletions
  1. 6 2
      src/ui/view/GUI.java
  2. 73 71
      src/ui/view/MyCanvas.java

+ 6 - 2
src/ui/view/GUI.java

@@ -779,8 +779,8 @@ public class GUI<E> implements CategoryListener {
 					for (int i = 0; i < tabbedPane.getTabCount(); i++) {
 						tabbedPane2.addTab(tabbedPane.getTitleAt(i), null);
 						if (i >= 4) {
-							tabbedPane2.setTabComponentAt(tabbedPane.getTabCount() - 1,
-									new ButtonTabComponent(tabbedPane, tabbedPane2));
+							//tabbedPane2.setTabComponentAt(tabbedPane.getTabCount() - 1,
+								//	new ButtonTabComponent(tabbedPane, tabbedPane2));
 						}
 					}
 					if (tabbedPane.getSelectedComponent() == statScrollPane) {
@@ -2214,7 +2214,11 @@ public class GUI<E> implements CategoryListener {
 				}
 			} else {
 				tabbedPane2.add(temp.getName(), sp);
+				Component tempC = tabbedPane2.getSelectedComponent();
+				tabbedPane2.setComponentAt(tabbedPane2.getSelectedIndex(), null);
+				tabbedPane.setComponentAt(tabbedPane2.getSelectedIndex(), tempC);
 				tabbedPane2.setSelectedComponent(sp);
+				
 				// tabbedPane2.setTabComponentAt(tabbedPane2.getTabCount() - 1,
 				// new ButtonTabComponent(tabbedPane, tabbedPane2));
 

+ 73 - 71
src/ui/view/MyCanvas.java

@@ -341,10 +341,10 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 					if (cps instanceof CpsUpperNode) {
 						JTabbedPane tabbedPane = (JTabbedPane) getParent().getParent().getParent();
 						for (int i = 4; i < tabbedPane.getTabCount(); i++) {
-							if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport()
+							if (tabbedPane.getComponentAt(i) != null && ((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport()
 									.getComponent(0)).upperNode.getId() == cps.getId()) {
 								tabbedPane.remove(i);
-								i = tabbedPane.getTabCount();
+								break;
 							}
 						}
 					}
@@ -555,12 +555,12 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 			// Border Highlighting
 			if (showedInformation[3]) {
 				g2.setColor(cps.getBorderColor());
-					if (g2.getColor() != Color.WHITE && !(cps instanceof CpsNode)) {
-						g2.fillRect((int) (cps.getPosition().x - controller.getScaleDiv2() - scalediv20 - 3),
-								(int) (cps.getPosition().y - controller.getScaleDiv2() - scalediv20 - 3),
-								(int) (controller.getScale() + ((scalediv20 + 3) * 2)),
-								(int) (controller.getScale() + ((scalediv20 + 3) * 2)));
-					}
+				if (g2.getColor() != Color.WHITE && !(cps instanceof CpsNode)) {
+					g2.fillRect((int) (cps.getPosition().x - controller.getScaleDiv2() - scalediv20 - 3),
+							(int) (cps.getPosition().y - controller.getScaleDiv2() - scalediv20 - 3),
+							(int) (controller.getScale() + ((scalediv20 + 3) * 2)),
+							(int) (controller.getScale() + ((scalediv20 + 3) * 2)));
+				}
 			}
 			// node image
 			if (cps instanceof CpsNode && (cps == tempCps || model.getSelectedCpsObject() == cps
@@ -940,88 +940,90 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 	 * Draws or Deletes an Edge.
 	 */
 	private void drawDeleteEdge() {
-		boolean node = true;
-		boolean newEdge = true;
-		boolean onEdge = true;
-		boolean deleteNode = false;
-		CpsEdge e = null;
-		for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
-			cx = cps.getPosition().x - controller.getScaleDiv2();
-			cy = cps.getPosition().y - controller.getScaleDiv2();
-			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy
-					&& cps != tempCps) {
-				node = false;
-				onEdge = false;
-				for (CpsEdge p : tempCps.getConnections()) {
-					if ((p.getA() == tempCps && p.getB() == cps) || (p.getB() == tempCps && p.getA() == cps)) {
-						newEdge = false;
-						e = p;
+		if (getMousePosition() != null) {
+			boolean node = true;
+			boolean newEdge = true;
+			boolean onEdge = true;
+			boolean deleteNode = false;
+			CpsEdge e = null;
+			for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
+				cx = cps.getPosition().x - controller.getScaleDiv2();
+				cy = cps.getPosition().y - controller.getScaleDiv2();
+				if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy
+						&& cps != tempCps) {
+					node = false;
+					onEdge = false;
+					for (CpsEdge p : tempCps.getConnections()) {
+						if ((p.getA() == tempCps && p.getB() == cps) || (p.getB() == tempCps && p.getA() == cps)) {
+							newEdge = false;
+							e = p;
+						}
 					}
-				}
-				if (!newEdge) {
-					controller.removeEdgesOnCanvas(e);
-					// Node ohne Edge?
-					if (e.getA().getClass() == CpsNode.class && e.getA().getConnections().isEmpty()) {
-						tempCps = e.getA();
-						deleteNode = true;
+					if (!newEdge) {
+						controller.removeEdgesOnCanvas(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()) {
+							deleteNode = true;
+						}
 					}
-					if (e.getB().getClass() == CpsNode.class && e.getB().getConnections().isEmpty()) {
-						deleteNode = true;
+					if (newEdge) {
+						e = new CpsEdge(cps, tempCps, model.getMaxCapacity());
+						controller.addEdgeOnCanvas(e);
 					}
 				}
-				if (newEdge) {
-					e = new CpsEdge(cps, tempCps, model.getMaxCapacity());
-					controller.addEdgeOnCanvas(e);
-				}
 			}
-		}
-		// Edge auf eine Edge gezogen?
-		if (onEdge) {
-			CpsEdge p = mousePositionOnEdge(x, y);
-			if (p != null) {
-				CpsEdge e1 = null;
-				CpsEdge e2 = null;
+			// Edge auf eine Edge gezogen?
+			if (onEdge) {
+				CpsEdge p = mousePositionOnEdge(x, y);
+				if (p != null) {
+					CpsEdge e1 = null;
+					CpsEdge e2 = null;
 
-				node = false;
+					node = false;
 
-				CpsNode n = new CpsNode("Node");
+					CpsNode n = new CpsNode("Node");
 
-				n.setPosition(x, y);
-				controller.addObjectCanvas(n);
+					n.setPosition(x, y);
+					controller.addObjectCanvas(n);
 
-				AbstractCpsObject r, k;
-				r = p.getA();
-				k = p.getB();
+					AbstractCpsObject r, k;
+					r = p.getA();
+					k = p.getB();
 
-				e = new CpsEdge(n, tempCps, model.getMaxCapacity());
+					e = new CpsEdge(n, tempCps, model.getMaxCapacity());
 
-				e1 = new CpsEdge(n, r, model.getMaxCapacity());
+					e1 = new CpsEdge(n, r, model.getMaxCapacity());
 
-				e2 = new CpsEdge(n, k, model.getMaxCapacity());
+					e2 = new CpsEdge(n, k, model.getMaxCapacity());
 
-				controller.removeEdgesOnCanvas(p);
-				controller.addEdgeOnCanvas(e);
-				controller.addEdgeOnCanvas(e1);
-				controller.addEdgeOnCanvas(e2);
+					controller.removeEdgesOnCanvas(p);
+					controller.addEdgeOnCanvas(e);
+					controller.addEdgeOnCanvas(e1);
+					controller.addEdgeOnCanvas(e2);
+				}
 			}
-		}
 
-		// ins leere Gedragged
-		if (node) {
-			CpsNode n = new CpsNode("Node");
+			// ins leere Gedragged
+			if (node) {
+				CpsNode n = new CpsNode("Node");
 
-			n.setPosition(x, y);
-			controller.addObjectCanvas(n);
+				n.setPosition(x, y);
+				controller.addObjectCanvas(n);
 
-			e = new CpsEdge(n, tempCps, model.getMaxCapacity());
+				e = new CpsEdge(n, tempCps, model.getMaxCapacity());
 
-			controller.addEdgeOnCanvas(e);
-		}
+				controller.addEdgeOnCanvas(e);
+			}
 
-		// Wenn ein Node ohne Connections da ist
-		if (deleteNode) {
-			controller.delCanvasObject(tempCps, true);
-			tempCps = null;
+			// Wenn ein Node ohne Connections da ist
+			if (deleteNode) {
+				controller.delCanvasObject(tempCps, true);
+				tempCps = null;
+			}
 		}
 	}