Merge branch 'features/r2_11_2_alphafold/JAL-629' into merge/big_merge_of_bens_stuff_...
authorBen Soares <b.soares@dundee.ac.uk>
Thu, 31 Aug 2023 15:49:25 +0000 (16:49 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Thu, 31 Aug 2023 15:49:25 +0000 (16:49 +0100)
1  2 
src/jalview/bin/Commands.java

@@@ -6,6 -6,7 +6,6 @@@ import java.net.URISyntaxException
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Collections;
 -import java.util.EnumSet;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
@@@ -165,9 -166,13 +165,9 @@@ public class Command
      if (avm == null)
        return true;
  
 -    /*
 -     * // script to execute after all loading is completed one way or another String
 -     * groovyscript = m.get(Arg.GROOVY) == null ? null :
 -     * m.get(Arg.GROOVY).getValue(); String file = m.get(Arg.OPEN) == null ? null :
 -     * m.get(Arg.OPEN).getValue(); String data = null; FileFormatI format = null;
 -     * DataSourceType protocol = null;
 -     */
 +    // set wrap scope here so it can be applied after structures are opened
 +    boolean wrap = false;
 +
      if (avm.containsArg(Arg.APPEND) || avm.containsArg(Arg.OPEN))
      {
        commandArgsProvided = true;
            af = fileLoader.LoadFileWaitTillLoaded(openFile, protocol,
                    format);
  
 -          // wrap alignment?
 -          boolean wrap = ArgParser.getFromSubValArgOrPref(avm, Arg.WRAP, sv,
 -                  null, "WRAP_ALIGNMENT", false);
 -          af.getCurrentView().setWrapAlignment(wrap);
 -
            // colour alignment?
            String colour = ArgParser.getFromSubValArgOrPref(avm, av,
                    Arg.COLOUR, sv, null, "DEFAULT_COLOUR_PROT", "");
                      false, false);
            }
  
 +          // wrap alignment? do this last for formatting reasons
 +          wrap = ArgParser.getFromSubValArgOrPref(avm, Arg.WRAP, sv, null,
 +                  "WRAP_ALIGNMENT", false);
 +          // af.setWrapFormat(wrap) is applied after structures are opened for
 +          // annotation reasons
 +
            // store the AlignFrame for this id
            afMap.put(id, af);
  
            String sViewer = ArgParser.getFromSubValArgOrPref(avm,
                    Arg.STRUCTUREVIEWER, Position.AFTER, av, subVals, null,
                    null, "jmol");
 -          ViewerType viewerType = null;
 -          if (!"none".equals(sViewer))
 -          {
 -            for (ViewerType v : EnumSet.allOf(ViewerType.class))
 -            {
 -              String name = v.name().toLowerCase(Locale.ROOT)
 -                      .replaceAll(" ", "");
 -              if (sViewer.equals(name))
 -              {
 -                viewerType = v;
 -                break;
 -              }
 -            }
 -          }
 +          ViewerType viewerType = ViewerType.getFromString(sViewer);
  
            // TODO use ssFromStructure
            StructureViewer sv = StructureChooser
        }
      }
  
 +    if (wrap)
 +    {
 +      AlignFrame af = afMap.get(id);
 +      if (af != null)
 +      {
 +        af.setWrapFormat(wrap, true);
 +      }
 +    }
 +
      /*
      boolean doShading = avm.getBoolean(Arg.TEMPFAC_SHADING);
      if (doShading)
          String val = av.getValue();
          SubVals subVals = av.getSubVals();
          String fileName = subVals.getContent();
 +        boolean stdout = ArgParser.STDOUTFILENAME.equals(fileName);
          File file = new File(fileName);
          boolean overwrite = ArgParser.getFromSubValArgOrPref(avm,
                  Arg.OVERWRITE, subVals, null, "OVERWRITE_OUTPUT", false);
                  !Platform.isHeadless());
  
          // if backups is not true then --overwrite must be specified
 -        if (file.exists() && !(overwrite || backups))
 +        if (file.exists() && !(overwrite || backups || stdout))
          {
            Console.error("Won't overwrite file '" + fileName + "' without "
                    + Arg.OVERWRITE.argString() + " or "
          }
          if (ff == null)
          {
 -          StringBuilder validSB = new StringBuilder();
 -          for (String f : validFormats)
 -          {
 -            if (validSB.length() > 0)
 -              validSB.append(", ");
 -            validSB.append(f);
 -            FileFormatI tff = ffs.forName(f);
 -            validSB.append(" (");
 -            validSB.append(tff.getExtensions());
 -            validSB.append(")");
 +          if (stdout)
 +          {
 +            ff = FileFormat.Fasta;
            }
 +          else
 +          {
 +            StringBuilder validSB = new StringBuilder();
 +            for (String f : validFormats)
 +            {
 +              if (validSB.length() > 0)
 +                validSB.append(", ");
 +              validSB.append(f);
 +              FileFormatI tff = ffs.forName(f);
 +              validSB.append(" (");
 +              validSB.append(tff.getExtensions());
 +              validSB.append(")");
 +            }
  
 -          Jalview.exit("No valid format specified for "
 -                  + Arg.OUTPUT.argString() + ". Valid formats are "
 -                  + validSB.toString() + ".", 1);
 -          // this return really shouldn't happen
 -          return false;
 +            Jalview.exit("No valid format specified for "
 +                    + Arg.OUTPUT.argString() + ". Valid formats are "
 +                    + validSB.toString() + ".", 1);
 +            // this return really shouldn't happen
 +            return false;
 +          }
          }
  
          String savedBackupsPreference = Cache
  
          Console.info("Writing " + fileName);
  
 -        af.saveAlignment(fileName, ff);
 +        af.saveAlignment(fileName, ff, stdout);
          Console.debug("Returning backups to " + savedBackupsPreference);
          if (savedBackupsPreference != null)
            Cache.applicationProperties.put(BackupFiles.ENABLED,
          seq = al.getSequenceAt(subVals.getIndex());
        }
      }
-     else if (idAv != null)
+     if (seq == null && idAv != null)
      {
        seq = al.findName(idAv.getValue());
      }