554d8bc3dc5b186a54007ccb2bcede2e18d326b3
[jalview.git] / src / jalview / jbgui / GFinder.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 package jalview.jbgui;\r
20 \r
21 import java.awt.*;\r
22 import java.awt.event.*;\r
23 \r
24 import javax.swing.*;\r
25 import javax.swing.event.CaretListener;\r
26 import javax.swing.event.CaretEvent;\r
27 \r
28 public class GFinder extends JPanel {\r
29     JLabel jLabel1 = new JLabel();\r
30   protected JButton findAll = new JButton();\r
31     protected JButton findNext = new JButton();\r
32     JPanel jPanel1 = new JPanel();\r
33     GridLayout gridLayout1 = new GridLayout();\r
34     protected JButton createNewGroup = new JButton();\r
35   JScrollPane jScrollPane1 = new JScrollPane();\r
36   protected JTextArea textfield = new JTextArea();\r
37   BorderLayout borderLayout1 = new BorderLayout();\r
38   JPanel jPanel2 = new JPanel();\r
39   JPanel jPanel3 = new JPanel();\r
40   JPanel jPanel4 = new JPanel();\r
41   BorderLayout borderLayout2 = new BorderLayout();\r
42   JPanel jPanel5 = new JPanel();\r
43   JPanel jPanel6 = new JPanel();\r
44   public GFinder() {\r
45         try {\r
46             jbInit();\r
47         } catch (Exception e) {\r
48             e.printStackTrace();\r
49         }\r
50     }\r
51 \r
52     private void jbInit() throws Exception {\r
53         jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));\r
54         jLabel1.setText("Find");\r
55     this.setLayout(borderLayout1);\r
56     findAll.setFont(new java.awt.Font("Verdana", 0, 12));\r
57         findAll.setText("Find all");\r
58         findAll.addActionListener(new java.awt.event.ActionListener() {\r
59                 public void actionPerformed(ActionEvent e) {\r
60                     findAll_actionPerformed(e);\r
61                 }\r
62             });\r
63         findNext.setEnabled(false);\r
64         findNext.setFont(new java.awt.Font("Verdana", 0, 12));\r
65         findNext.setText("Find Next");\r
66         findNext.addActionListener(new java.awt.event.ActionListener() {\r
67                 public void actionPerformed(ActionEvent e) {\r
68                     findNext_actionPerformed(e);\r
69                 }\r
70             });\r
71     jPanel1.setLayout(gridLayout1);\r
72         gridLayout1.setHgap(0);\r
73         gridLayout1.setRows(3);\r
74         gridLayout1.setVgap(2);\r
75         createNewGroup.setEnabled(false);\r
76         createNewGroup.setFont(new java.awt.Font("Verdana", 0, 12));\r
77         createNewGroup.setToolTipText("");\r
78         createNewGroup.setMargin(new Insets(0, 0, 0, 0));\r
79         createNewGroup.setText("Create new group");\r
80         createNewGroup.addActionListener(new java.awt.event.ActionListener() {\r
81                 public void actionPerformed(ActionEvent e) {\r
82                     createNewGroup_actionPerformed(e);\r
83                 }\r
84             });\r
85     textfield.setFont(new java.awt.Font("Verdana", Font.PLAIN, 12));\r
86     textfield.setText("");\r
87     textfield.setLineWrap(true);\r
88     textfield.addCaretListener(new CaretListener()\r
89     {\r
90       public void caretUpdate(CaretEvent e)\r
91       {\r
92         textfield_caretUpdate(e);\r
93       }\r
94     });\r
95     borderLayout1.setHgap(5);\r
96     borderLayout1.setVgap(5);\r
97     jPanel4.setLayout(borderLayout2);\r
98     jPanel2.setPreferredSize(new Dimension(10, 1));\r
99     jPanel3.setPreferredSize(new Dimension(10, 1));\r
100     jPanel1.add(findNext, null);\r
101         jPanel1.add(findAll, null);\r
102         jPanel1.add(createNewGroup, null);\r
103     this.add(jLabel1, java.awt.BorderLayout.WEST);\r
104     this.add(jPanel1, java.awt.BorderLayout.EAST);\r
105     this.add(jPanel2, java.awt.BorderLayout.SOUTH);\r
106     this.add(jPanel3, java.awt.BorderLayout.NORTH);\r
107     this.add(jPanel4, java.awt.BorderLayout.CENTER);\r
108     jPanel4.add(jScrollPane1, java.awt.BorderLayout.CENTER);\r
109     jPanel4.add(jPanel5, java.awt.BorderLayout.SOUTH);\r
110     jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH);\r
111     jScrollPane1.getViewport().add(textfield);\r
112   }\r
113 \r
114     protected void findNext_actionPerformed(ActionEvent e) {\r
115     }\r
116 \r
117     protected void findAll_actionPerformed(ActionEvent e) {\r
118     }\r
119 \r
120     protected void textfield_actionPerformed(ActionEvent e) {\r
121     }\r
122 \r
123     void textfield_keyTyped(KeyEvent e) {\r
124         findNext.setEnabled(true);\r
125     }\r
126 \r
127     public void createNewGroup_actionPerformed(ActionEvent e) {\r
128     }\r
129 \r
130   public void textfield_caretUpdate(CaretEvent e)\r
131   {\r
132     if (textfield.getText().indexOf("\t")>-1)\r
133     {\r
134       SwingUtilities.invokeLater(new Runnable()\r
135       {\r
136         public void run()\r
137         {\r
138             String text = textfield.getText();\r
139             text = text.substring(text.lastIndexOf("\t") + 1).trim();\r
140             text = jalview.analysis.AlignSeq.extractGaps(\r
141                  jalview.util.Comparison.GapChars, text);\r
142             textfield.setText(text);\r
143         }\r
144       });\r
145     }\r
146   }\r
147 }\r