Browse Source

NodeOfNode tabs won't open duplicate (only works for NodeOfNodes on
MyCanvas)

jess 7 years ago
parent
commit
4e29b8283d
1 changed files with 13 additions and 1 deletions
  1. 13 1
      src/ui/view/GUI.java

+ 13 - 1
src/ui/view/GUI.java

@@ -1345,7 +1345,17 @@ public class GUI<E> implements CategoryListener {
 				}
 				// New Tab with NodeOfNode
 				if (doubleClick() && temp instanceof CpsUpperNode) {
-					openNewUpperNodeTab();
+					// check if tab already open for clicked NodeOfNode
+					boolean dupl = false;
+					for (int i = 2; i < tabbedPane.getTabCount() && dupl == false; i++) {
+						if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport()
+								.getComponent(0)).upperNode.getID() == temp.getID()) {
+							dupl = true;
+							tabbedPane.setSelectedComponent(tabbedPane.getComponentAt(i));
+						}
+					}
+					if (!dupl)
+						openNewUpperNodeTab();
 				}
 			}
 
@@ -1970,6 +1980,7 @@ public class GUI<E> implements CategoryListener {
 	 * Open a new Tab with an UpperNodeCanvas
 	 */
 	private void openNewUpperNodeTab() {
+
 		UpperNodeCanvas unc;
 		if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport().getComponent(0) instanceof MyCanvas) {
 			unc = new UpperNodeCanvas(model, controller, (CpsUpperNode) temp, "");
@@ -1999,6 +2010,7 @@ public class GUI<E> implements CategoryListener {
 		tabbedPane.setSelectedComponent(sp);
 		tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1, new ButtonTabComponent(tabbedPane));
 		temp = null;
+
 	}
 
 }