From 82dc9231f9353e2f3d8f23d5bdc4d64e3bb7af18 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Thu, 13 Nov 2008 14:14:31 +0000 Subject: [PATCH] add a windows selection menu git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@9315 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- uk/ac/sanger/artemis/components/Splash.java | 42 ++++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/uk/ac/sanger/artemis/components/Splash.java b/uk/ac/sanger/artemis/components/Splash.java index 1eddc7f23..3c39fc348 100644 --- a/uk/ac/sanger/artemis/components/Splash.java +++ b/uk/ac/sanger/artemis/components/Splash.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/Splash.java,v 1.38 2008-11-13 08:53:26 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/Splash.java,v 1.39 2008-11-13 14:14:31 tjc Exp $ */ package uk.ac.sanger.artemis.components; @@ -37,6 +37,7 @@ import uk.ac.sanger.artemis.sequence.AminoAcidSequence; import java.io.*; import java.awt.*; import java.awt.event.*; + import javax.swing.*; import javax.swing.UIManager.LookAndFeelInfo; import javax.swing.border.Border; @@ -48,7 +49,7 @@ import java.util.Properties; * Base class that creates a generic "Splash Screen" * * @author Kim Rutherford <kmr@sanger.ac.uk> - * @version $Id: Splash.java,v 1.38 2008-11-13 08:53:26 tjc Exp $ + * @version $Id: Splash.java,v 1.39 2008-11-13 14:14:31 tjc Exp $ **/ abstract public class Splash extends JFrame @@ -463,9 +464,7 @@ abstract public class Splash extends JFrame setJMenuBar(menu_bar); - ActionListener menu_listener = null; - - menu_listener = new ActionListener() + ActionListener menu_listener = new ActionListener() { public void actionPerformed(ActionEvent event) { @@ -624,6 +623,39 @@ abstract public class Splash extends JFrame }); } options_menu.add(lafMenu); + + // list JFrames that are open + final JMenu framesMenu = new JMenu("Windows"); + menu_bar.add(framesMenu); + framesMenu.addItemListener(new ItemListener() + { + public void itemStateChanged(ItemEvent event) + { + framesMenu.removeAll(); + Frame[] frames = JFrame.getFrames(); + for(int i=0;i<frames.length;i++) + { + if( !(frames[i] instanceof JFrame) || + !frames[i].isVisible()) + continue; + + final JFrame thisFrame = (JFrame)frames[i]; + JCheckBoxMenuItem menuItem = new JCheckBoxMenuItem(thisFrame.getTitle(), false); + if(thisFrame.isActive()) + menuItem.setSelected(true); + framesMenu.add(menuItem); + + menuItem.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + thisFrame.toFront(); + thisFrame.requestFocus(); + } + }); + } + } + }); } /** -- GitLab