- });\r
- setVisible(true);\r
-\r
- this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this));\r
-\r
- /////////Add a splashscreen on startup\r
- /////////Add a splashscreen on startup\r
- JInternalFrame frame = new JInternalFrame();\r
-\r
- SplashScreen splash = new SplashScreen(frame, image);\r
- frame.setContentPane(splash);\r
- frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
- addInternalFrame(frame, "", 750, 160, false);\r
- frame.setLocation( (int) ( (getWidth() - 750) / 2),\r
- (int) ( (getHeight() - 160) / 2));\r
- }\r
-\r
- public static void addInternalFrame(final JInternalFrame frame,\r
- String title, int w, int h)\r
- {\r
- addInternalFrame(frame, title, w, h, true);\r
- }\r
-\r
- public static void addInternalFrame(final JInternalFrame frame,\r
- String title, int w, int h,\r
- boolean resizable)\r
- {\r
- desktop.add(frame);\r
- openFrameCount++;\r
-\r
- try\r
- {\r
- frame.setSelected(true);\r
+ // THIS IS A PUBLIC STATIC METHOD, SO IT MAY BE CALLED EVEN IN\r
+ // A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN\r
+ // IF JALVIEW IS RUNNING HEADLESS\r
+ /////////////////////////////////////////////////\r
+ if (System.getProperty("java.awt.headless") != null\r
+ && System.getProperty("java.awt.headless").equals("true"))\r
+ {\r
+ return;\r
+ }\r
+\r
+\r
+ openFrameCount++;\r
+\r
+ frame.setVisible(true);\r
+ frame.setClosable(true);\r
+ frame.setResizable(resizable);\r
+ frame.setMaximizable(resizable);\r
+ frame.setIconifiable(resizable);\r
+ frame.setFrameIcon(null);\r
+\r
+ if (frame.getX()<1 && frame.getY()<1)\r
+ {\r
+ frame.setLocation(xOffset * openFrameCount, yOffset * ((openFrameCount-1)%10)+yOffset);\r
+ }\r
+\r
+ final JMenuItem menuItem = new JMenuItem(title);\r
+ frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()\r
+ {\r
+ public void internalFrameActivated(javax.swing.event.\r
+ InternalFrameEvent evt)\r
+ {\r
+ JInternalFrame itf = desktop.getSelectedFrame();\r
+ if (itf != null)\r
+ itf.requestFocus();\r
+\r
+ }\r
+\r
+ public void internalFrameClosed(\r
+ javax.swing.event.InternalFrameEvent evt)\r
+ {\r
+ openFrameCount--;\r
+ windowMenu.remove(menuItem);\r
+ JInternalFrame itf = desktop.getSelectedFrame();\r
+ if (itf != null)\r
+ itf.requestFocus();\r
+ }\r
+ ;\r
+ });\r
+\r
+ menuItem.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ try\r
+ {\r
+ frame.setSelected(true);\r
+ frame.setIcon(false);\r
+ }\r
+ catch (java.beans.PropertyVetoException ex)\r
+ {\r
+\r
+ }\r
+ }\r
+ });\r
+\r
+ windowMenu.add(menuItem);\r
+\r
+ desktop.add(frame);\r
+ frame.toFront();\r
+ try{\r
+ frame.setSelected(true);\r
+ frame.requestFocus();\r
+ }catch(java.beans.PropertyVetoException ve)\r
+ {}\r