minimize and raise associated windows
authoramwaterhouse <Andrew Waterhouse>
Tue, 14 Nov 2006 18:05:02 +0000 (18:05 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 14 Nov 2006 18:05:02 +0000 (18:05 +0000)
src/jalview/gui/Desktop.java
src/jalview/jbgui/GDesktop.java

index caa3f5e..e6200d9 100755 (executable)
@@ -562,6 +562,56 @@ public class Desktop extends jalview.jbgui.GDesktop
       }
     }
 
+    public void raiseRelated_actionPerformed(ActionEvent e)
+    {
+      reorderAssociatedWindows(false);
+    }
+
+    public void minimizeAssociated_actionPerformed(ActionEvent e)
+    {
+      reorderAssociatedWindows(true);
+    }
+
+    void reorderAssociatedWindows(boolean minimize)
+    {
+      JInternalFrame[] frames = desktop.getAllFrames();
+      if (frames == null)
+        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;
+
+      if (source != null)
+        for (int i = 0; i < frames.length; i++)
+        {
+          target = null;
+          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;
+
+          if (source == target)
+          {
+            if(!minimize)
+              frames[i].toFront();
+            try
+            {
+              frames[i].setIcon(minimize);
+            }
+            catch (java.beans.PropertyVetoException ex)
+            {}
+          }
+        }
+    }
+
+
 
     /**
      * DOCUMENT ME!
index bee88f9..1b54f83 100755 (executable)
@@ -53,6 +53,8 @@ public class GDesktop extends JFrame
   JMenuItem inputSequence = new JMenuItem();\r
   protected JMenuItem vamsasStop = new JMenuItem();\r
   JMenuItem closeAll = new JMenuItem();\r
+  JMenuItem raiseRelated = new JMenuItem();\r
+  JMenuItem minimizeAssociated = new JMenuItem();\r
 \r
   /**\r
      * Creates a new GDesktop object.\r
@@ -206,6 +208,22 @@ public class GDesktop extends JFrame
         closeAll_actionPerformed(e);\r
       }\r
     });\r
+    raiseRelated.setText("Raise Associated Windows");\r
+    raiseRelated.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        raiseRelated_actionPerformed(e);\r
+      }\r
+    });\r
+    minimizeAssociated.setText("Minimize Associated Windows");\r
+    minimizeAssociated.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        minimizeAssociated_actionPerformed(e);\r
+      }\r
+    });\r
     desktopMenubar.add(FileMenu);\r
     desktopMenubar.add(toolsMenu);\r
     VamsasMenu.setVisible(false);\r
@@ -228,6 +246,9 @@ public class GDesktop extends JFrame
     inputMenu.add(inputURLMenuItem);\r
     inputMenu.add(inputTextboxMenuItem);\r
     windowMenu.add(closeAll);\r
+    windowMenu.add(raiseRelated);\r
+    windowMenu.add(minimizeAssociated);\r
+    windowMenu.addSeparator();\r
     //    inputMenu.add(vamsasLoad);\r
   }\r
 \r
@@ -346,4 +367,14 @@ public class GDesktop extends JFrame
   {\r
 \r
   }\r
+\r
+  public void raiseRelated_actionPerformed(ActionEvent e)\r
+  {\r
+\r
+  }\r
+\r
+  public void minimizeAssociated_actionPerformed(ActionEvent e)\r
+  {\r
+\r
+  }\r
 }\r