X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCommands.java;h=26ce8c32c1709ebfa7d81a923b8d4271947392a0;hb=a5928e2c1b9e2cea8d9c43f3d03f9cce2604f3b2;hp=a98069aa6a035f8fe80e22988f79ccc5fd022255;hpb=7e3a6674abdd31bf48e7e249a74eff50fd2ce589;p=jalview.git diff --git a/src/jalview/bin/Commands.java b/src/jalview/bin/Commands.java index a98069a..26ce8c3 100644 --- a/src/jalview/bin/Commands.java +++ b/src/jalview/bin/Commands.java @@ -50,39 +50,65 @@ public class Commands { Desktop desktop; - private static boolean headless; + private boolean headless; - private static ArgParser argParser; + private ArgParser argParser; private Map afMap; - public static boolean processArgs(ArgParser ap, boolean h) + private boolean commandArgsProvided = false; + + private boolean argsWereParsed = false; + + public Commands(ArgParser argparser, boolean headless) { - argParser = ap; + this(Desktop.instance, argparser, headless); + } + + public Commands(Desktop d, ArgParser argparser, boolean h) + { + 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(); + } } @@ -92,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) { - ArgValuesMap avm = new ArgValuesMap(argParser.linkedArgs(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 @@ -136,11 +154,13 @@ public class Commands FileFormatI format = null; DataSourceType protocol = null; */ - if (avm.hasValue(Arg.OPEN)) + if (avm.containsArg(Arg.OPEN)) { + commandArgsProvided = true; long progress = -1; boolean first = true; + boolean progressBarSet = false; AlignFrame af; for (ArgValue av : avm.getArgValueList(Arg.OPEN)) { @@ -148,7 +168,7 @@ public class Commands if (openFile == null) continue; - argsWereParsed = true; + theseArgsWereParsed = true; if (first) { first = false; @@ -158,6 +178,7 @@ public class Commands MessageManager.getString( "status.processing_commandline_args"), progress = System.currentTimeMillis()); + progressBarSet = true; } } @@ -224,7 +245,8 @@ public class Commands // get kind of temperature factor annotation StructureImportSettings.TFType tempfacType = TFType.DEFAULT; - if ((!avm.getBoolean(Arg.NOTEMPFAC)) && avm.hasValue(Arg.TEMPFAC)) + if ((!avm.getBoolean(Arg.NOTEMPFAC)) + && avm.containsArg(Arg.TEMPFAC)) { try { @@ -269,13 +291,13 @@ public class Commands } // colour aligment? - if (avm.hasValue(Arg.COLOUR)) + if (avm.containsArg(Arg.COLOUR)) { af.changeColour_actionPerformed(avm.getValue(Arg.COLOUR)); } // change alignment frame title - if (avm.hasValue(Arg.TITLE)) + if (avm.containsArg(Arg.TITLE)) af.setTitle(avm.getValue(Arg.TITLE)); /* hacky approach to hiding the annotations */ @@ -305,7 +327,7 @@ public class Commands if (showTemperatureFactor) */ { - if (avm.hasValue(Arg.TEMPFAC_LABEL)) + if (avm.containsArg(Arg.TEMPFAC_LABEL)) { AlignmentAnnotation aa = AlignmentUtils .getFirstSequenceAnnotationOfType( @@ -342,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!"); @@ -358,10 +380,10 @@ public class Commands else { Console.warn("No more files to open"); - if (desktop != null) - desktop.setProgressBar(null, progress); } } + if (progressBarSet && desktop != null) + desktop.setProgressBar(null, progress); } @@ -369,8 +391,9 @@ public class Commands if (!avm.getBoolean(Arg.NOSTRUCTURE)) { AlignFrame af = afMap.get(id); - if (avm.hasValue(Arg.STRUCTURE)) + if (avm.containsArg(Arg.STRUCTURE)) { + commandArgsProvided = true; for (ArgValue av : avm.getArgValueList(Arg.STRUCTURE)) { String val = av.getValue(); @@ -443,14 +466,21 @@ public class Commands Cache.setProperty(Preferences.STRUCTURE_DISPLAY, StructureViewer.ViewerType.JMOL.toString()); } - StructureChooser.openStructureFileForSequence(ap, seq, - structureFile); + + // get tft, paeFilename, label? + /* + ArgValue tftAv = avm.getArgValuesReferringTo("structid", structId, + Arg.TEMPFAC); + */ + StructureChooser.openStructureFileForSequence(null, null, ap, seq, + false, structureFile.getAbsolutePath(), null, null); // tft, + // paeFilename); } } } // load a pAE file if given - if (avm.hasValue(Arg.PAEMATRIX)) + if (avm.containsArg(Arg.PAEMATRIX)) { AlignFrame af = afMap.get(id); if (af != null) @@ -522,20 +552,22 @@ public class Commands Console.info("Changed colour " + acg.toString()); } } + + return theseArgsWereParsed; } - protected void processImages(String id) + protected boolean processImages(String id) { - ArgValuesMap avm = new ArgValuesMap(argParser.linkedArgs(id)); + ArgValuesMap avm = argParser.linkedArgs(id); AlignFrame af = afMap.get(id); if (af == null) { Console.warn("Did not have an alignment window for id=" + id); - return; + return false; } - if (avm.hasValue(Arg.IMAGE)) + if (avm.containsArg(Arg.IMAGE)) { for (ArgValue av : avm.getArgValueList(Arg.IMAGE)) { @@ -583,6 +615,7 @@ public class Commands } } } + return true; } private SequenceI getSpecifiedSequence(AlignFrame af, SubVals subId)