JAL-3117 bring alignment to foreground on click on Overview
[jalview.git] / src / jalview / gui / AlignFrame.java
index 4354ac6..4a18067 100644 (file)
@@ -46,6 +46,7 @@ import java.awt.event.MouseEvent;
 import java.awt.print.PageFormat;
 import java.awt.print.PrinterJob;
 import java.beans.PropertyChangeEvent;
+import java.beans.PropertyVetoException;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -144,6 +145,7 @@ import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ColourSchemes;
 import jalview.schemes.ResidueColourScheme;
 import jalview.schemes.TCoffeeColourScheme;
+import jalview.util.HttpUtils;
 import jalview.util.ImageMaker.TYPE;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
@@ -1062,7 +1064,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         Desktop.instance.closeAssociatedWindows();
 
         FileLoader loader = new FileLoader();
-        DataSourceType protocol = fileName.startsWith("http:")
+        DataSourceType protocol = HttpUtils.startsWithHttpOrHttps(fileName)
                 ? DataSourceType.URL
                 : DataSourceType.FILE;
         loader.LoadFile(viewport, fileName, protocol, currentFileFormat);
@@ -1078,9 +1080,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         if (fileObject == null)
         {
 
-          DataSourceType protocol = (fileName.startsWith("http:")
-                  ? DataSourceType.URL
-                  : DataSourceType.FILE);
+          DataSourceType protocol = HttpUtils.startsWithHttpOrHttps(
+                  fileName) ? DataSourceType.URL : DataSourceType.FILE;
           newframe = loader.LoadFileWaitTillLoaded(fileName, protocol,
                   currentFileFormat);
         }
@@ -1131,7 +1132,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   public void save_actionPerformed(ActionEvent e)
   {
     if (fileName == null || (currentFileFormat == null)
-            || fileName.startsWith("http"))
+            || HttpUtils.startsWithHttpOrHttps(fileName))
     {
       saveAs_actionPerformed();
     }
@@ -3459,6 +3460,27 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     {
       frame.addKeyListener(getKeyListeners()[0]);
     }
+    
+    /*
+     * bring alignment panel to front when Overview gets focus
+     * (even after New View / eXpand / Gather!)
+     */
+    final AlignmentPanel ap = alignPanel;
+    frame.addFocusListener(new FocusAdapter()
+    {
+      @Override
+      public void focusGained(FocusEvent e)
+      {
+        try
+        {
+          ap.alignFrame.setSelected(true);
+          ap.alignFrame.setIcon(false);
+          ap.alignFrame.setDisplayedView(ap);
+        } catch (PropertyVetoException e1)
+        {
+        }
+      }
+    });
 
     alignPanel.setOverviewPanel(overview);
   }