/*
* Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
import java.awt.event.*;
import jalview.datamodel.*;
-import java.awt.Rectangle;
-public class Finder extends Panel implements ActionListener
+public class Finder
+ extends Panel implements ActionListener
{
AlignViewport av;
AlignmentPanel ap;
public void actionPerformed(ActionEvent evt)
{
if (evt.getSource() == textfield)
+ {
doSearch(false);
+ }
else if (evt.getSource() == findNext)
+ {
doSearch(false);
+ }
else if (evt.getSource() == findAll)
{
seqIndex = 0;
doSearch(true);
}
- else if(evt.getSource() == createNewGroup)
+ else if (evt.getSource() == createNewGroup)
+ {
createNewGroup_actionPerformed();
+ }
}
-
public void createNewGroup_actionPerformed()
{
cap.setText(textfield.getText());
- dialog.setBounds( frame.getLocation().x+frame.getSize().width+5,
- frame.getLocation().y+20,300,100);
+ dialog.setBounds(frame.getLocation().x + frame.getSize().width + 5,
+ frame.getLocation().y + 20, 300, 100);
dialog.show();
-
String featureName = cap.getText().trim();
- if(featureName.length()<1)
+ if (featureName.length() < 1)
+ {
return;
+ }
-
- for (int i = 0; i < searchResults.getSize(); i ++ )
+ for (int i = 0; i < searchResults.getSize(); i++)
{
- SequenceI seq = searchResults.getResultSequence(i);
+ SequenceI seq = searchResults.getResultSequence(i);
- SequenceFeature sf = new SequenceFeature(featureName,
- null, null,
- searchResults.getResultStart(i),
- searchResults.getResultEnd(i), "Search Results");
+ SequenceFeature sf = new SequenceFeature(featureName,
+ null, null,
+ searchResults.getResultStart(i),
+ searchResults.getResultEnd(i),
+ "Search Results");
- ap.seqPanel.seqCanvas.getFeatureRenderer().addNewFeature(
- featureName, new Color(60,160,115));
- seq.addSequenceFeature(sf);
+ ap.seqPanel.seqCanvas.getFeatureRenderer().addNewFeature(
+ featureName, new Color(60, 160, 115));
+ seq.addSequenceFeature(sf);
}
ap.seqPanel.seqCanvas.getFeatureRenderer().findAllFeatures();
void doSearch(boolean findAll)
{
- if(jalview.bin.JalviewLite.currentAlignFrame!=null)
+ if (jalview.bin.JalviewLite.currentAlignFrame != null)
{
ap = jalview.bin.JalviewLite.currentAlignFrame.alignPanel;
av = ap.av;
}
createNewGroup.setEnabled(false);
- jalview.analysis.Finder finder=new jalview.analysis.Finder(av.getAlignment(), av.getSelectionGroup(), seqIndex, resIndex);
+ jalview.analysis.Finder finder = new jalview.analysis.Finder(av.
+ getAlignment(), av.getSelectionGroup(), seqIndex, resIndex);
finder.setCaseSensitive(caseSensitive.getState());
finder.setFindAll(findAll);
-
+
String searchString = textfield.getText();
-
+
finder.find(searchString);
- seqIndex=finder.getSeqIndex();
- resIndex=finder.getResIndex();
+ seqIndex = finder.getSeqIndex();
+ resIndex = finder.getResIndex();
searchResults = finder.getSearchResults();
Vector idMatch = finder.getIdMatch();
-
+
if (searchResults.getSize() == 0 && idMatch.size() > 0)
{
ap.idPanel.highlightSearchResults(idMatch);
if (searchResults.getSize() > 0)
{
createNewGroup.setEnabled(true);
-
+
}
else
{
if (findAll)
{
- String message = (searchResults==null?0 : searchResults.getSize()) + " matches found.";
- ap.alignFrame.statusBar.setText("Search results: "+searchString+" : "+message);
+ String message = (searchResults == null ? 0 : searchResults.getSize()) +
+ " matches found.";
+ ap.alignFrame.statusBar.setText("Search results: " + searchString + " : " +
+ message);
}
}
protected Button createNewGroup = new Button();
Checkbox caseSensitive = new Checkbox();
- private void jbInit() throws Exception {
- jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));
- jLabel1.setText("Find");
- jLabel1.setBounds(new Rectangle(3, 30, 34, 15));
- this.setLayout(null);
- textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- textfield.setText("");
- textfield.setBounds(new Rectangle(40, 27, 133, 21));
- textfield.addKeyListener(new java.awt.event.KeyAdapter() {
- public void keyTyped(KeyEvent e) {
- textfield_keyTyped(e);
- }
- });
- textfield.addActionListener(this);
- findAll.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- findAll.setLabel("Find all");
- findAll.addActionListener(this);
- findNext.setEnabled(false);
- findNext.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- findNext.setLabel("Find Next");
- findNext.addActionListener(this);
- jPanel1.setBounds(new Rectangle(180, 5, 141, 64));
- jPanel1.setLayout(gridLayout1);
- gridLayout1.setHgap(0);
- gridLayout1.setRows(3);
- gridLayout1.setVgap(2);
- createNewGroup.setEnabled(false);
- createNewGroup.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- createNewGroup.setLabel("New Feature");
- createNewGroup.addActionListener(this);
+ private void jbInit()
+ throws Exception
+ {
+ jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));
+ jLabel1.setText("Find");
+ jLabel1.setBounds(new Rectangle(3, 30, 34, 15));
+ this.setLayout(null);
+ textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+ textfield.setText("");
+ textfield.setBounds(new Rectangle(40, 27, 133, 21));
+ textfield.addKeyListener(new java.awt.event.KeyAdapter()
+ {
+ public void keyTyped(KeyEvent e)
+ {
+ textfield_keyTyped(e);
+ }
+ });
+ textfield.addActionListener(this);
+ findAll.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+ findAll.setLabel("Find all");
+ findAll.addActionListener(this);
+ findNext.setEnabled(false);
+ findNext.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+ findNext.setLabel("Find Next");
+ findNext.addActionListener(this);
+ jPanel1.setBounds(new Rectangle(180, 5, 141, 64));
+ jPanel1.setLayout(gridLayout1);
+ gridLayout1.setHgap(0);
+ gridLayout1.setRows(3);
+ gridLayout1.setVgap(2);
+ createNewGroup.setEnabled(false);
+ createNewGroup.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
+ createNewGroup.setLabel("New Feature");
+ createNewGroup.addActionListener(this);
caseSensitive.setLabel("Match Case");
caseSensitive.setBounds(new Rectangle(40, 49, 126, 23));
jPanel1.add(findNext, null);
- jPanel1.add(findAll, null);
- jPanel1.add(createNewGroup, null);
+ jPanel1.add(findAll, null);
+ jPanel1.add(createNewGroup, null);
this.add(caseSensitive);
this.add(textfield, null);
- this.add(jLabel1, null);
- this.add(jPanel1, null);
+ this.add(jLabel1, null);
+ this.add(jPanel1, null);
}
- void textfield_keyTyped(KeyEvent e) {
- findNext.setEnabled(true);
+ void textfield_keyTyped(KeyEvent e)
+ {
+ findNext.setEnabled(true);
}
}