From c2a1cd8c85ca44529a5fb0d5dd941aa4dcdc09ed Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Thu, 30 Oct 2014 15:39:53 +0000 Subject: [PATCH] JAL-674 flag and proxy method to distinguish setMapping calls which create a mapping for a displayed structure and those which transfer annotation --- .../structure/StructureSelectionManager.java | 59 +++++++++++++++----- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/src/jalview/structure/StructureSelectionManager.java b/src/jalview/structure/StructureSelectionManager.java index b38fa7c..449e133 100644 --- a/src/jalview/structure/StructureSelectionManager.java +++ b/src/jalview/structure/StructureSelectionManager.java @@ -198,9 +198,33 @@ public class StructureSelectionManager } /** + * Import structure data and register a structure mapping for broadcasting + * colouring, mouseovers and selection events (convenience wrapper). + * + * @param sequence + * - one or more sequences to be mapped to pdbFile + * @param targetChains + * - optional chain specification for mapping each sequence to pdb + * (may be nill, individual elements may be nill) + * @param pdbFile + * - structure data resource + * @param protocol + * - how to resolve data from resource + * @return null or the structure data parsed as a pdb file + */ + synchronized public MCview.PDBfile setMapping(SequenceI[] sequence, + String[] targetChains, String pdbFile, String protocol) + { + return setMapping(true, sequence, targetChains, pdbFile, protocol); + } + + /** * create sequence structure mappings between each sequence and the given * pdbFile (retrieved via the given protocol). * + * @param forStructureView + * when true, record the mapping for use in mouseOvers + * * @param sequence * - one or more sequences to be mapped to pdbFile * @param targetChains @@ -212,7 +236,8 @@ public class StructureSelectionManager * - how to resolve data from resource * @return null or the structure data parsed as a pdb file */ - synchronized public MCview.PDBfile setMapping(SequenceI[] sequence, + synchronized public MCview.PDBfile setMapping(boolean forStructureView, + SequenceI[] sequence, String[] targetChains, String pdbFile, String protocol) { /* @@ -363,26 +388,30 @@ public class StructureSelectionManager index++; } while (index < maxChain.atoms.size()); - if (mappings == null) - { - mappings = new StructureMapping[1]; - } - else - { - StructureMapping[] tmp = new StructureMapping[mappings.length + 1]; - System.arraycopy(mappings, 0, tmp, 0, mappings.length); - mappings = tmp; - } - if (protocol.equals(jalview.io.AppletFormatAdapter.PASTE)) { pdbFile = "INLINE" + pdb.id; } - - mappings[mappings.length - 1] = new StructureMapping(sequence[s], + StructureMapping newMapping = new StructureMapping(sequence[s], pdbFile, pdb.id, maxChainId, mapping, mappingDetails.toString()); - maxChain.transferResidueAnnotation(mappings[mappings.length - 1]); + if (forStructureView) + { + + if (mappings == null) + { + mappings = new StructureMapping[1]; + } + else + { + StructureMapping[] tmp = new StructureMapping[mappings.length + 1]; + System.arraycopy(mappings, 0, tmp, 0, mappings.length); + mappings = tmp; + } + + mappings[mappings.length - 1] = newMapping; + } + maxChain.transferResidueAnnotation(newMapping); } // /////// -- 1.7.10.2