Search on residue position and within selection
authoramwaterhouse <Andrew Waterhouse>
Thu, 2 Dec 2004 11:28:35 +0000 (11:28 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 2 Dec 2004 11:28:35 +0000 (11:28 +0000)
src/jalview/gui/Finder.java

index a819a18..d78669c 100755 (executable)
@@ -78,9 +78,38 @@ public class Finder extends GFinder
     Sequence seq;\r
     String item;\r
     boolean found = false;\r
+\r
+    /// is the searchString a residue number?\r
+    try{\r
+      int res = Integer.parseInt(searchString);\r
+      found = true;\r
+\r
+      if(av.getSelection().size()>0)\r
+        seq = (Sequence)(av.getSelection().sequenceAt(0));\r
+      else\r
+        seq = (Sequence)av.getAlignment().getSequenceAt(0);\r
+\r
+      searchResults.add( Integer.toString( av.getAlignment().findIndex(seq) ) );\r
+      searchResults.add( Integer.toString( seq.findIndex(res)-1 ) );\r
+      searchResults.add( Integer.toString( seq.findIndex(res)-1 ) );\r
+\r
+\r
+      //av.getAlignment().getSequenceAt(seq).findPosition(res)\r
+    }catch(NumberFormatException ex){}\r
+\r
+\r
     while( !found && seqIndex<av.getAlignment().getHeight())\r
     {\r
       seq = (Sequence)av.getAlignment().getSequenceAt(seqIndex);\r
+\r
+      if(av.getSelection().size()>0 && !av.getSelection().contains(seq))\r
+      {\r
+        // if a selection has been made, only search within that selection\r
+        seqIndex++;\r
+        resIndex=0;\r
+        continue;\r
+      }\r
+\r
       item = seq.getSequence();\r
 \r
       for(int r = resIndex; r<item.length(); r++)\r