X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FCommands.java;h=b1b8288f3bb7220b352a1b7d4c4451320fa31143;hb=4f2ae706a69e1b75fb371488ca85038dd0987097;hp=06684e73335d85446a3ff0f813f4e1d45c592890;hpb=81d1b5ee333dee61382971eca41792d6a64a29fc;p=jalview.git diff --git a/src/jalview/bin/Commands.java b/src/jalview/bin/Commands.java index 06684e7..b1b8288 100644 --- a/src/jalview/bin/Commands.java +++ b/src/jalview/bin/Commands.java @@ -66,6 +66,8 @@ public class Commands private Map afMap; + private Map> svMap; + private boolean commandArgsProvided = false; private boolean argsWereParsed = false; @@ -81,16 +83,15 @@ public class Commands headless = h; desktop = d; afMap = new HashMap<>(); - if (argparser != null) - { - processArgs(argparser, headless); - } } - private boolean processArgs(ArgParser argparser, boolean h) + protected boolean processArgs() { - argParser = argparser; - headless = h; + if (argParser == null) + { + return true; + } + boolean theseArgsWereParsed = false; if (argParser != null && argParser.getLinkedIds() != null) @@ -99,9 +100,10 @@ public class Commands { ArgValuesMap avm = argParser.getLinkedArgs(id); theseArgsWereParsed = true; - theseArgsWereParsed &= processLinked(id); + boolean processLinkedOkay = processLinked(id); + theseArgsWereParsed &= processLinkedOkay; + processGroovyScript(id); - boolean processLinkedOkay = theseArgsWereParsed; // wait around until alignFrame isn't busy AlignFrame af = afMap.get(id); @@ -117,8 +119,11 @@ public class Commands } theseArgsWereParsed &= processImages(id); + if (processLinkedOkay) + { theseArgsWereParsed &= processOutput(id); + } // close ap if (avm.getBoolean(Arg.CLOSE)) @@ -153,11 +158,6 @@ public class Commands return argsWereParsed; } - protected boolean processUnlinked(String id) - { - return processLinked(id); - } - protected boolean processLinked(String id) { boolean theseArgsWereParsed = false; @@ -588,6 +588,18 @@ public class Commands Console.warn("Exception whilst waiting for structure viewer " + structureFilepath, x); } + + // add StructureViewer to svMap list + if (svMap == null) + { + svMap = new HashMap<>(); + } + if (svMap.get(id) == null) + { + svMap.put(id, new ArrayList<>()); + } + svMap.get(id).add(sv); + Console.debug( "Successfully opened viewer for " + structureFilepath); String structureImageFilename = ArgParser.getValueFromSubValOrArg( @@ -633,14 +645,6 @@ public class Commands switch (StructureViewer.getViewerType()) { case JMOL: - try - { - Thread.sleep(1000); // WHY ??? - } catch (InterruptedException e) - { - // TODO Auto-generated catch block - e.printStackTrace(); - } JalviewStructureDisplayI sview = sv .getJalviewStructureDisplay(); if (sview instanceof AppJmol) @@ -995,4 +999,32 @@ public class Commands } return seq; } + + public AlignFrame[] getAlignFrames() + { + AlignFrame[] afs = null; + if (afMap != null) + { + afs = (AlignFrame[]) afMap.values().toArray(); + } + + return afs; + } + + public List getStructureViewers() + { + List svs = null; + if (svMap != null) + { + for (List svList : svMap.values()) + { + if (svs == null) + { + svs = new ArrayList<>(); + } + svs.addAll(svList); + } + } + return svs; + } }