Close associated windows
authoramwaterhouse <Andrew Waterhouse>
Tue, 21 Nov 2006 15:27:55 +0000 (15:27 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 21 Nov 2006 15:27:55 +0000 (15:27 +0000)
src/jalview/gui/Desktop.java

index af96ee8..88ab53a 100755 (executable)
@@ -564,15 +564,20 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     public void raiseRelated_actionPerformed(ActionEvent e)
     {
-      reorderAssociatedWindows(false);
+      reorderAssociatedWindows(false, false);
     }
 
     public void minimizeAssociated_actionPerformed(ActionEvent e)
     {
-      reorderAssociatedWindows(true);
+      reorderAssociatedWindows(true, false);
     }
 
-    void reorderAssociatedWindows(boolean minimize)
+    void closeAssociatedWindows()
+    {
+      reorderAssociatedWindows(false, true);
+    }
+
+    void reorderAssociatedWindows(boolean minimize, boolean close)
     {
       JInternalFrame[] frames = desktop.getAllFrames();
       if (frames == null || frames.length<1)
@@ -593,6 +598,11 @@ public class Desktop extends jalview.jbgui.GDesktop
         for (int i = 0; i < frames.length; i++)
         {
           target = null;
+          if(frames[i]==null)
+          {
+            System.out.println("its gone");
+            continue;
+          }
           if (frames[i] instanceof AlignFrame)
             target = ( (AlignFrame) frames[i]).getCurrentView();
           else if (frames[i] instanceof TreePanel)
@@ -604,11 +614,15 @@ public class Desktop extends jalview.jbgui.GDesktop
 
           if (source == target)
           {
-            if(!minimize)
-              frames[i].toFront();
             try
             {
-              frames[i].setIcon(minimize);
+              if (close)
+                frames[i].setClosed(true);
+
+              else if (!minimize)
+                frames[i].toFront();
+              else
+                frames[i].setIcon(minimize);
             }
             catch (java.beans.PropertyVetoException ex)
             {}