Drawpanel needs fewer args
[jalview.git] / src / jalview / appletgui / Finder.java
index f59216f..fb8c280 100755 (executable)
@@ -31,8 +31,8 @@ public class Finder extends Panel implements ActionListener
   AlignViewport av;\r
   AlignmentPanel ap;\r
   Frame frame;\r
-  SuperGroup searchGroup;\r
-  Vector searchResults;\r
+\r
+  SearchResults searchResults;\r
 \r
   int seqIndex = 0;\r
   int resIndex = 0;\r
@@ -83,39 +83,23 @@ public class Finder extends Panel implements ActionListener
 \r
   public void createNewGroup_actionPerformed()\r
   {\r
-    Color[] newColors = new Color[24];\r
-    for (int i = 0; i < 24; i++)\r
-    {\r
-      newColors[i] = new Color(60, 160, 115);\r
-    }\r
 \r
-    jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme(\r
-        newColors);\r
-    String searchString = textfield.getText();\r
-\r
-    searchGroup = new SuperGroup(searchString, ucs, true, true, false);\r
-\r
-    for (int i = 0; i < searchResults.size(); i += 3)\r
+    for (int i = 0; i < searchResults.getSize(); i ++ )\r
     {\r
-      // its possible edits may have occurred since search was performed\r
-      // account for this here\r
-\r
-      SequenceI seq = av.alignment.getSequenceAt(Integer.parseInt(searchResults.\r
-          elementAt(i).toString()));\r
-      int startRes = seq.findIndex(Integer.parseInt(searchResults.elementAt(i +\r
-          1).toString())) - 1;\r
-      int endRes = seq.findIndex(Integer.parseInt(searchResults.elementAt(i + 2).\r
-                                                  toString())) - 1;\r
-\r
-      SequenceGroup sg = new SequenceGroup(searchString, ucs, true, true, false,\r
-                                           startRes, endRes);\r
-      sg.addSequence(seq, false);\r
-      av.alignment.addGroup(sg);\r
-      searchGroup.addGroup(sg);\r
+        SequenceI seq = searchResults.getResultSequence(i);\r
+\r
+        SequenceFeature sf = new SequenceFeature(textfield.getText(),\r
+            "Search Results", null,\r
+            searchResults.getResultStart(i),\r
+           searchResults.getResultEnd(i));\r
 \r
+        ap.seqPanel.seqCanvas.getFeatureRenderer().addNewFeature(\r
+            textfield.getText(), new Color(60,160,115));\r
+        seq.addSequenceFeature(sf);\r
     }\r
 \r
-    ap.av.alignment.addSuperGroup(searchGroup);\r
+    ap.alignFrame.sequenceFeatures.setState(true);\r
+    av.showSequenceFeatures(true);\r
     ap.highlightSearchResults(null);\r
   }\r
 \r
@@ -127,8 +111,7 @@ public class Finder extends Panel implements ActionListener
 \r
     com.stevesoft.pat.Regex regex = new com.stevesoft.pat.Regex(searchString);\r
 \r
-    searchResults = new Vector();\r
-    int[] allResults = null;\r
+    searchResults = new SearchResults();\r
 \r
     Sequence seq;\r
     String item = null;\r
@@ -149,9 +132,8 @@ public class Finder extends Panel implements ActionListener
         seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0));\r
       }\r
 \r
-      searchResults.addElement(Integer.toString(av.getAlignment().findIndex(seq)));\r
-      searchResults.addElement(String.valueOf(res));\r
-      searchResults.addElement(String.valueOf(res));\r
+\r
+      searchResults.addResult(seq, res, res);\r
 \r
     }\r
     catch (NumberFormatException ex)\r
@@ -221,7 +203,7 @@ public class Finder extends Panel implements ActionListener
             continue;\r
           }\r
 \r
-          searchResults.addElement(Integer.toString(seqIndex));\r
+\r
           int sres = seq.findPosition(resIndex +\r
                                       Integer.parseInt(spaces.\r
               elementAt(resIndex).toString()));\r
@@ -229,8 +211,8 @@ public class Finder extends Panel implements ActionListener
                                       Integer.parseInt(\r
                                       spaces.elementAt(regex.matchedTo() - 1).\r
                                       toString()));\r
-          searchResults.addElement(sres + "");\r
-          searchResults.addElement(eres + "");\r
+\r
+          searchResults.addResult(seq, sres, eres);\r
 \r
           if (!findAll)\r
           {\r
@@ -261,33 +243,28 @@ public class Finder extends Panel implements ActionListener
       }\r
     }\r
 \r
-    if (searchResults.size() == 0 && idMatch.size() > 0)\r
+    if (searchResults.getSize() == 0 && idMatch.size() > 0)\r
     {\r
       ap.idPanel.highlightSearchResults(idMatch);\r
     }\r
 \r
-    if (searchResults.size() > 0)\r
+    if (searchResults.getSize() > 0)\r
     {\r
-      allResults = new int[searchResults.size()];\r
-      for (int i = 0; i < searchResults.size(); i++)\r
-      {\r
-        allResults[i] = Integer.parseInt(searchResults.elementAt(i).toString());\r
-      }\r
-\r
       createNewGroup.setEnabled(true);\r
     }\r
     else\r
     {\r
+      searchResults = null;\r
       resIndex = 0;\r
       seqIndex = 0;\r
     }\r
 \r
     // if allResults is null, this effectively switches displaySearch flag in seqCanvas\r
-    ap.highlightSearchResults(allResults);\r
+    ap.highlightSearchResults(searchResults);\r
 \r
     if (findAll)\r
     {\r
-      String message = (searchResults.size() / 3) + " matches found.";\r
+      String message = (searchResults.getSize()) + " matches found.";\r
       System.out.println(message);\r
     }\r
 \r
@@ -330,7 +307,7 @@ public class Finder extends Panel implements ActionListener
       gridLayout1.setVgap(2);\r
       createNewGroup.setEnabled(false);\r
       createNewGroup.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));\r
-      createNewGroup.setLabel("Create new group");\r
+      createNewGroup.setLabel("New Feature");\r
       createNewGroup.addActionListener(this);\r
       jPanel1.add(findNext, null);\r
       jPanel1.add(findAll, null);\r