Dont export annotations if not visible
[jalview.git] / src / jalview / gui / Desktop.java
index e6200d9..45a03fa 100755 (executable)
@@ -47,6 +47,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     public static jalview.ws.Discoverer discoverer;
 
     public static Object [] jalviewClipboard;
+    public static boolean internalCopy = false;
 
     static int fileLoadingCount= 0;
 
@@ -208,9 +209,11 @@ public class Desktop extends jalview.jbgui.GDesktop
 
               }
 
+
                 public void internalFrameClosed(
                     javax.swing.event.InternalFrameEvent evt)
                 {
+                    PaintRefresher.RemoveComponent(frame);
                     openFrameCount--;
                     windowMenu.remove(menuItem);
                     JInternalFrame itf = desktop.getSelectedFrame();
@@ -244,12 +247,15 @@ public class Desktop extends jalview.jbgui.GDesktop
           frame.setSelected(true);
           frame.requestFocus();
         }catch(java.beans.PropertyVetoException ve)
-        {}
+        {   }
     }
 
     public void lostOwnership(Clipboard clipboard, Transferable contents)
     {
-      Desktop.jalviewClipboard = null;
+      if (!internalCopy)
+        Desktop.jalviewClipboard = null;
+
+      internalCopy = false;
     }
 
     public void dragEnter(DropTargetDragEvent evt)
@@ -308,9 +314,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           }
         }
         catch (Exception e)
-        {
-          e.printStackTrace();
-        }
+        {      }
 
         if (files != null)
         {
@@ -339,9 +343,7 @@ public class Desktop extends jalview.jbgui.GDesktop
             }
           }
           catch (Exception ex)
-          {
-            ex.printStackTrace();
-          }
+          {      }
         }
     }
 
@@ -546,9 +548,7 @@ public class Desktop extends jalview.jbgui.GDesktop
             hb.setDisplayed(true);
         }
         catch (Exception ex)
-        {
-            ex.printStackTrace();
-        }
+        {     }
     }
 
     public void closeAll_actionPerformed(ActionEvent e)
@@ -564,18 +564,23 @@ 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 closeAssociatedWindows()
+    {
+      reorderAssociatedWindows(false, true);
     }
 
-    void reorderAssociatedWindows(boolean minimize)
+    void reorderAssociatedWindows(boolean minimize, boolean close)
     {
       JInternalFrame[] frames = desktop.getAllFrames();
-      if (frames == null)
+      if (frames == null || frames.length<1)
         return;
 
       AlignViewport source = null, target = null;
@@ -585,28 +590,45 @@ public class Desktop extends jalview.jbgui.GDesktop
         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)
+          {
+            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)
           {
-            if(!minimize)
-              frames[i].toFront();
             try
             {
-              frames[i].setIcon(minimize);
+              if (close)
+                frames[i].setClosed(true);
+              else
+              {
+                frames[i].setIcon(minimize);
+                if (!minimize)
+                {
+                  frames[i].toFront();
+                }
+              }
+
             }
             catch (java.beans.PropertyVetoException ex)
-            {}
+            {       }
           }
         }
     }
@@ -862,5 +884,6 @@ public class Desktop extends jalview.jbgui.GDesktop
       vamsasStop.setVisible(!b);
 
     }
+
 }