JAL-1644 revised Finder's implementation to use a flag to enalbe searching an alignme...
authorCharles Ofoegbu <tcnofoegbu@dundee.ac.uk>
Mon, 2 Feb 2015 15:45:32 +0000 (15:45 +0000)
committerCharles Ofoegbu <tcnofoegbu@dundee.ac.uk>
Mon, 2 Feb 2015 15:45:32 +0000 (15:45 +0000)
resources/lang/Messages.properties
src/jalview/analysis/Finder.java
src/jalview/appletgui/Finder.java
src/jalview/gui/Finder.java
src/jalview/jbgui/GFinder.java

index fce8470..12de0df 100644 (file)
@@ -1176,3 +1176,4 @@ label.show_logo = Show Logo
 label.normalise_logo = Normalise Logo
 label.no_colour_selection_in_scheme = Please, make a colour selection before to apply colour scheme
 label.no_colour_selection_warn = Error saving colour scheme
+label.include_description= Include Description
index b253642..224c60a 100644 (file)
@@ -42,6 +42,8 @@ public class Finder
 
   boolean caseSensitive = false;
 
+  private boolean includeDescription = false;
+
   boolean findAll = false;
 
   com.stevesoft.pat.Regex regex = null;
@@ -150,7 +152,7 @@ public class Finder
           }
         }
 
-        if (regex.search(seq.getDescription()))
+        if (isIncludeDescription() && regex.search(seq.getDescription()))
         {
           idMatch.addElement(seq);
           hasResults = true;
@@ -373,4 +375,14 @@ public class Finder
   {
     this.seqIndex = seqIndex;
   }
+
+  public boolean isIncludeDescription()
+  {
+    return includeDescription;
+  }
+
+  public void setIncludeDescription(boolean includeDescription)
+  {
+    this.includeDescription = includeDescription;
+  }
 }
index 6ca6ddf..529b0b3 100644 (file)
  */
 package jalview.appletgui;
 
-import java.util.*;
-
-import java.awt.*;
-import java.awt.event.*;
-
-import jalview.datamodel.*;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
 import jalview.util.MessageManager;
 
+import java.awt.Button;
+import java.awt.Checkbox;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridLayout;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.Rectangle;
+import java.awt.TextField;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.Vector;
+
 public class Finder extends Panel implements ActionListener
 {
   AlignViewport av;
@@ -129,6 +142,7 @@ public class Finder extends Panel implements ActionListener
     jalview.analysis.Finder finder = new jalview.analysis.Finder(
             av.getAlignment(), av.getSelectionGroup(), seqIndex, resIndex);
     finder.setCaseSensitive(caseSensitive.getState());
+    finder.setIncludeDescription(searchDescription.getState());
     finder.setFindAll(findAll);
 
     String searchString = textfield.getText();
@@ -211,7 +225,7 @@ public class Finder extends Panel implements ActionListener
 
   protected Button findNext = new Button();
 
-  Panel jPanel1 = new Panel();
+  Panel actionsPanel = new Panel();
 
   GridLayout gridLayout1 = new GridLayout();
 
@@ -219,6 +233,8 @@ public class Finder extends Panel implements ActionListener
 
   Checkbox caseSensitive = new Checkbox();
 
+  Checkbox searchDescription = new Checkbox();
+
   private void jbInit() throws Exception
   {
     jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));
@@ -227,7 +243,7 @@ public class Finder extends Panel implements ActionListener
     this.setLayout(null);
     textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
     textfield.setText("");
