svn-gvsig-desktop / trunk / extensions / extRasterTools / src / org / gvsig / rasterTools / brightnessContrast / ui / SliderTextPanel.java @ 5247
History | View | Annotate | Download (5.67 KB)
1 |
package org.gvsig.rasterTools.brightnessContrast.ui; |
---|---|
2 |
|
3 |
import java.awt.GridBagConstraints; |
4 |
import java.awt.GridBagLayout; |
5 |
import java.awt.event.KeyEvent; |
6 |
import java.awt.event.KeyListener; |
7 |
|
8 |
import javax.swing.JLabel; |
9 |
import javax.swing.JPanel; |
10 |
import javax.swing.JSlider; |
11 |
import javax.swing.JTextField; |
12 |
import javax.swing.event.ChangeEvent; |
13 |
import javax.swing.event.ChangeListener; |
14 |
|
15 |
public class SliderTextPanel extends JPanel implements ChangeListener, KeyListener{ |
16 |
|
17 |
private JPanel pName = null; |
18 |
private JPanel pSliderText = null; |
19 |
private JSlider jSlider = null; |
20 |
private JTextField jTextField = null; |
21 |
private JLabel lPercent = null; |
22 |
/**
|
23 |
* This is the default constructor
|
24 |
*/
|
25 |
public SliderTextPanel() {
|
26 |
super();
|
27 |
initialize(); |
28 |
} |
29 |
|
30 |
/**
|
31 |
* This method initializes this
|
32 |
*
|
33 |
* @return void
|
34 |
*/
|
35 |
private void initialize() { |
36 |
GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); |
37 |
gridBagConstraints1.gridx = 0;
|
38 |
gridBagConstraints1.gridy = 1;
|
39 |
GridBagConstraints gridBagConstraints = new GridBagConstraints(); |
40 |
gridBagConstraints.gridx = 0;
|
41 |
gridBagConstraints.gridy = 0;
|
42 |
this.setLayout(new GridBagLayout()); |
43 |
this.setSize(180, 45); |
44 |
this.setPreferredSize(new java.awt.Dimension(180,45)); |
45 |
this.add(getJPanel(), gridBagConstraints);
|
46 |
this.add(getJPanel1(), gridBagConstraints1);
|
47 |
this.getJSlider().addChangeListener(this); |
48 |
this.getJTextField().addKeyListener(this); |
49 |
} |
50 |
|
51 |
/**
|
52 |
* This method initializes jPanel
|
53 |
*
|
54 |
* @return javax.swing.JPanel
|
55 |
*/
|
56 |
protected JPanel getJPanel() { |
57 |
if (pName == null) { |
58 |
pName = new JPanel(); |
59 |
pName.setLayout(new GridBagLayout()); |
60 |
pName.setPreferredSize(new java.awt.Dimension(180,25)); |
61 |
} |
62 |
return pName;
|
63 |
} |
64 |
|
65 |
/**
|
66 |
* This method initializes jPanel1
|
67 |
*
|
68 |
* @return javax.swing.JPanel
|
69 |
*/
|
70 |
private JPanel getJPanel1() { |
71 |
if (pSliderText == null) { |
72 |
GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); |
73 |
gridBagConstraints6.gridx = 1;
|
74 |
gridBagConstraints6.gridy = 0;
|
75 |
lPercent = new JLabel(); |
76 |
lPercent.setText("");
|
77 |
GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); |
78 |
gridBagConstraints5.gridx = 1;
|
79 |
gridBagConstraints5.gridy = 0;
|
80 |
GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); |
81 |
gridBagConstraints4.fill = java.awt.GridBagConstraints.HORIZONTAL; |
82 |
gridBagConstraints4.gridy = 0;
|
83 |
gridBagConstraints4.weightx = 1.0;
|
84 |
gridBagConstraints4.insets = new java.awt.Insets(0,6,0,6); |
85 |
gridBagConstraints4.gridx = 2;
|
86 |
GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); |
87 |
gridBagConstraints3.gridx = 1;
|
88 |
gridBagConstraints3.gridy = 0;
|
89 |
GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); |
90 |
gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; |
91 |
gridBagConstraints2.gridy = 0;
|
92 |
gridBagConstraints2.weightx = 1.0;
|
93 |
gridBagConstraints2.gridx = 0;
|
94 |
pSliderText = new JPanel(); |
95 |
pSliderText.setLayout(new GridBagLayout()); |
96 |
pSliderText.setPreferredSize(new java.awt.Dimension(180,20)); |
97 |
pSliderText.add(getJSlider(), gridBagConstraints2); |
98 |
pSliderText.add(getJTextField(), gridBagConstraints4); |
99 |
pSliderText.add(lPercent, gridBagConstraints6); |
100 |
} |
101 |
return pSliderText;
|
102 |
} |
103 |
|
104 |
/**
|
105 |
* This method initializes jSlider
|
106 |
*
|
107 |
* @return javax.swing.JSlider
|
108 |
*/
|
109 |
private JSlider getJSlider() { |
110 |
if (jSlider == null) { |
111 |
jSlider = new JSlider(); |
112 |
jSlider.setPreferredSize(new java.awt.Dimension(100,16)); |
113 |
} |
114 |
return jSlider;
|
115 |
} |
116 |
|
117 |
/**
|
118 |
* This method initializes jTextField
|
119 |
*
|
120 |
* @return javax.swing.JTextField
|
121 |
*/
|
122 |
private JTextField getJTextField() { |
123 |
if (jTextField == null) { |
124 |
jTextField = new JTextField(); |
125 |
jTextField.setPreferredSize(new java.awt.Dimension(3,19)); |
126 |
jTextField.setComponentOrientation(java.awt.ComponentOrientation.LEFT_TO_RIGHT); |
127 |
jTextField.setText(String.valueOf((double)this.jSlider.getValue())); |
128 |
} |
129 |
return jTextField;
|
130 |
} |
131 |
|
132 |
/**
|
133 |
* Pone una cadena con el tipo de unidad del cuadro de texto entre el slider
|
134 |
* y el TextField.
|
135 |
* @param cadena a poner entre el slider y el cudro de texto.
|
136 |
*/
|
137 |
|
138 |
protected void setUnitText(String unit){ |
139 |
lPercent.setText(unit); |
140 |
} |
141 |
|
142 |
/**
|
143 |
* Activa o desactiva el control del panel
|
144 |
* @param active
|
145 |
*/
|
146 |
|
147 |
public void setControlEnabled(boolean active){ |
148 |
this.jSlider.setEnabled(active);
|
149 |
this.jTextField.setEnabled(active);
|
150 |
this.lPercent.setEnabled(active);
|
151 |
if(active == false){ |
152 |
this.jTextField.setForeground(this.getBackground()); |
153 |
}else{
|
154 |
this.jTextField.setForeground(java.awt.Color.black);
|
155 |
} |
156 |
|
157 |
} |
158 |
|
159 |
/**
|
160 |
* Ponel el slider al valor que le pasamos
|
161 |
* @param value
|
162 |
*/
|
163 |
|
164 |
public void setSliderValue(int value){ |
165 |
jSlider.setValue(value); |
166 |
} |
167 |
|
168 |
|
169 |
/**
|
170 |
* Pone en el campo de texto a la derecha del slider el valor que le pasamos
|
171 |
* como parametro
|
172 |
* @param value: valor que aparecera en el campo de texto.
|
173 |
*/
|
174 |
public void setTextValue(String value){ |
175 |
this.getJTextField().setText(value);
|
176 |
} |
177 |
|
178 |
/**
|
179 |
* Devuelve el valor actual del campo de texto
|
180 |
* @return: valor del campo de texto.
|
181 |
*/
|
182 |
public String getTextValue(){ |
183 |
return this.jTextField.getText(); |
184 |
} |
185 |
|
186 |
public void stateChanged(ChangeEvent e) { |
187 |
if(e.getSource() == this.jSlider){ |
188 |
this.jTextField.setText(String.valueOf(this.jSlider.getValue())); |
189 |
} |
190 |
} |
191 |
|
192 |
/**
|
193 |
* Da el rango de valores en el que se mover? el slider
|
194 |
* @param min
|
195 |
* @param max
|
196 |
*/
|
197 |
public void setSliderRange(int min, int max){ |
198 |
this.jSlider.setMaximum(max);
|
199 |
this.jSlider.setMinimum(min);
|
200 |
} |
201 |
|
202 |
public void keyPressed(KeyEvent e) { |
203 |
// TODO Auto-generated method stub
|
204 |
|
205 |
} |
206 |
|
207 |
public void keyReleased(KeyEvent e) { |
208 |
// TODO Auto-generated method stub
|
209 |
|
210 |
} |
211 |
|
212 |
public void keyTyped(KeyEvent e) { |
213 |
if(e.getSource() == this.jTextField){ |
214 |
this.jSlider.setValue(Integer.valueOf(this.jTextField.getText()).intValue()); |
215 |
} |
216 |
|
217 |
} |
218 |
|
219 |
} |