X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGFinder.java;h=b4596da197e8d8755bac35abf02ad4c2cc6b9280;hb=7f7fc2e5533f7b00c86465f964e37c55bcf12fd7;hp=0f9f0d4a15cc41bd23903300f819aff4e1a5dccc;hpb=efc31b4a8d5cee63555586804a2b79c06bdb5a14;p=jalview.git diff --git a/src/jalview/jbgui/GFinder.java b/src/jalview/jbgui/GFinder.java index 0f9f0d4..b4596da 100755 --- a/src/jalview/jbgui/GFinder.java +++ b/src/jalview/jbgui/GFinder.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 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 @@ -22,6 +22,9 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; +import jalview.io.FormatAdapter; +import jalview.datamodel.SequenceI; +import java.awt.BorderLayout; public class GFinder extends JPanel @@ -39,8 +42,8 @@ public class GFinder JPanel jPanel3 = new JPanel(); JPanel jPanel4 = new JPanel(); BorderLayout borderLayout2 = new BorderLayout(); - JPanel jPanel5 = new JPanel(); JPanel jPanel6 = new JPanel(); + protected JCheckBox caseSensitive = new JCheckBox(); public GFinder() { try @@ -86,7 +89,7 @@ public class GFinder createNewGroup.setFont(new java.awt.Font("Verdana", 0, 12)); createNewGroup.setToolTipText(""); createNewGroup.setMargin(new Insets(0, 0, 0, 0)); - createNewGroup.setText("Create new group"); + createNewGroup.setText("New Feature"); createNewGroup.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) @@ -104,11 +107,19 @@ public class GFinder textfield_caretUpdate(e); } }); + textfield.addKeyListener(new java.awt.event.KeyAdapter() { + public void keyPressed(KeyEvent e) { + textfield_keyPressed(e); + } + }); + borderLayout1.setHgap(5); borderLayout1.setVgap(5); jPanel4.setLayout(borderLayout2); jPanel2.setPreferredSize(new Dimension(10, 1)); jPanel3.setPreferredSize(new Dimension(10, 1)); + caseSensitive.setHorizontalAlignment(SwingConstants.LEFT); + caseSensitive.setText("Match Case"); jPanel1.add(findNext, null); jPanel1.add(findAll, null); jPanel1.add(createNewGroup, null); @@ -118,9 +129,9 @@ public class GFinder this.add(jPanel3, java.awt.BorderLayout.NORTH); this.add(jPanel4, java.awt.BorderLayout.CENTER); jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER); - jPanel4.add(jPanel5, java.awt.BorderLayout.SOUTH); - jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH); jScrollPane1.getViewport().add(textfield); + jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH); + jPanel4.add(caseSensitive, java.awt.BorderLayout.SOUTH); } protected void findNext_actionPerformed(ActionEvent e) @@ -131,12 +142,15 @@ public class GFinder { } - protected void textfield_actionPerformed(ActionEvent e) - { - } - void textfield_keyTyped(KeyEvent e) + protected void textfield_keyPressed(KeyEvent e) { + + if(e.getKeyCode()==KeyEvent.VK_ENTER) + { + e.consume(); + findNext_actionPerformed(null); + } findNext.setEnabled(true); } @@ -146,17 +160,23 @@ public class GFinder public void textfield_caretUpdate(CaretEvent e) { - if (textfield.getText().indexOf("\t") > -1) + if (textfield.getText().indexOf(">") > -1) { SwingUtilities.invokeLater(new Runnable() { public void run() { - String text = textfield.getText(); - text = text.substring(text.lastIndexOf("\t") + 1).trim(); - text = jalview.analysis.AlignSeq.extractGaps( - jalview.util.Comparison.GapChars, text); - textfield.setText(text); + String str = textfield.getText(); + SequenceI[] sequences = null; + try{sequences = new FormatAdapter().readFile(str, "Paste", "FASTA");} + catch(Exception ex){} + if(sequences!=null && sequences.length>0) + { + str = jalview.analysis.AlignSeq.extractGaps( + jalview.util.Comparison.GapChars, sequences[0].getSequence()); + + textfield.setText(str); + } } }); }