Class |
Line # |
Actions |
|||
---|---|---|---|---|---|
GSliderPanel | 52 | 60 | 13 |
1 | /* | |
2 | * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) | |
3 | * Copyright (C) $$Year-Rel$$ The Jalview Authors | |
4 | * | |
5 | * This file is part of Jalview. | |
6 | * | |
7 | * Jalview is free software: you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License | |
9 | * as published by the Free Software Foundation, either version 3 | |
10 | * of the License, or (at your option) any later version. | |
11 | * | |
12 | * Jalview is distributed in the hope that it will be useful, but | |
13 | * WITHOUT ANY WARRANTY; without even the implied warranty | |
14 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR | |
15 | * PURPOSE. See the GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with Jalview. If not, see <http://www.gnu.org/licenses/>. | |
19 | * The Jalview Authors are detailed in the 'AUTHORS' file. | |
20 | */ | |
21 | package jalview.jbgui; | |
22 | ||
23 | import jalview.util.MessageManager; | |
24 | ||
25 | import java.awt.BorderLayout; | |
26 | import java.awt.Color; | |
27 | import java.awt.Dimension; | |
28 | import java.awt.FlowLayout; | |
29 | import java.awt.Font; | |
30 | import java.awt.GridLayout; | |
31 | import java.awt.event.ActionEvent; | |
32 | import java.awt.event.ActionListener; | |
33 | import java.awt.event.FocusAdapter; | |
34 | import java.awt.event.FocusEvent; | |
35 | import java.awt.event.MouseAdapter; | |
36 | import java.awt.event.MouseEvent; | |
37 | ||
38 | import javax.swing.JButton; | |
39 | import javax.swing.JCheckBox; | |
40 | import javax.swing.JLabel; | |
41 | import javax.swing.JPanel; | |
42 | import javax.swing.JSlider; | |
43 | import javax.swing.JTextField; | |
44 | import javax.swing.SwingConstants; | |
45 | ||
46 | /** | |
47 | * DOCUMENT ME! | |
48 | * | |
49 | * @author $author$ | |
50 | * @version $Revision$ | |
51 | */ | |
52 | public class GSliderPanel extends JPanel | |
53 | { | |
54 | private static final Font VERDANA_11 = new java.awt.Font("Verdana", 0, | |
55 | 11); | |
56 | ||
57 | protected static final int FRAME_WIDTH = 420; | |
58 | ||
59 | protected static final int FRAME_HEIGHT = 120; | |
60 | ||
61 | // this is used for conservation colours, PID colours and redundancy threshold | |
62 | protected JSlider slider = new JSlider(); | |
63 | ||
64 | protected JTextField valueField = new JTextField(); | |
65 | ||
66 | protected JLabel label = new JLabel(); | |
67 | ||
68 | protected JPanel southPanel = new JPanel(); | |
69 | ||
70 | protected JButton applyButton = new JButton(); | |
71 | ||
72 | protected JButton undoButton = new JButton(); | |
73 | ||
74 | protected JCheckBox allGroupsCheck = new JCheckBox(); | |
75 | ||
76 | /** | |
77 | * Creates a new GSliderPanel object. | |
78 | */ | |
79 | 17 | public GSliderPanel() |
80 | { | |
81 | 17 | try |
82 | { | |
83 | 17 | jbInit(); |
84 | } catch (Exception e) | |
85 | { | |
86 | 0 | e.printStackTrace(); |
87 | } | |
88 | } | |
89 | ||
90 | /** | |
91 | * Constructs and lays out the controls | |
92 | */ | |
93 | 17 | private void jbInit() |
94 | { | |
95 | 17 | slider.setMajorTickSpacing(10); |
96 | 17 | slider.setMinorTickSpacing(1); |
97 | 17 | slider.setPaintTicks(true); |
98 | 17 | slider.setBackground(Color.white); |
99 | 17 | slider.setFont(VERDANA_11); |
100 | 17 | slider.setDoubleBuffered(true); |
101 | 17 | slider.addMouseListener(new MouseAdapter() |
102 | { | |
103 | 0 | @Override |
104 | public void mouseReleased(MouseEvent e) | |
105 | { | |
106 | 0 | slider_mouseReleased(e); |
107 | } | |
108 | }); | |
109 | 17 | valueField.setFont(VERDANA_11); |
110 | 17 | valueField.setMinimumSize(new Dimension(6, 14)); |
111 | 17 | valueField.setPreferredSize(new Dimension(50, 12)); |
112 | 17 | valueField.setText(""); |
113 | 17 | valueField.setHorizontalAlignment(SwingConstants.CENTER); |
114 | 17 | valueField.addActionListener(new ActionListener() |
115 | { | |
116 | 0 | @Override |
117 | public void actionPerformed(ActionEvent e) | |
118 | { | |
119 | 0 | valueField_actionPerformed(); |
120 | } | |
121 | }); | |
122 | 17 | valueField.addFocusListener(new FocusAdapter() |
123 | { | |
124 | 0 | @Override |
125 | public void focusLost(FocusEvent e) | |
126 | { | |
127 | 0 | valueField_actionPerformed(); |
128 | } | |
129 | }); | |
130 | 17 | label.setFont(VERDANA_11); |
131 | 17 | label.setOpaque(false); |
132 | 17 | label.setHorizontalAlignment(SwingConstants.CENTER); |
133 | 17 | label.setText(MessageManager.getString("label.set_this_label_text")); |
134 | ||
135 | 17 | applyButton.setFont(VERDANA_11); |
136 | 17 | applyButton.setOpaque(false); |
137 | 17 | applyButton.setText(MessageManager.getString("action.apply")); |
138 | 17 | applyButton.addActionListener(new ActionListener() |
139 | { | |
140 | 0 | @Override |
141 | public void actionPerformed(ActionEvent e) | |
142 | { | |
143 | 0 | applyButton_actionPerformed(e); |
144 | } | |
145 | }); | |
146 | 17 | undoButton.setEnabled(false); |
147 | 17 | undoButton.setFont(VERDANA_11); |
148 | 17 | undoButton.setOpaque(false); |
149 | 17 | undoButton.setText(MessageManager.getString("action.undo")); |
150 | 17 | undoButton.addActionListener(new ActionListener() |
151 | { | |
152 | 0 | @Override |
153 | public void actionPerformed(ActionEvent e) | |
154 | { | |
155 | 0 | undoButton_actionPerformed(e); |
156 | } | |
157 | }); | |
158 | 17 | allGroupsCheck.setEnabled(false); |
159 | 17 | allGroupsCheck.setFont(VERDANA_11); |
160 | 17 | allGroupsCheck.setOpaque(false); |
161 | 17 | allGroupsCheck |
162 | .setText(MessageManager.getString("action.apply_all_groups")); | |
163 | ||
164 | 17 | this.setLayout(new GridLayout(2, 0)); |
165 | 17 | this.setBackground(Color.white); |
166 | ||
167 | 17 | JPanel firstRow = new JPanel(new FlowLayout()); |
168 | 17 | firstRow.setOpaque(false); |
169 | 17 | firstRow.add(label); |
170 | 17 | firstRow.add(applyButton); |
171 | 17 | firstRow.add(undoButton); |
172 | 17 | this.add(firstRow); |
173 | ||
174 | 17 | JPanel jPanel1 = new JPanel(new BorderLayout()); |
175 | 17 | jPanel1.setOpaque(false); |
176 | 17 | jPanel1.add(valueField, BorderLayout.CENTER); |
177 | 17 | jPanel1.add(allGroupsCheck, BorderLayout.EAST); |
178 | ||
179 | 17 | southPanel.setLayout(new BorderLayout()); |
180 | 17 | southPanel.setOpaque(false); |
181 | 17 | southPanel.add(jPanel1, BorderLayout.EAST); |
182 | 17 | southPanel.add(slider, BorderLayout.CENTER); |
183 | 17 | this.add(southPanel); |
184 | } | |
185 | ||
186 | /** | |
187 | * Action on changing the slider text field value | |
188 | */ | |
189 | 0 | protected void valueField_actionPerformed() |
190 | { | |
191 | 0 | try |
192 | { | |
193 | 0 | int i = Integer.valueOf(valueField.getText()); |
194 | 0 | slider.setValue(i); |
195 | } catch (NumberFormatException ex) | |
196 | { | |
197 | 0 | valueField.setText(String.valueOf(slider.getValue())); |
198 | } | |
199 | } | |
200 | ||
201 | /** | |
202 | * DOCUMENT ME! | |
203 | * | |
204 | * @param e | |
205 | * DOCUMENT ME! | |
206 | */ | |
207 | 0 | protected void applyButton_actionPerformed(ActionEvent e) |
208 | { | |
209 | } | |
210 | ||
211 | /** | |
212 | * DOCUMENT ME! | |
213 | * | |
214 | * @param e | |
215 | * DOCUMENT ME! | |
216 | */ | |
217 | 0 | protected void undoButton_actionPerformed(ActionEvent e) |
218 | { | |
219 | } | |
220 | ||
221 | 0 | public void slider_mouseReleased(MouseEvent e) |
222 | { | |
223 | ||
224 | } | |
225 | } |