refactored Alignframe padGaps code to Alignment and Added AlignmentI method.
[jalview.git] / src / jalview / appletgui / Finder.java
index e152506..f59216f 100755 (executable)
@@ -25,10 +25,8 @@ import java.awt.*;
 import java.awt.event.*;\r
 \r
 import jalview.datamodel.*;\r
-import jalview.jbappletgui.*;\r
 \r
-public class Finder\r
-    extends GFinder\r
+public class Finder extends Panel implements ActionListener\r
 {\r
   AlignViewport av;\r
   AlignmentPanel ap;\r
@@ -40,6 +38,15 @@ public class Finder
   int resIndex = 0;\r
   public Finder(final AlignmentPanel ap)\r
   {\r
+    try\r
+    {\r
+      jbInit();\r
+    }\r
+    catch (Exception e)\r
+    {\r
+      e.printStackTrace();\r
+    }\r
+\r
     this.av = ap.av;\r
     this.ap = ap;\r
     frame = new Frame();\r
@@ -55,37 +62,26 @@ public class Finder
     });\r
   }\r
 \r
-  public void textfield_actionPerformed(ActionEvent e)\r
-  {\r
-    doSearch(false);\r
-  }\r
-\r
-  public void findNext_actionPerformed(ActionEvent e)\r
+  public void actionPerformed(ActionEvent evt)\r
   {\r
-    doSearch(false);\r
-  }\r
+    if (evt.getSource() == textfield)\r
+      doSearch(false);\r
 \r
-  public void findAll_actionPerformed(ActionEvent e)\r
-  {\r
-    resIndex = 0;\r
-    seqIndex = 0;\r
-    doSearch(true);\r
-  }\r
+    else if (evt.getSource() == findNext)\r
+      doSearch(false);\r
 \r
-  public void cancel_actionPerformed(ActionEvent e)\r
-  {\r
-    try\r
+    else if (evt.getSource() == findAll)\r
     {\r
-      // if allResults is null, this effectively switches displaySearch flag in seqCanvas\r
-      ap.highlightSearchResults(null);\r
-      ap.idPanel.highlightSearchResults(null);\r
-      // frame.setClosed(true);\r
+      resIndex = 0;\r
+      seqIndex = 0;\r
+      doSearch(true);\r
     }\r
-    catch (Exception ex)\r
-    {}\r
+    else if(evt.getSource() == createNewGroup)\r
+      createNewGroup_actionPerformed();\r
   }\r
 \r
-  public void createNewGroup_actionPerformed(ActionEvent e)\r
+\r
+  public void createNewGroup_actionPerformed()\r
   {\r
     Color[] newColors = new Color[24];\r
     for (int i = 0; i < 24; i++)\r
@@ -144,18 +140,18 @@ public class Finder
       int res = Integer.parseInt(searchString);\r
       found = true;\r
 \r
-      if (av.getSelectionGroup().getSize() > 0)\r
+      if (av.getSelectionGroup() == null || av.getSelectionGroup().getSize() < 1)\r
       {\r
-        seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0));\r
+        seq = (Sequence) av.getAlignment().getSequenceAt(0);\r
       }\r
       else\r
       {\r
-        seq = (Sequence) av.getAlignment().getSequenceAt(0);\r
+        seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0));\r
       }\r
 \r
       searchResults.addElement(Integer.toString(av.getAlignment().findIndex(seq)));\r
-      searchResults.addElement(Integer.toString(seq.findIndex(res) - 1));\r
-      searchResults.addElement(Integer.toString(seq.findIndex(res) - 1));\r
+      searchResults.addElement(String.valueOf(res));\r
+      searchResults.addElement(String.valueOf(res));\r
 \r
     }\r
     catch (NumberFormatException ex)\r
@@ -246,6 +242,8 @@ public class Finder
 \r
           r = resIndex;\r
         }\r
+        else\r
+          break;\r
       }\r
       if (!found)\r
       {\r
@@ -295,4 +293,55 @@ public class Finder
 \r
   }\r
 \r
+  Label jLabel1 = new Label();\r
+  protected TextField textfield = new TextField();\r
+  protected Button findAll = new Button();\r
+  protected Button findNext = new Button();\r
+  Panel jPanel1 = new Panel();\r
+  GridLayout gridLayout1 = new GridLayout();\r
+  protected Button createNewGroup = new Button();\r
+\r
+\r
+  private void jbInit() throws Exception {\r
+      jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));\r
+      jLabel1.setText("Find");\r
+      jLabel1.setBounds(new Rectangle(3, 30, 34, 15));\r
+      this.setLayout(null);\r
+      textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));\r
+      textfield.setText("");\r
+      textfield.setBounds(new Rectangle(40, 27, 133, 21));\r
+      textfield.addKeyListener(new java.awt.event.KeyAdapter() {\r
+              public void keyTyped(KeyEvent e) {\r
+                  textfield_keyTyped(e);\r
+              }\r
+          });\r
+      textfield.addActionListener(this);\r
+      findAll.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));\r
+      findAll.setLabel("Find all");\r
+      findAll.addActionListener(this);\r
+      findNext.setEnabled(false);\r
+      findNext.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));\r
+      findNext.setLabel("Find Next");\r
+      findNext.addActionListener(this);\r
+      jPanel1.setBounds(new Rectangle(180, 5, 141, 64));\r
+      jPanel1.setLayout(gridLayout1);\r
+      gridLayout1.setHgap(0);\r
+      gridLayout1.setRows(3);\r
+      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.addActionListener(this);\r
+      jPanel1.add(findNext, null);\r
+      jPanel1.add(findAll, null);\r
+      jPanel1.add(createNewGroup, null);\r
+      this.add(textfield, null);\r
+      this.add(jLabel1, null);\r
+      this.add(jPanel1, null);\r
+  }\r
+\r
+  void textfield_keyTyped(KeyEvent e) {\r
+      findNext.setEnabled(true);\r
+  }\r
+\r
 }\r