X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFinder.java;h=f59216fefc79d80fdfe9456583aca32bbea6329a;hb=20403dbf83a2caa650a4ccd37f5a6dae7d0bd0f3;hp=e152506f5e55f15c4e21188320822b7b15421a28;hpb=4ebc6d5b362bc093c39312aa1a69836e3dd6ae84;p=jalview.git diff --git a/src/jalview/appletgui/Finder.java b/src/jalview/appletgui/Finder.java index e152506..f59216f 100755 --- a/src/jalview/appletgui/Finder.java +++ b/src/jalview/appletgui/Finder.java @@ -25,10 +25,8 @@ import java.awt.*; import java.awt.event.*; import jalview.datamodel.*; -import jalview.jbappletgui.*; -public class Finder - extends GFinder +public class Finder extends Panel implements ActionListener { AlignViewport av; AlignmentPanel ap; @@ -40,6 +38,15 @@ public class Finder int resIndex = 0; public Finder(final AlignmentPanel ap) { + try + { + jbInit(); + } + catch (Exception e) + { + e.printStackTrace(); + } + this.av = ap.av; this.ap = ap; frame = new Frame(); @@ -55,37 +62,26 @@ public class Finder }); } - public void textfield_actionPerformed(ActionEvent e) - { - doSearch(false); - } - - public void findNext_actionPerformed(ActionEvent e) + public void actionPerformed(ActionEvent evt) { - doSearch(false); - } + if (evt.getSource() == textfield) + doSearch(false); - public void findAll_actionPerformed(ActionEvent e) - { - resIndex = 0; - seqIndex = 0; - doSearch(true); - } + else if (evt.getSource() == findNext) + doSearch(false); - public void cancel_actionPerformed(ActionEvent e) - { - try + else if (evt.getSource() == findAll) { - // if allResults is null, this effectively switches displaySearch flag in seqCanvas - ap.highlightSearchResults(null); - ap.idPanel.highlightSearchResults(null); - // frame.setClosed(true); + resIndex = 0; + seqIndex = 0; + doSearch(true); } - catch (Exception ex) - {} + else if(evt.getSource() == createNewGroup) + createNewGroup_actionPerformed(); } - public void createNewGroup_actionPerformed(ActionEvent e) + + public void createNewGroup_actionPerformed() { Color[] newColors = new Color[24]; for (int i = 0; i < 24; i++) @@ -144,18 +140,18 @@ public class Finder int res = Integer.parseInt(searchString); found = true; - if (av.getSelectionGroup().getSize() > 0) + if (av.getSelectionGroup() == null || av.getSelectionGroup().getSize() < 1) { - seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0)); + seq = (Sequence) av.getAlignment().getSequenceAt(0); } else { - seq = (Sequence) av.getAlignment().getSequenceAt(0); + seq = (Sequence) (av.getSelectionGroup().getSequenceAt(0)); } searchResults.addElement(Integer.toString(av.getAlignment().findIndex(seq))); - searchResults.addElement(Integer.toString(seq.findIndex(res) - 1)); - searchResults.addElement(Integer.toString(seq.findIndex(res) - 1)); + searchResults.addElement(String.valueOf(res)); + searchResults.addElement(String.valueOf(res)); } catch (NumberFormatException ex) @@ -246,6 +242,8 @@ public class Finder r = resIndex; } + else + break; } if (!found) { @@ -295,4 +293,55 @@ public class Finder } + Label jLabel1 = new Label(); + protected TextField textfield = new TextField(); + protected Button findAll = new Button(); + protected Button findNext = new Button(); + Panel jPanel1 = new Panel(); + GridLayout gridLayout1 = new GridLayout(); + protected Button createNewGroup = new Button(); + + + 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("Create new group"); + createNewGroup.addActionListener(this); + jPanel1.add(findNext, null); + jPanel1.add(findAll, null); + jPanel1.add(createNewGroup, null); + this.add(textfield, null); + this.add(jLabel1, null); + this.add(jPanel1, null); + } + + void textfield_keyTyped(KeyEvent e) { + findNext.setEnabled(true); + } + }