recover pdb from jalview-xml in vamsas doc
authorjprocter <Jim Procter>
Fri, 12 Jun 2009 15:49:17 +0000 (15:49 +0000)
committerjprocter <Jim Procter>
Fri, 12 Jun 2009 15:49:17 +0000 (15:49 +0000)
src/jalview/gui/Jalview2XML.java

index 03a9ecc..8497df7 100755 (executable)
@@ -574,6 +574,7 @@ public class Jalview2XML
           AppJmol jmol;
           // This must have been loaded, is it still visible?
           JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+          String matchedFile=null;
           for (int f = frames.length - 1; f > -1; f--)
           {
             if (frames[f] instanceof AppJmol)
@@ -581,9 +582,9 @@ public class Jalview2XML
               jmol = (AppJmol) frames[f];
               if (!jmol.pdbentry.getId().equals(entry.getId()) 
                       && !(entry.getId().length()>4 
-                              && entry.getId().startsWith(jmol.pdbentry.getId())))
+                              && entry.getId().toLowerCase().startsWith(jmol.pdbentry.getId().toLowerCase())))
                 continue;
-
+              matchedFile = jmol.pdbentry.getFile(); // record the file so we can get at it if the ID match is ambiguous (e.g. 1QIP==1qipA)
               StructureState state = new StructureState();
               state.setVisible(true);
               state.setXpos(jmol.getX());
@@ -606,9 +607,14 @@ public class Jalview2XML
             }
           }
 
-          if (entry.getFile() != null)
+          if (matchedFile!=null || entry.getFile() != null )
           {
-            pdb.setFile(entry.getFile());
+            if (entry.getFile()!=null)
+            {
+              // use entry's file
+              matchedFile = entry.getFile();
+            } 
+            pdb.setFile(matchedFile); // entry.getFile());
             if (pdbfiles == null)
             {
               pdbfiles = new Vector();
@@ -619,7 +625,7 @@ public class Jalview2XML
               pdbfiles.addElement(entry.getId());
               try
               {
-                File file = new File(entry.getFile());
+                File file = new File(matchedFile);
                 if (file.exists() && jout != null)
                 {
                   byte[] data = new byte[(int) file.length()];
@@ -2243,12 +2249,13 @@ public class Jalview2XML
                     .getHeight(), tree.getXpos(), tree.getYpos());
             if (tree.getId() != null)
             {
-
+              // perhaps bind the tree id to something ?
             }
           }
           else
           {
             // update local tree attributes ?
+            // TODO: should check if tp has been manipulated by user - if so its settings shouldn't be modified
             tp.setTitle(tree.getTitle());
             tp.setBounds(new Rectangle(tree.getXpos(), tree.getYpos(), tree
                     .getWidth(), tree.getHeight()));
@@ -2365,7 +2372,8 @@ public class Jalview2XML
                   }
                 }
               }
-              Desktop.desktop.getComponentAt(x, y);
+              // Probably don't need to do this anymore...
+              // Desktop.desktop.getComponentAt(x, y);
               // TODO: NOW: check that this recovers the PDB file correctly.
               String pdbFile = loadPDBFile(jprovider, ids[p].getId());