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;
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)
.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
}
}
- boolean addTempFac = notempfac ? false
- : ((tft != null)
- || Cache.getDefault("ADD_TEMPFACT_ANN", false));
-
// TODO use ssFromStructure
StructureViewer sv = StructureChooser
.openStructureFileForSequence(null, null, ap, seq, false,
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);
}
BitmapImageSizing userBis = ImageMaker
.parseScaleWidthHeightStrings(scale, width, height);
- switch (sv.getViewerType())
+ switch (StructureViewer.getViewerType())
{
case JMOL:
try
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()))
}
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;
- }
}