X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fbin%2FCommands.java;h=61ee1be035007f54965f49da9fae084c9348f45a;hb=09eebd8c6997a33049084e307078717cc1a693a6;hp=c08dd2347185014729ea0990873ed71cf46ab456;hpb=34ce5193c8766085422c32544246d92f12d0c975;p=jalview.git diff --git a/src/jalview/bin/Commands.java b/src/jalview/bin/Commands.java index c08dd23..61ee1be 100644 --- a/src/jalview/bin/Commands.java +++ b/src/jalview/bin/Commands.java @@ -32,6 +32,7 @@ import jalview.io.HtmlSvgOutput; import jalview.io.IdentifyFile; import jalview.structure.StructureImportSettings; import jalview.structure.StructureImportSettings.TFType; +import jalview.structure.StructureSelectionManager; import jalview.util.HttpUtils; import jalview.util.MessageManager; import jalview.util.Platform; @@ -47,14 +48,21 @@ public class Commands private Map afMap; - public static void processArgs(ArgParser ap, boolean h) + public static boolean processArgs(ArgParser ap, boolean h) { argParser = ap; headless = h; + boolean argsWereParsed = false; + if (headless) + { + System.setProperty("java.awt.headless", "true"); + } + if (argParser != null && argParser.linkedIds() != null) { for (String id : argParser.linkedIds()) { + Console.debug("##### id=" + id); Commands cmds = new Commands(); if (id == null) { @@ -65,13 +73,24 @@ public class Commands cmds.processLinked(id); } cmds.processImages(id); + argsWereParsed |= cmds.wereParsed(); } - if (argParser.getBool(Arg.QUIT)) - { - Jalview.getInstance().quit(); - } } + if (argParser.getBool(Arg.QUIT)) + { + Jalview.getInstance().quit(); + return true; + } + // carry on with jalview.bin.Jalview + return argsWereParsed; + } + + boolean argsWereParsed = false; + + private boolean wereParsed() + { + return argsWereParsed; } public Commands() @@ -87,6 +106,8 @@ public class Commands protected void processUnlinked(String id) { + Map m = argParser.linkedArgs(id); + processLinked(id); } @@ -104,18 +125,18 @@ public class Commands FileFormatI format = null; DataSourceType protocol = null; */ - if (ArgParser.getArgValues(m, Arg.OPEN) != null) { long progress = -1; boolean first = true; AlignFrame af; - OPEN: for (String openFile : ArgParser.getValues(m, Arg.OPEN)) + for (String openFile : ArgParser.getValues(m, Arg.OPEN)) { if (openFile == null) - continue OPEN; + continue; + argsWereParsed = true; if (first) { first = false; @@ -140,7 +161,6 @@ public class Commands if (!(new File(openFile)).exists()) { Console.warn("Can't find file '" + openFile + "'"); - continue OPEN; } } } @@ -289,6 +309,16 @@ public class Commands // store the AlignFrame for this id afMap.put(id, af); + + // is it its own structure file? + if (format.isStructureFile()) + { + StructureSelectionManager ssm = StructureSelectionManager + .getStructureSelectionManager(Desktop.instance); + SequenceI seq = af.alignPanel.getAlignment().getSequenceAt(0); + ssm.computeMapping(false, new SequenceI[] { seq }, null, + openFile, DataSourceType.FILE, null); + } } else { @@ -308,12 +338,15 @@ public class Commands Console.error("Could not open any files in headless mode"); System.exit(1); } - } - else - { - Console.warn("No more files to open"); - if (desktop != null) - desktop.setProgressBar(null, progress); + // TOREMOVE COMMENT + // @Ben assumed this was the GUI version of above, rather then the + // first==false state + else + { + Console.warn("No more files to open"); + if (desktop != null) + desktop.setProgressBar(null, progress); + } } } @@ -328,17 +361,32 @@ public class Commands { SubVal subVal = ArgParser.getSubVal(val); File paeFile = new File(subVal.content); - if ("structid".equals(subVal.index)) + String structId = "structid".equals(subVal.keyName) + ? subVal.keyValue + : null; + if (subVal.notSet()) + { + // take structid from pdbfilename + } + if ("structfile".equals(subVal.keyName)) { EBIAlfaFold.addAlphaFoldPAEToStructure( af.getCurrentView().getAlignment(), paeFile, - subVal.index, subVal.keyValue); + subVal.index, subVal.keyValue, false); + } + else if ("structid".equals(subVal.keyName)) + { + EBIAlfaFold.addAlphaFoldPAEToStructure( + af.getCurrentView().getAlignment(), paeFile, + subVal.index, subVal.keyValue, true); } else { - EBIAlfaFold.addAlphaFoldPAEToSequence(af.getCurrentView().getAlignment(), - paeFile, subVal.index, - "id".equals(subVal.keyName) ? subVal.keyValue : null); + EBIAlfaFold.addAlphaFoldPAEToSequence( + af.getCurrentView().getAlignment(), paeFile, + subVal.index, + "seqid".equals(subVal.keyName) ? subVal.keyValue + : null); // required to readjust the height and position of the pAE // annotation } @@ -356,7 +404,7 @@ public class Commands AlignFrame af = afMap.get(id); if (ArgParser.getArgValues(m, Arg.STRUCTURE) != null) { - STRUCTURE: for (String val : ArgParser.getValues(m, Arg.STRUCTURE)) + for (String val : ArgParser.getValues(m, Arg.STRUCTURE)) { SubVal subId = new SubVal(val); SequenceI seq = getSpecifiedSequence(af, subId); @@ -386,14 +434,14 @@ public class Commands if (structureFile == null) { Console.warn("Not provided structure file with '" + val + "'"); - continue STRUCTURE; + continue; } if (!structureFile.exists()) { Console.warn("Structure file '" + structureFile.getAbsoluteFile() + "' not found."); - continue STRUCTURE; + continue; } Console.debug("Using structure file " @@ -441,6 +489,10 @@ public class Commands } } } + // for moment we disable JSON export + Cache.setPropsAreReadOnly(true); + Cache.setProperty("EXPORT_EMBBED_BIOJSON", "false"); + switch (type) { case "svg":