diff --git a/uk/ac/sanger/artemis/components/RunMenu.java b/uk/ac/sanger/artemis/components/RunMenu.java index 25ec0b14783e39a47b1e51fac27ad0ad1340e31c..902c32580d982bace156ace66da9524ebdfaeb34 100644 --- a/uk/ac/sanger/artemis/components/RunMenu.java +++ b/uk/ac/sanger/artemis/components/RunMenu.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/RunMenu.java,v 1.3 2004-06-09 13:04:16 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/RunMenu.java,v 1.4 2004-07-21 15:16:06 tjc Exp $ **/ package uk.ac.sanger.artemis.components; @@ -43,11 +43,17 @@ import javax.swing.*; * A JMenu of external commands/functions. * * @author Kim Rutherford - * @version $Id: RunMenu.java,v 1.3 2004-06-09 13:04:16 tjc Exp $ + * @version $Id: RunMenu.java,v 1.4 2004-07-21 15:16:06 tjc Exp $ **/ public class RunMenu extends SelectionMenu { + + private JMenu fastaMenu = null; + private JMenu fastaMenuOptions = null; + private JMenu blastpMenu = null; + private JMenu blastpMenuOptions = null; + /** * Create a new RunMenu object. * @param frame The JFrame that owns this JMenu. @@ -63,6 +69,7 @@ public class RunMenu extends SelectionMenu final ExternalProgramVector external_programs = Options.getOptions().getExternalPrograms(); + for(int i = 0 ; i < external_programs.size() ; ++i) makeMenuItem(external_programs.elementAt(i)); @@ -119,7 +126,8 @@ public class RunMenu extends SelectionMenu private void makeMenuItem(final ExternalProgram program) { final JMenuItem new_menu; - + + if(program.getType() == ExternalProgram.AA_PROGRAM || program.getType() == ExternalProgram.DNA_PROGRAM && Options.getOptions().getPropertyTruthValue("sanger_options")) @@ -127,8 +135,14 @@ public class RunMenu extends SelectionMenu final String options_string = program.getProgramOptions(); if(options_string.length() > 0) - new_menu = new JMenuItem("Run " + program.getName() + " (" + + { + if(program.getName().startsWith("fasta") || + program.getName().startsWith("blastp")) + new_menu = new JMenuItem(options_string); + else + new_menu = new JMenuItem("Run " + program.getName() + " (" + options_string + ") on selected features"); + } else new_menu = new JMenuItem("Run " + program.getName() + " on selected features"); @@ -196,7 +210,26 @@ public class RunMenu extends SelectionMenu } }); - add(new_menu); + if(program.getName().startsWith("fasta")) + { + if(fastaMenu == null) + { + fastaMenu = new JMenu("Run fasta on selected features against"); + add(fastaMenu); + } + fastaMenu.add(new_menu); + } + else if(program.getName().startsWith("blastp")) + { + if(blastpMenu == null) + { + blastpMenu = new JMenu("Run blast on selected features against"); + add(blastpMenu); + } + blastpMenu.add(new_menu); + } + else + add(new_menu); } /** @@ -209,8 +242,32 @@ public class RunMenu extends SelectionMenu program.getType() == ExternalProgram.DNA_PROGRAM)) return; - final JMenuItem new_options_menu = - new JMenuItem("Set " + program.getName() + " options"); + JMenuItem new_options_menu = null; + if(program.getName().startsWith("fasta")) + { + if(fastaMenuOptions == null) + { + fastaMenuOptions = new JMenu("Set " + program.getName() + " options"); + add(fastaMenuOptions); + } + new_options_menu = new JMenuItem(program.getProgramOptions()); + fastaMenuOptions.add(new_options_menu); + } + else if(program.getName().startsWith("blastp")) + { + if(blastpMenuOptions == null) + { + blastpMenuOptions = new JMenu("Set " + program.getName() + " options"); + add(blastpMenuOptions); + } + new_options_menu = new JMenuItem(program.getProgramOptions()); + blastpMenuOptions.add(new_options_menu); + } + else + { + new_options_menu = new JMenuItem("Set " + program.getName() + " options"); + add(new_options_menu); + } new_options_menu.addActionListener(new ActionListener() { @@ -219,8 +276,6 @@ public class RunMenu extends SelectionMenu new ExternalProgramOptions(program); } }); - - add(new_options_menu); } /**