SuperGroup added
authoramwaterhouse <Andrew Waterhouse>
Fri, 21 Jan 2005 18:28:00 +0000 (18:28 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 21 Jan 2005 18:28:00 +0000 (18:28 +0000)
src/jalview/gui/Finder.java

index c2cf25b..1ff31fe 100755 (executable)
@@ -7,6 +7,7 @@ import javax.swing.*;
 import javax.swing.event.*;\r
 import java.util.*;\r
 import java.util.regex.*;\r
+import java.awt.*;\r
 \r
 public class Finder extends GFinder\r
 {\r
@@ -14,6 +15,7 @@ public class Finder extends GFinder
   AlignmentPanel ap;\r
   JInternalFrame frame;\r
   String searchString;\r
+  SuperGroup searchGroup;\r
 \r
   int seqIndex = 0;\r
   int resIndex = 0;\r
@@ -32,11 +34,14 @@ public class Finder extends GFinder
         SwingUtilities.invokeLater(new Runnable()\r
         {\r
           public void run()\r
-          {\r
-            textfield.requestFocus();\r
-          }\r
+          {   textfield.requestFocus();      }\r
        });\r
-   }\r
+     }\r
+\r
+     public void internalFrameClosing(InternalFrameEvent evt)\r
+     {\r
+       cancel_actionPerformed(null);\r
+     }\r
 });\r
 \r
   }\r
@@ -63,13 +68,24 @@ public class Finder extends GFinder
     try{\r
       // if allResults is null, this effectively switches displaySearch flag in seqCanvas\r
       ap.highlightSearchResults( null );\r
-      frame.setClosed(true);\r
+     // frame.setClosed(true);\r
     }catch(Exception ex){ }\r
+  }\r
+\r
 \r
+  public void createNewGroup_actionPerformed(ActionEvent e)\r
+  {\r
+    for(int i=0; i<searchGroup.getSize(); i++)\r
+      av.alignment.addGroup( searchGroup.getGroupeAt(i));\r
+\r
+    ap.av.alignment.addSuperGroup(searchGroup);\r
+    ap.highlightSearchResults( null );\r
   }\r
 \r
+\r
   void doSearch(boolean findAll)\r
   {\r
+    createNewGroup.setEnabled(false);\r
     searchString = textfield.getText().toUpperCase();\r
 \r
     ArrayList searchResults = new ArrayList();\r
@@ -97,6 +113,14 @@ public class Finder extends GFinder
       //av.getAlignment().getSequenceAt(seq).findPosition(res)\r
     }catch(NumberFormatException ex){}\r
 \r
+    jalview.schemes.UserColourScheme ucs = new jalview.schemes.UserColourScheme();\r
+    Color [] newColors = new Color[24];\r
+    for(int i=0; i<24; i++)\r
+      newColors[i] = new Color(60,160,115);\r
+\r
+    ucs.setColourScheme(newColors);\r
+\r
+    searchGroup = new SuperGroup(searchString, ucs , true, true, false);\r
 \r
     while( !found && seqIndex<av.getAlignment().getHeight())\r
     {\r
@@ -142,6 +166,14 @@ public class Finder extends GFinder
          searchResults.add( Integer.toString( seqIndex) );\r
          searchResults.add( Integer.toString( resIndex+ Integer.parseInt(spaces.get(resIndex).toString()) ) );\r
          searchResults.add( Integer.toString( matcher.end()-1 + Integer.parseInt(spaces.get(matcher.end()-1).toString()) ) );\r
+\r
+         SequenceGroup sg = new SequenceGroup(searchString, ucs, true, true, false,\r
+                                             resIndex+ Integer.parseInt(spaces.get(resIndex).toString()) ,\r
+                                      matcher.end()-1 + Integer.parseInt(spaces.get(matcher.end()-1).toString())\r
+            );\r
+         sg.addSequence((Sequence)av.getAlignment().getSequenceAt(seqIndex));\r
+         searchGroup.addGroup( sg );\r
+\r
          if(!findAll)\r
          {\r
            // thats enough, break and display the result\r
@@ -158,7 +190,7 @@ public class Finder extends GFinder
         seqIndex++;\r
         resIndex = 0;\r
       }\r
-    }\r
+          }\r
 \r
     if(searchResults.size()>0)\r
     {\r
@@ -166,6 +198,7 @@ public class Finder extends GFinder
       for(int i=0; i<searchResults.size(); i++)\r
         allResults[i] = Integer.parseInt(searchResults.get(i).toString());\r
 \r
+      createNewGroup.setEnabled(true);\r
     }\r
     else\r
     {\r