From f1c2b0fcbf27b263aeea4a98b61f02d00b73ff78 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Thu, 30 Oct 2014 15:30:50 +0000 Subject: [PATCH] JAL-674 map on StructureSelectionManager to record PDB IDs extracted/assigned to PDB files --- .../structure/StructureSelectionManager.java | 50 ++++++++++++++++++-- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/src/jalview/structure/StructureSelectionManager.java b/src/jalview/structure/StructureSelectionManager.java index 58bba48..b38fa7c 100644 --- a/src/jalview/structure/StructureSelectionManager.java +++ b/src/jalview/structure/StructureSelectionManager.java @@ -25,13 +25,15 @@ import jalview.api.StructureSelectionManagerProvider; import jalview.datamodel.AlignedCodonFrame; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.Annotation; +import jalview.datamodel.PDBEntry; import jalview.datamodel.SearchResults; import jalview.datamodel.SequenceI; +import jalview.io.FormatAdapter; import jalview.util.MessageManager; import java.io.PrintStream; import java.util.Enumeration; -import java.util.Hashtable; +import java.util.HashMap; import java.util.IdentityHashMap; import java.util.Vector; @@ -64,7 +66,36 @@ public class StructureSelectionManager } } - Hashtable mappingData = new Hashtable(); + /** + * map between the PDB IDs (or structure identifiers) used by Jalview and the + * absolute filenames for PDB data that corresponds to it + */ + HashMap pdbIdFileName = new HashMap(), + pdbFileNameId = new HashMap(); + + public void registerPDBFile(String idForFile, String absoluteFile) + { + pdbIdFileName.put(idForFile, absoluteFile); + pdbFileNameId.put(absoluteFile, idForFile); + } + + public String findIdForPDBFile(String idOrFile) + { + String id = pdbFileNameId.get(idOrFile); + return id; + } + + public String findFileForPDBId(String idOrFile) + { + String id = pdbIdFileName.get(idOrFile); + return id; + } + + public boolean isPDBFileRegistered(String idOrFile) + { + return pdbFileNameId.containsKey(idOrFile) + || pdbIdFileName.containsKey(idOrFile); + } private static StructureSelectionManager nullProvider = null; @@ -855,10 +886,10 @@ public class StructureSelectionManager listeners.clear(); listeners = null; } - if (mappingData != null) + if (pdbIdFileName != null) { - mappingData.clear(); - mappingData = null; + pdbIdFileName.clear(); + pdbIdFileName = null; } if (sel_listeners != null) { @@ -902,4 +933,13 @@ public class StructureSelectionManager } } + public void registerPDBEntry(PDBEntry pdbentry) + { + if (pdbentry.getFile() != null + && pdbentry.getFile().trim().length() > 0) + { + registerPDBFile(pdbentry.getId(), pdbentry.getFile()); + } + } + } -- 1.7.10.2