X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCommands.java;h=26ce8c32c1709ebfa7d81a923b8d4271947392a0;hb=a5928e2c1b9e2cea8d9c43f3d03f9cce2604f3b2;hp=b42f08e6db95ec65461eb7739a1850b372be7eaf;hpb=1f41372a2bda3efcc27abaed092495548135b6b4;p=jalview.git diff --git a/src/jalview/bin/Commands.java b/src/jalview/bin/Commands.java index b42f08e..26ce8c3 100644 --- a/src/jalview/bin/Commands.java +++ b/src/jalview/bin/Commands.java @@ -50,46 +50,65 @@ public class Commands { Desktop desktop; - private static boolean headless; + private boolean headless; - private static ArgParser argParser; + private ArgParser argParser; private Map afMap; - private static boolean commandArgsProvided = false; + private boolean commandArgsProvided = false; - public static boolean commandArgsProvided() + private boolean argsWereParsed = false; + + public Commands(ArgParser argparser, boolean headless) { - return commandArgsProvided; + this(Desktop.instance, argparser, headless); } - public static boolean processArgs(ArgParser ap, boolean h) + public Commands(Desktop d, ArgParser argparser, boolean h) { - argParser = ap; + argParser = argparser; headless = h; - boolean argsWereParsed = true; - if (headless) + desktop = d; + afMap = new HashMap(); + if (argparser != null) { - System.setProperty("java.awt.headless", "true"); + processArgs(argparser, headless); } + } + + private boolean processArgs(ArgParser argparser, boolean h) + { + argParser = argparser; + headless = h; + boolean theseArgsWereParsed = false; if (argParser != null && argParser.linkedIds() != null) { for (String id : argParser.linkedIds()) { - Commands cmds = new Commands(); + ArgValuesMap avm = argParser.linkedArgs(id); + theseArgsWereParsed = true; if (id == null) { - cmds.processUnlinked(id); - argsWereParsed &= cmds.wereParsed(); + theseArgsWereParsed &= processUnlinked(id); } else { - cmds.processLinked(id); - argsWereParsed &= cmds.wereParsed(); + theseArgsWereParsed &= processLinked(id); + } + theseArgsWereParsed &= processImages(id); + + // close ap + if (avm.getBoolean(Arg.CLOSE)) + { + AlignFrame af = afMap.get(id); + if (af != null) + { + af.closeMenuItem_actionPerformed(true); + } } - cmds.processImages(id); - argsWereParsed &= cmds.wereParsed(); + } } @@ -99,39 +118,31 @@ public class Commands return true; } // carry on with jalview.bin.Jalview + argsWereParsed = theseArgsWereParsed; return argsWereParsed; } - boolean argsWereParsed = true; // set false as soon as an arg is found - - private boolean wereParsed() - { - return argsWereParsed; - } - - public Commands() + public boolean commandArgsProvided() { - this(Desktop.instance); + return commandArgsProvided; } - public Commands(Desktop d) + public boolean argsWereParsed() { - this.desktop = d; - afMap = new HashMap(); + return argsWereParsed; } - protected void processUnlinked(String id) + protected boolean processUnlinked(String id) { - processLinked(id); + return processLinked(id); } - protected void processLinked(String id) + protected boolean processLinked(String id) { + boolean theseArgsWereParsed = false; ArgValuesMap avm = argParser.linkedArgs(id); if (avm == null) - return; - else - argsWereParsed = false; + return true; /* // script to execute after all loading is completed one way or another @@ -157,7 +168,7 @@ public class Commands if (openFile == null) continue; - argsWereParsed = true; + theseArgsWereParsed = true; if (first) { first = false; @@ -353,7 +364,7 @@ public class Commands { Console.debug( "Opening '" + openFile + "' in existing alignment frame"); - af.getCurrentView().addFile(new File(openFile), format); + af.getCurrentView().addFile(new File(openFile), format, false); } Console.debug("Command " + Arg.OPEN + " executed successfully!"); @@ -541,9 +552,11 @@ public class Commands Console.info("Changed colour " + acg.toString()); } } + + return theseArgsWereParsed; } - protected void processImages(String id) + protected boolean processImages(String id) { ArgValuesMap avm = argParser.linkedArgs(id); AlignFrame af = afMap.get(id); @@ -551,7 +564,7 @@ public class Commands if (af == null) { Console.warn("Did not have an alignment window for id=" + id); - return; + return false; } if (avm.containsArg(Arg.IMAGE)) @@ -602,6 +615,7 @@ public class Commands } } } + return true; } private SequenceI getSpecifiedSequence(AlignFrame af, SubVals subId)