JAL-629 fixing test EBIAlphaFoldTest.checkImportPAEToStructure(). not fixed yet
[jalview.git] / src / jalview / bin / Commands.java
index 2d57bc4..30fdc30 100644 (file)
@@ -19,7 +19,6 @@ import jalview.bin.argparser.Arg;
 import jalview.bin.argparser.ArgParser;
 import jalview.bin.argparser.ArgParser.Position;
 import jalview.bin.argparser.ArgValue;
-import jalview.bin.argparser.ArgValues;
 import jalview.bin.argparser.ArgValuesMap;
 import jalview.bin.argparser.SubVals;
 import jalview.datamodel.AlignmentI;
@@ -453,14 +452,6 @@ public class Commands
           Console.debug("Using structure file "
                   + structureFile.getAbsolutePath());
 
-          // ##### Does this need to happen? Follow
-          // openStructureFileForSequence() below
-          /*
-          PDBEntry fileEntry = new AssociatePdbFileWithSeq()
-                  .associatePdbWithSeq(structureFile.getAbsolutePath(),
-                          DataSourceType.FILE, seq, true, Desktop.instance);
-                          */
-
           // open structure view
           AlignmentPanel ap = af.alignPanel;
           if (headless)
@@ -502,18 +493,10 @@ public class Commands
                   .getFromSubValArgOrPrefWithSubstitutions(argParser, avm,
                           Arg.TEMPFAC, Position.AFTER, av, subVals, null,
                           null, null);
-          boolean notempfac = ArgParser.getBoolFromSubValOrArg(avm,
-                  Arg.NOTEMPFAC, subVals);
+          boolean notempfac = ArgParser.getFromSubValArgOrPref(avm,
+                  Arg.NOTEMPFAC, subVals, null, "ADD_TEMPFACT_ANN", false,
+                  true);
           TFType tft = notempfac ? null : TFType.DEFAULT;
-          /*
-          String tftString = subVals.get("tempfac");
-          ArgValue tftAv = getArgAssociatedWithStructure(Arg.TEMPFAC, avm,
-                  af, structureFilepath);
-          if (tftString == null && tftAv != null)
-          {
-            tftString = tftAv.getSubVals().getContent();
-          }
-          */
           if (tftString != null && !notempfac)
           {
             // get kind of temperature factor annotation
@@ -559,10 +542,6 @@ public class Commands
             }
           }
 
-          boolean addTempFac = notempfac ? false
-                  : ((tft != null)
-                          || Cache.getDefault("ADD_TEMPFACT_ANN", false));
-
           // TODO use ssFromStructure
           StructureViewer sv = StructureChooser
                   .openStructureFileForSequence(null, null, ap, seq, false,
@@ -578,17 +557,24 @@ public class Commands
                   avm, av, Arg.STRUCTUREIMAGE, subVals);
           if (sv != null && structureImageFilename != null)
           {
+            ArgValue siAv = avm.getClosestNextArgValueOfArg(av,
+                    Arg.STRUCTUREIMAGE);
+            SubVals sisv = null;
+            if (structureImageFilename.equals(siAv.getValue()))
+            {
+              sisv = siAv.getSubVals();
+            }
             File structureImageFile = new File(structureImageFilename);
             String width = ArgParser.getValueFromSubValOrArg(avm, av,
-                    Arg.STRUCTUREIMAGEWIDTH, subVals);
+                    Arg.STRUCTUREIMAGEWIDTH, sisv);
             String height = ArgParser.getValueFromSubValOrArg(avm, av,
-                    Arg.STRUCTUREIMAGEHEIGHT, subVals);
+                    Arg.STRUCTUREIMAGEHEIGHT, sisv);
             String scale = ArgParser.getValueFromSubValOrArg(avm, av,
-                    Arg.STRUCTUREIMAGESCALE, subVals);
+                    Arg.STRUCTUREIMAGESCALE, sisv);
             String renderer = ArgParser.getValueFromSubValOrArg(avm, av,
-                    Arg.STRUCTUREIMAGETEXTRENDERER, subVals);
+                    Arg.STRUCTUREIMAGETEXTRENDERER, sisv);
             String typeS = ArgParser.getValueFromSubValOrArg(avm, av,
-                    Arg.STRUCTUREIMAGETYPE, subVals);
+                    Arg.STRUCTUREIMAGETYPE, sisv);
             if (typeS == null || typeS.length() == 0)
             {
               typeS = FileUtils.getExtension(structureImageFile);
@@ -606,7 +592,7 @@ public class Commands
             }
             BitmapImageSizing userBis = ImageMaker
                     .parseScaleWidthHeightStrings(scale, width, height);
-            switch (sv.getViewerType())
+            switch (StructureViewer.getViewerType())
             {
             case JMOL:
               try
@@ -909,9 +895,15 @@ public class Commands
     SequenceI seq = null;
     if (subVals == null && idAv == null)
       return null;
+    if (af == null || af.getCurrentView() == null)
+    {
+      return null;
+    }
     AlignmentI al = af.getCurrentView().getAlignment();
     if (al == null)
+    {
       return null;
+    }
     if (subVals != null)
     {
       if (subVals.has(Arg.SEQID.getName()))
@@ -930,54 +922,4 @@ public class Commands
     }
     return seq;
   }
-
-  // returns the first Arg value intended for the structure structFilename
-  // (in the given AlignFrame from the ArgValuesMap)
-  private ArgValue getArgAssociatedWithStructure(Arg arg, ArgValuesMap avm,
-          AlignFrame af, String structFilename)
-  {
-    if (af != null)
-    {
-      for (ArgValue av : avm.getArgValueList(arg))
-      {
-        SubVals subVals = av.getSubVals();
-        String structid = subVals.get("structid");
-        String structfile = subVals.get("structfile");
-
-        // let's find a structure
-        if (structfile == null && structid == null)
-        {
-          ArgValue likelyStructure = avm.getClosestPreviousArgValueOfArg(av,
-                  Arg.STRUCTURE);
-          if (likelyStructure != null)
-          {
-            SubVals sv = likelyStructure.getSubVals();
-            if (sv != null && sv.has(ArgValues.ID))
-            {
-              structid = sv.get(ArgValues.ID);
-            }
-            else
-            {
-              structfile = likelyStructure.getValue();
-            }
-          }
-        }
-
-        if (structfile == null && structid != null)
-        {
-          StructureSelectionManager ssm = StructureSelectionManager
-                  .getStructureSelectionManager(Desktop.instance);
-          if (ssm != null)
-          {
-            structfile = ssm.findFileForPDBId(structid);
-          }
-        }
-        if (structfile != null && structfile.equals(structFilename))
-        {
-          return av;
-        }
-      }
-    }
-    return null;
-  }
 }