JAL-281 option pane with error handling for selecting an URL
[jalview.git] / src / jalview / gui / Desktop.java
index 65eda4b..ca82d90 100644 (file)
@@ -41,6 +41,7 @@ import jalview.structure.StructureSelectionManager;
 import jalview.urls.IdOrgSettings;
 import jalview.util.ImageMaker;
 import jalview.util.MessageManager;
+import jalview.util.Platform;
 import jalview.util.UrlConstants;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.ws.params.ParamManager;
@@ -67,8 +68,6 @@ import java.awt.dnd.DropTargetEvent;
 import java.awt.dnd.DropTargetListener;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
@@ -358,7 +357,12 @@ public class Desktop extends jalview.jbgui.GDesktop
     // This line prevents Windows Look&Feel resizing all new windows to maximum
     // if previous window was maximised
     desktop.setDesktopManager(
-            new MyDesktopManager(new DefaultDesktopManager()));
+            new MyDesktopManager(
+                    (Platform.isWindows() ? new DefaultDesktopManager()
+                            : Platform.isAMac()
+                                    ? new AquaInternalFrameManager(
+                                            desktop.getDesktopManager())
+                                    : desktop.getDesktopManager())));
 
     Rectangle dims = getLastKnownDimensions("");
     if (dims != null)
@@ -428,24 +432,6 @@ public class Desktop extends jalview.jbgui.GDesktop
     });
     desktop.addMouseListener(ma);
 
-    this.addFocusListener(new FocusListener()
-    {
-
-      @Override
-      public void focusLost(FocusEvent e)
-      {
-        // TODO Auto-generated method stub
-
-      }
-
-      @Override
-      public void focusGained(FocusEvent e)
-      {
-        Cache.log.debug("Relaying windows after focus gain");
-        // make sure that we sort windows properly after we gain focus
-        instance.relayerWindows();
-      }
-    });
     this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this));
     // Spawn a thread that shows the splashscreen
     SwingUtilities.invokeLater(new Runnable()
@@ -470,7 +456,7 @@ public class Desktop extends jalview.jbgui.GDesktop
                 fileFormat);
         Cache.log.debug("Filechooser init thread finished.");
       }
-    }).start();
+    }, "InitFileChooserThread").start();
     // Add the service change listener
     changeSupport.addJalviewPropertyChangeListener("services",
             new PropertyChangeListener()
@@ -589,7 +575,7 @@ public class Desktop extends jalview.jbgui.GDesktop
             Desktop.instance.setProgressBar(null, now);
             jvnews.showNews();
           }
-        }).start();
+        }, "ShowNewsWindowThread").start();
       }
     }
   }
@@ -883,6 +869,10 @@ public class Desktop extends jalview.jbgui.GDesktop
         JInternalFrame itf = desktop.getSelectedFrame();
         if (itf != null)
         {
+          if (itf instanceof AlignFrame)
+          {
+            Jalview.setCurrentAlignFrame((AlignFrame) itf);
+          }
           itf.requestFocus();
         }
       }
@@ -909,15 +899,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           menuItem.removeActionListener(menuItem.getActionListeners()[0]);
         }
         windowMenu.remove(menuItem);
-        JInternalFrame itf = desktop.getSelectedFrame();
-        if (itf != null)
-        {
-          itf.requestFocus();
-          if (itf instanceof AlignFrame)
-          {
-            Jalview.setCurrentAlignFrame((AlignFrame) itf);
-          }
-        }
+
         System.gc();
       };
     });
@@ -1179,8 +1161,9 @@ public class Desktop extends jalview.jbgui.GDesktop
       if (format == null)
       {
         JvOptionPane.showInternalMessageDialog(Desktop.desktop,
-                MessageManager.formatMessage("label.couldnt_locate",
-                        new Object[]
+                MessageManager.formatMessage(
+                        "label.couldnt_locate",
+                        new String[]
                         { url }),
                 MessageManager.getString("label.url_not_found"),
                 JvOptionPane.WARNING_MESSAGE);
@@ -1289,7 +1272,7 @@ public class Desktop extends jalview.jbgui.GDesktop
       {
         new SplashScreen(true);
       }
-    }).start();
+    }, "ShowAboutMenuThread").start();
   }
 
   public StringBuffer getAboutMessage(boolean shortv)
@@ -1631,7 +1614,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           }
           setProgressBar(null, choice.hashCode());
         }
-      }).start();
+      }, "SaveJalviewProjectThread").start();
     }
   }
 
@@ -1699,7 +1682,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           }
           setProgressBar(null, choice.hashCode());
         }
-      }).start();
+      }, "LoadJalviewProjectThread").start();
     }
   }
 
@@ -2209,7 +2192,7 @@ public class Desktop extends jalview.jbgui.GDesktop
                     dsktp.v_client.initial_update();
                   }
 
-                });
+                }, "VamsasSessionThread");
                 rthr.start();
               }
             };
@@ -2329,7 +2312,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   {
     UserQuestionnaireCheck jvq = new UserQuestionnaireCheck(url);
     // javax.swing.SwingUtilities.invokeLater(jvq);
-    new Thread(jvq).start();
+    new Thread(jvq, "CheckQuestionnaireThread").start();
   }
 
   public void checkURLLinks()
@@ -2442,9 +2425,10 @@ public class Desktop extends jalview.jbgui.GDesktop
       this.showMemoryUsage = showMemory;
       if (showMemory)
       {
-        Thread worker = new Thread(this);
+        Thread worker = new Thread(this, "ShowMemoryUsageThread");
         worker.start();
       }
+      repaint();
     }
 
     public boolean isShowMemoryUsage()
@@ -2508,14 +2492,6 @@ public class Desktop extends jalview.jbgui.GDesktop
     }
   }
 
-  /**
-   * fixes stacking order after a modal dialog to ensure windows that should be
-   * on top actually are
-   */
-  public void relayerWindows()
-  {
-
-  }
 
   /**
    * Accessor method to quickly get all the AlignmentFrames loaded.
@@ -2874,7 +2850,7 @@ public class Desktop extends jalview.jbgui.GDesktop
       }
       // JAL-940 - disabled JWS1 service configuration - always start discoverer
       // until we phase out completely
-      (t0 = new Thread(discoverer)).start();
+      (t0 = new Thread(discoverer, "DiscovererThread")).start();
     }
 
     if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
@@ -3030,7 +3006,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           progress.setProgressBar(null, this.hashCode());
         }
       }
-    }).start();
+    }, "OpenURLThread").start();
   }
 
   public static WsParamSetManager wsparamManager = null;