JAL-281 option pane with error handling for selecting an URL
[jalview.git] / src / jalview / gui / Desktop.java
index c605378..ca82d90 100644 (file)
@@ -68,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;
@@ -346,10 +344,6 @@ public class Desktop extends jalview.jbgui.GDesktop
     boolean showjconsole = jalview.bin.Cache.getDefault("SHOW_JAVA_CONSOLE",
             false);
     desktop = new MyDesktopPane(selmemusage);
-    if (Platform.isAMac())
-    {
-      desktop.setDoubleBuffered(false);
-    }
     showMemusage.setSelected(selmemusage);
     desktop.setBackground(Color.white);
     getContentPane().setLayout(new BorderLayout());
@@ -363,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)
@@ -433,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()
@@ -475,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()
@@ -594,7 +575,7 @@ public class Desktop extends jalview.jbgui.GDesktop
             Desktop.instance.setProgressBar(null, now);
             jvnews.showNews();
           }
-        }).start();
+        }, "ShowNewsWindowThread").start();
       }
     }
   }
@@ -868,13 +849,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     frame.setResizable(resizable);
     frame.setMaximizable(resizable);
     frame.setIconifiable(resizable);
-    if (Platform.isAMac())
-    {
-      frame.setIconifiable(false);
-      frame.setFrameIcon(null);
-      // frame.setDesktopIcon(null);
-      frame.setDoubleBuffered(false);
-    }
+
     if (frame.getX() < 1 && frame.getY() < 1)
     {
       frame.setLocation(xOffset * openFrameCount,
@@ -894,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();
         }
       }
@@ -920,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();
       };
     });
@@ -1190,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);
@@ -1300,7 +1272,7 @@ public class Desktop extends jalview.jbgui.GDesktop
       {
         new SplashScreen(true);
       }
-    }).start();
+    }, "ShowAboutMenuThread").start();
   }
 
   public StringBuffer getAboutMessage(boolean shortv)
@@ -1642,7 +1614,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           }
           setProgressBar(null, choice.hashCode());
         }
-      }).start();
+      }, "SaveJalviewProjectThread").start();
     }
   }
 
@@ -1710,7 +1682,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           }
           setProgressBar(null, choice.hashCode());
         }
-      }).start();
+      }, "LoadJalviewProjectThread").start();
     }
   }
 
@@ -2220,7 +2192,7 @@ public class Desktop extends jalview.jbgui.GDesktop
                     dsktp.v_client.initial_update();
                   }
 
-                });
+                }, "VamsasSessionThread");
                 rthr.start();
               }
             };
@@ -2340,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()
@@ -2453,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()
@@ -2519,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.
@@ -2885,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))
@@ -3041,7 +3006,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           progress.setProgressBar(null, this.hashCode());
         }
       }
-    }).start();
+    }, "OpenURLThread").start();
   }
 
   public static WsParamSetManager wsparamManager = null;