Browse Source

Fixes CtrlZ/CtryY not closing invalid UpperNodeTabs

Andreas T. Meyer-Berg 6 years ago
parent
commit
aa063e426e
1 changed files with 29 additions and 0 deletions
  1. 29 0
      src/ui/view/GUI.java

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

@@ -420,6 +420,21 @@ public class GUI implements CategoryListener {
 			public void actionPerformed(ActionEvent e) {
 				try {
 					controller.loadAutoSave(controller.getUndoSave());
+					/**
+					 * close bugged Tabs
+					 */
+					for (int i = 1; i < tabbedPaneInnerOriginal.getTabCount(); i++) {
+						JScrollPane scrollPaneOriginal = (JScrollPane) tabbedPaneInnerOriginal
+								.getComponentAt(i);
+						if (((UpperNodeCanvas) scrollPaneOriginal.getViewport()
+								.getComponent(0)).upperNode == null) {
+							((ButtonTabComponent) tabbedPaneInnerOriginal
+									.getTabComponentAt(i)).removeTabs();
+							break;
+						}
+					}
+					
+					
 					controller.calculateStateForCurrentTimeStep();
 					canvas.repaint();
 					unitGraph.update(model.getObjectsOnCanvas());
@@ -440,6 +455,20 @@ public class GUI implements CategoryListener {
 			public void actionPerformed(ActionEvent e) {
 				try {
 					controller.loadAutoSave(controller.getRedoSave());
+					/**
+					 * close bugged Tabs
+					 */
+					for (int i = 1; i < tabbedPaneInnerOriginal.getTabCount(); i++) {
+						JScrollPane scrollPaneOriginal = (JScrollPane) tabbedPaneInnerOriginal
+								.getComponentAt(i);
+						if (((UpperNodeCanvas) scrollPaneOriginal.getViewport()
+								.getComponent(0)).upperNode == null) {
+							((ButtonTabComponent) tabbedPaneInnerOriginal
+									.getTabComponentAt(i)).removeTabs();
+							break;
+						}
+					}
+					
 					controller.calculateStateForCurrentTimeStep();
 					canvas.repaint();
 					unitGraph.update(model.getObjectsOnCanvas());