Statistics
| Revision:

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
}