-    textfield.setBounds(new Rectangle(40, 27, 133, 21));
+    textfield.setBounds(new Rectangle(40, 17, 133, 21));
     textfield.addKeyListener(new java.awt.event.KeyAdapter()
     {
       public void keyTyped(KeyEvent e)
@@ -243,8 +259,8 @@ public class Finder extends Panel implements ActionListener
     findNext.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
     findNext.setLabel(MessageManager.getString("action.find_next"));
     findNext.addActionListener(this);
-    jPanel1.setBounds(new Rectangle(180, 5, 141, 64));
-    jPanel1.setLayout(gridLayout1);
+    actionsPanel.setBounds(new Rectangle(195, 5, 141, 64));
+    actionsPanel.setLayout(gridLayout1);
     gridLayout1.setHgap(0);
     gridLayout1.setRows(3);
     gridLayout1.setVgap(2);
@@ -253,14 +269,19 @@ public class Finder extends Panel implements ActionListener
     createNewGroup.setLabel(MessageManager.getString("label.new_feature"));
     createNewGroup.addActionListener(this);
     caseSensitive.setLabel(MessageManager.getString("label.match_case"));
-    caseSensitive.setBounds(new Rectangle(40, 49, 126, 23));
-    jPanel1.add(findNext, null);
-    jPanel1.add(findAll, null);
-    jPanel1.add(createNewGroup, null);
+    caseSensitive.setBounds(new Rectangle(30, 39, 126, 23));
+
+    searchDescription.setLabel(MessageManager
+            .getString("label.include_description"));
+    searchDescription.setBounds(new Rectangle(30, 59, 170, 23));
+    actionsPanel.add(findNext, null);
+    actionsPanel.add(findAll, null);
+    actionsPanel.add(createNewGroup, null);
     this.add(caseSensitive);
     this.add(textfield, null);
     this.add(jLabel1, null);
-    this.add(jPanel1, null);
+    this.add(actionsPanel, null);
+    this.add(searchDescription);
   }
 
   void textfield_keyTyped(KeyEvent e)
index 8eddc06..dbacd8b 100755 (executable)
@@ -214,6 +214,8 @@ public class Finder extends GFinder
     jalview.analysis.Finder finder = new jalview.analysis.Finder(
             av.getAlignment(), av.getSelectionGroup(), seqIndex, resIndex);
     finder.setCaseSensitive(caseSensitive.isSelected());
+    finder.setIncludeDescription(searchDescription.isSelected());
+
     finder.setFindAll(findAll);
 
     finder.find(searchString); // returns true if anything was actually found
index 7705259..66fce45 100755 (executable)
  */
 package jalview.jbgui;
 
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-
-import jalview.datamodel.*;
-import jalview.io.*;
+import jalview.datamodel.Alignment;
+import jalview.io.FormatAdapter;
 import jalview.util.MessageManager;
 
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.SwingConstants;
+import javax.swing.SwingUtilities;
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+
 public class GFinder extends JPanel
 {
-  JLabel jLabel1 = new JLabel();
+  JLabel jLabelFind = new JLabel();
 
   protected JButton findAll = new JButton();
 
   protected JButton findNext = new JButton();
 
-  JPanel jPanel1 = new JPanel();
+  JPanel actionsPanel = new JPanel();
 
   GridLayout gridLayout1 = new GridLayout();
 
@@ -47,7 +61,7 @@ public class GFinder extends JPanel
 
   protected JTextArea textfield = new JTextArea();
 
-  BorderLayout borderLayout1 = new BorderLayout();
+  BorderLayout mainBorderLayout = new BorderLayout();
 
   JPanel jPanel2 = new JPanel();
 
@@ -61,6 +75,10 @@ public class GFinder extends JPanel
 
   protected JCheckBox caseSensitive = new JCheckBox();
 
+  protected JCheckBox searchDescription = new JCheckBox();
+
+  GridLayout optionsGridLayout = new GridLayout();
+
   public GFinder()
   {
     try
@@ -72,11 +90,12 @@ public class GFinder extends JPanel
     }
   }
 
+
   private void jbInit() throws Exception
   {
-    jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));
-    jLabel1.setText(MessageManager.getString("action.find"));
-    this.setLayout(borderLayout1);
+    jLabelFind.setFont(new java.awt.Font("Verdana", 0, 12));
+    jLabelFind.setText(MessageManager.getString("label.find"));
+    this.setLayout(mainBorderLayout);
     findAll.setFont(new java.awt.Font("Verdana", 0, 12));
     findAll.setText(MessageManager.getString("action.find_all"));
     findAll.addActionListener(new java.awt.event.ActionListener()
@@ -95,7 +114,7 @@ public class GFinder extends JPanel
         findNext_actionPerformed(e);
       }
     });
-    jPanel1.setLayout(gridLayout1);
+    actionsPanel.setLayout(gridLayout1);
     gridLayout1.setHgap(0);
     gridLayout1.setRows(3);
     gridLayout1.setVgap(2);
@@ -128,25 +147,38 @@ public class GFinder extends JPanel
       }
     });
 
-    borderLayout1.setHgap(5);
-    borderLayout1.setVgap(5);
+    mainBorderLayout.setHgap(5);
+    mainBorderLayout.setVgap(5);
     jPanel4.setLayout(borderLayout2);
     jPanel2.setPreferredSize(new Dimension(10, 1));
     jPanel3.setPreferredSize(new Dimension(10, 1));
     caseSensitive.setHorizontalAlignment(SwingConstants.LEFT);
     caseSensitive.setText(MessageManager.getString("label.match_case"));
-    jPanel1.add(findNext, null);
-    jPanel1.add(findAll, null);
-    jPanel1.add(createNewGroup, null);
-    this.add(jLabel1, java.awt.BorderLayout.WEST);
-    this.add(jPanel1, java.awt.BorderLayout.EAST);
+
+    searchDescription.setText(MessageManager
+            .getString("label.include_description"));
+
+    actionsPanel.add(findNext, null);
+    actionsPanel.add(findAll, null);
+    actionsPanel.add(createNewGroup, null);
+    this.add(jLabelFind, java.awt.BorderLayout.WEST);
+    this.add(actionsPanel, java.awt.BorderLayout.EAST);
     this.add(jPanel2, java.awt.BorderLayout.SOUTH);
     this.add(jPanel3, java.awt.BorderLayout.NORTH);
     this.add(jPanel4, java.awt.BorderLayout.CENTER);
-    jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER);
+    jPanel4.add(jScrollPane1, java.awt.BorderLayout.NORTH);
     jScrollPane1.getViewport().add(textfield);
-    jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH);
-    jPanel4.add(caseSensitive, java.awt.BorderLayout.SOUTH);
+
+    JPanel optionsPanel = new JPanel();
+
+    optionsGridLayout.setHgap(0);
+    optionsGridLayout.setRows(2);
+    optionsGridLayout.setVgap(2);
+    optionsPanel.setLayout(optionsGridLayout);
+    optionsPanel.add(caseSensitive, null);
+    optionsPanel.add(searchDescription, null);
+
+    jPanel4.add(optionsPanel, java.awt.BorderLayout.WEST);
   }
 
   protected void findNext_actionPerformed(ActionEvent e)