Bläddra i källkod

UpperNodeTabs close when UpperNode deleted

Jessey Widhalm 7 år sedan
förälder
incheckning
b1fd8aa870
3 ändrade filer med 25 tillägg och 1 borttagningar
  1. 0 1
      src/ui/view/GUI.java
  2. 13 0
      src/ui/view/MyCanvas.java
  3. 12 0
      src/ui/view/UpperNodeCanvas.java

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

@@ -1990,7 +1990,6 @@ public class GUI<E> implements CategoryListener {
 			}
 		}
 		if (!dupl) {
-
 			unc.setBorder(null);
 			unc.setBackground(Color.WHITE);
 			unc.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));

+ 13 - 0
src/ui/view/MyCanvas.java

@@ -23,6 +23,8 @@ import javax.swing.ImageIcon;
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
 import javax.swing.JToolTip;
 
 import classes.CpsEdge;
@@ -196,6 +198,17 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				// Remove the selected Object objects
 				for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
 					controller.delCanvasObject(cps);
+					// Remove UpperNodeTab if UpperNode deleted
+					if(cps instanceof CpsUpperNode){
+						JTabbedPane tabbedPane = (JTabbedPane) getParent().getParent().getParent();
+						for (int i = 2; i < tabbedPane.getTabCount(); i++) {
+							if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport().getComponent(0)).upperNode
+									.getID() == cps.getID()) {
+								tabbedPane.remove(i);
+								i = tabbedPane.getTabCount();				
+							}
+						}
+					}	
 				}
 				model.getSelectedCpsObjects().clear();
 				tempCps = null;

+ 12 - 0
src/ui/view/UpperNodeCanvas.java

@@ -25,6 +25,7 @@ import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
 import javax.swing.JToolTip;
 
 import classes.CpsEdge;
@@ -208,6 +209,17 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 				// Remove the selected Object objects
 				for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
 					controller.delObjUpperNode(cps, UpperNode);
+					// Remove UpperNodeTab if UpperNode deleted
+					if(cps instanceof CpsUpperNode){
+						JTabbedPane tabbedPane = (JTabbedPane) getParent().getParent().getParent();
+						for (int i = 2; i < tabbedPane.getTabCount(); i++) {
+							if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport().getComponent(0)).upperNode
+									.getID() == cps.getID()) {
+								tabbedPane.remove(i);
+								i = tabbedPane.getTabCount();				
+							}
+						}
+					}
 				}
 				model.getSelectedCpsObjects().clear();
 				tempCps = null;