rightAlignIds
[jalview.git] / src / jalview / gui / Desktop.java
index caa3f5e..88ab53a 100755 (executable)
@@ -562,6 +562,75 @@ public class Desktop extends jalview.jbgui.GDesktop
       }
     }
 
+    public void raiseRelated_actionPerformed(ActionEvent e)
+    {
+      reorderAssociatedWindows(false, false);
+    }
+
+    public void minimizeAssociated_actionPerformed(ActionEvent e)
+    {
+      reorderAssociatedWindows(true, false);
+    }
+
+    void closeAssociatedWindows()
+    {
+      reorderAssociatedWindows(false, true);
+    }
+
+    void reorderAssociatedWindows(boolean minimize, boolean close)
+    {
+      JInternalFrame[] frames = desktop.getAllFrames();
+      if (frames == null || frames.length<1)
+        return;
+
+      AlignViewport source = null, target = null;
+      if (frames[0] instanceof AlignFrame)
+        source = ( (AlignFrame) frames[0]).getCurrentView();
+      else if (frames[0] instanceof TreePanel)
+        source = ( (TreePanel) frames[0]).getViewPort();
+      else if (frames[0] instanceof PCAPanel)
+        source = ( (PCAPanel) frames[0]).av;
+      else if (frames[0].getContentPane() instanceof PairwiseAlignPanel)
+        source = ((PairwiseAlignPanel)frames[0].getContentPane()).av;
+
+
+      if (source != null)
+        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)
+            target = ( (TreePanel) frames[i]).getViewPort();
+          else if (frames[i] instanceof PCAPanel)
+            target = ( (PCAPanel) frames[i]).av;
+          else if (frames[i].getContentPane() instanceof PairwiseAlignPanel)
+            target = ( (PairwiseAlignPanel) frames[i].getContentPane()).av;
+
+          if (source == target)
+          {
+            try
+            {
+              if (close)
+                frames[i].setClosed(true);
+
+              else if (!minimize)
+                frames[i].toFront();
+              else
+                frames[i].setIcon(minimize);
+            }
+            catch (java.beans.PropertyVetoException ex)
+            {}
+          }
+        }
+    }
+
+
 
     /**
      * DOCUMENT ME!