-
- // 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;
- }