svn-gvsig-desktop / tags / v1_0_2_Build_899 / extensions / extRasterTools / src / org / gvsig / rasterTools / brightnessContrast / ui / EnhancedBrightnessContrastPanel.java @ 10517
History | View | Annotate | Download (21.3 KB)
1 |
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|
2 |
*
|
3 |
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
|
4 |
*
|
5 |
* This program is free software; you can redistribute it and/or
|
6 |
* modify it under the terms of the GNU General Public License
|
7 |
* as published by the Free Software Foundation; either version 2
|
8 |
* of the License, or (at your option) any later version.
|
9 |
*
|
10 |
* This program is distributed in the hope that it will be useful,
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
* GNU General Public License for more details.
|
14 |
*
|
15 |
* You should have received a copy of the GNU General Public License
|
16 |
* along with this program; if not, write to the Free Software
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
18 |
*/
|
19 |
|
20 |
package org.gvsig.rasterTools.brightnessContrast.ui; |
21 |
|
22 |
import java.awt.GridBagConstraints; |
23 |
import java.awt.GridBagLayout; |
24 |
import java.awt.event.ActionEvent; |
25 |
import java.awt.event.ActionListener; |
26 |
import java.awt.event.KeyEvent; |
27 |
import java.awt.event.KeyListener; |
28 |
import java.awt.event.MouseEvent; |
29 |
import java.awt.event.MouseListener; |
30 |
|
31 |
import javax.swing.JCheckBox; |
32 |
import javax.swing.JLabel; |
33 |
import javax.swing.JPanel; |
34 |
|
35 |
import org.cresques.filter.IRasterOperationsRegistrablePanels; |
36 |
import org.cresques.filter.IStackManager; |
37 |
import org.cresques.filter.RasterFilterStackManager; |
38 |
import org.cresques.io.GeoRasterFile; |
39 |
import org.cresques.ui.filter.FilterRasterDialogPanel; |
40 |
import org.gvsig.rasterTools.brightnessContrast.filter.BrightnessContrastStackManager; |
41 |
|
42 |
import com.iver.andami.PluginServices; |
43 |
import com.iver.cit.gvsig.fmap.layers.FLyrRaster; |
44 |
import com.iver.cit.gvsig.gui.panels.IRasterPropertiesRegistrable; |
45 |
import com.iver.cit.gvsig.gui.panels.PropertiesRasterDialog; |
46 |
import com.iver.cit.gvsig.project.documents.view.toc.gui.FLyrRasterAdjustPropertiesTocMenuEntry; |
47 |
|
48 |
|
49 |
/**
|
50 |
* Panel para los controles de brillo, contrase y realce.
|
51 |
* @author Miguel Angel Querol Carratal? <querol_mig@gva.es>
|
52 |
*
|
53 |
*/
|
54 |
public class EnhancedBrightnessContrastPanel extends JPanel implements ActionListener, |
55 |
MouseListener,
|
56 |
KeyListener,
|
57 |
IRasterPropertiesRegistrable, |
58 |
IRasterOperationsRegistrablePanels{ |
59 |
|
60 |
private JPanel pBrightCont = null; |
61 |
private JPanel pEnhanced = null; |
62 |
private LabelSliderText lstBrightness = null; |
63 |
private LabelSliderText lstContrast = null; |
64 |
private JPanel pBCCheck = null; |
65 |
private JPanel pBCSlider = null; |
66 |
private JPanel jPanel1 = null; |
67 |
private JCheckBox cBrightC = null; |
68 |
private JLabel lBrightC = null; |
69 |
private JPanel pEnCheck = null; |
70 |
private JPanel pEnSlider = null; |
71 |
private JCheckBox cEnhanced = null; |
72 |
private JPanel pDelInt = null; |
73 |
private JCheckBox jCheckBox = null; |
74 |
|
75 |
private BrightnessContrastStackManager bcManager = null; |
76 |
private JCheckBox jCheckBox1 = null; |
77 |
private JLabel lpreview = null; |
78 |
public FLyrRaster layer = null; |
79 |
public PropertiesRasterDialog propertiesRasterDialog = null; |
80 |
public RasterFilterStackManager rasterStackManager = null; |
81 |
public JLabel lLineal = null; |
82 |
public JLabel lRemove = null; |
83 |
public CheckSliderText cstEnhanced = null; |
84 |
|
85 |
/**
|
86 |
* This is the default constructor
|
87 |
*/
|
88 |
public EnhancedBrightnessContrastPanel() {
|
89 |
super();
|
90 |
initialize(); |
91 |
} |
92 |
|
93 |
/**
|
94 |
* This method initializes this
|
95 |
*
|
96 |
* @return void
|
97 |
*/
|
98 |
private void initialize() { |
99 |
GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); |
100 |
gridBagConstraints3.insets = new java.awt.Insets(0,4,0,4); |
101 |
gridBagConstraints3.gridy = 0;
|
102 |
gridBagConstraints3.gridx = 1;
|
103 |
GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); |
104 |
gridBagConstraints2.insets = new java.awt.Insets(0,4,0,4); |
105 |
gridBagConstraints2.gridy = 0;
|
106 |
gridBagConstraints2.gridx = 0;
|
107 |
this.setLayout(new GridBagLayout()); |
108 |
this.setSize(445, 239); |
109 |
this.setPreferredSize(new java.awt.Dimension(445,239)); |
110 |
this.add(getPBrightCont(), gridBagConstraints2);
|
111 |
this.add(getPEnhanced(), gridBagConstraints3);
|
112 |
|
113 |
this.getCBrightC().addActionListener(this); |
114 |
this.getCEnhanced().addActionListener(this); |
115 |
this.getLabelSliderText().getJSlider().addMouseListener(this); |
116 |
this.getLabelSliderText1().getJSlider().addMouseListener(this); |
117 |
this.setTranslation();
|
118 |
this.getLabelSliderText().getJTextField().addActionListener(this); |
119 |
this.getLabelSliderText1().getJTextField().addActionListener(this); |
120 |
} |
121 |
|
122 |
public void setTranslation(){ |
123 |
this.lLineal.setText(PluginServices.getText(this, "lineal_directo")); |
124 |
this.lRemove.setText(PluginServices.getText(this, "eliminar_extremos")); |
125 |
this.cstEnhanced.setName(PluginServices.getText(this, "recorte_colas")+" ( % )"); |
126 |
this.lBrightC.setText(PluginServices.getText(this, "activar")); |
127 |
this.lstBrightness.setName(PluginServices.getText(this, "brillo")); |
128 |
this.lstContrast.setName(PluginServices.getText(this, "contraste")); |
129 |
this.lpreview.setText(PluginServices.getText(this, "previsualizacion")); |
130 |
} |
131 |
|
132 |
|
133 |
/**
|
134 |
* This method initializes jPanel
|
135 |
*
|
136 |
* @return javax.swing.JPanel
|
137 |
*/
|
138 |
private JPanel getPBrightCont() { |
139 |
if (pBrightCont == null) { |
140 |
GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); |
141 |
gridBagConstraints4.gridx = 0;
|
142 |
gridBagConstraints4.insets = new java.awt.Insets(4,0,8,0); |
143 |
gridBagConstraints4.gridy = 1;
|
144 |
GridBagConstraints gridBagConstraints = new GridBagConstraints(); |
145 |
gridBagConstraints.gridx = 0;
|
146 |
gridBagConstraints.insets = new java.awt.Insets(0,8,4,8); |
147 |
gridBagConstraints.gridy = 0;
|
148 |
pBrightCont = new JPanel(); |
149 |
pBrightCont.setLayout(new GridBagLayout()); |
150 |
pBrightCont.setPreferredSize(new java.awt.Dimension(210,223)); |
151 |
pBrightCont.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1), (PluginServices.getText(this, "brillo_y_contraste")), javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, java.awt.Color.black)); |
152 |
pBrightCont.add(getPBCCheck(), gridBagConstraints); |
153 |
pBrightCont.add(getPBCSlider(), gridBagConstraints4); |
154 |
} |
155 |
return pBrightCont;
|
156 |
} |
157 |
|
158 |
/**
|
159 |
* This method initializes jPanel1
|
160 |
*
|
161 |
* @return javax.swing.JPanel
|
162 |
*/
|
163 |
private JPanel getPEnhanced() { |
164 |
if (pEnhanced == null) { |
165 |
GridBagConstraints gridBagConstraints12 = new GridBagConstraints(); |
166 |
gridBagConstraints12.gridx = 0;
|
167 |
gridBagConstraints12.insets = new java.awt.Insets(4,4,59,4); |
168 |
gridBagConstraints12.gridy = 1;
|
169 |
GridBagConstraints gridBagConstraints11 = new GridBagConstraints(); |
170 |
gridBagConstraints11.gridx = 0;
|
171 |
gridBagConstraints11.insets = new java.awt.Insets(0,8,4,8); |
172 |
gridBagConstraints11.gridy = 0;
|
173 |
GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); |
174 |
gridBagConstraints1.gridx = 0;
|
175 |
gridBagConstraints1.gridy = 0;
|
176 |
pEnhanced = new JPanel(); |
177 |
pEnhanced.setLayout(new GridBagLayout()); |
178 |
pEnhanced.setPreferredSize(new java.awt.Dimension(210,223)); |
179 |
pEnhanced.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1), (PluginServices.getText(this, "realce")), javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, java.awt.Color.black)); |
180 |
pEnhanced.add(getPEnCheck(), gridBagConstraints11); |
181 |
pEnhanced.add(getPEnSlider(), gridBagConstraints12); |
182 |
} |
183 |
return pEnhanced;
|
184 |
} |
185 |
|
186 |
/**
|
187 |
* inicializa el conponente LabelSliderText
|
188 |
*/
|
189 |
public LabelSliderText getLabelSliderText(){
|
190 |
if(lstBrightness == null){ |
191 |
lstBrightness = new LabelSliderText();
|
192 |
lstBrightness.setName("Brillo");
|
193 |
lstBrightness.setSliderRange(-255,255); |
194 |
lstBrightness.setSliderValue(0);
|
195 |
} |
196 |
return lstBrightness;
|
197 |
} |
198 |
|
199 |
/**
|
200 |
* inicializa el conponente LabelSliderText
|
201 |
*/
|
202 |
public LabelSliderText getLabelSliderText1(){
|
203 |
if (lstContrast == null){ |
204 |
lstContrast = new LabelSliderText();
|
205 |
lstContrast.setName("Contraste");
|
206 |
lstContrast.setPreferredSize(new java.awt.Dimension(180,45)); |
207 |
lstContrast.setSliderRange(-255,255); |
208 |
lstContrast.setSliderValue(0);
|
209 |
} |
210 |
return lstContrast;
|
211 |
} |
212 |
|
213 |
/**
|
214 |
* This method initializes jPanel1
|
215 |
*
|
216 |
* @return javax.swing.JPanel
|
217 |
*/
|
218 |
private JPanel getPBCCheck() { |
219 |
if (pBCCheck == null) { |
220 |
GridBagConstraints gridBagConstraints9 = new GridBagConstraints(); |
221 |
gridBagConstraints9.gridx = 1;
|
222 |
gridBagConstraints9.gridy = 0;
|
223 |
lBrightC = new JLabel(); |
224 |
lBrightC.setText("Activar");
|
225 |
lBrightC.setPreferredSize(new java.awt.Dimension(160,15)); |
226 |
GridBagConstraints gridBagConstraints8 = new GridBagConstraints(); |
227 |
gridBagConstraints8.gridx = 0;
|
228 |
gridBagConstraints8.gridy = 0;
|
229 |
pBCCheck = new JPanel(); |
230 |
pBCCheck.setLayout(new GridBagLayout()); |
231 |
pBCCheck.setPreferredSize(new java.awt.Dimension(182,25)); |
232 |
pBCCheck.add(getCBrightC(), gridBagConstraints8); |
233 |
pBCCheck.add(lBrightC, gridBagConstraints9); |
234 |
} |
235 |
return pBCCheck;
|
236 |
} |
237 |
|
238 |
/**
|
239 |
* This method initializes jPanel3
|
240 |
*
|
241 |
* @return javax.swing.JPanel
|
242 |
*/
|
243 |
private JPanel getPBCSlider() { |
244 |
if (pBCSlider == null) { |
245 |
GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); |
246 |
gridBagConstraints7.gridx = 0;
|
247 |
gridBagConstraints7.insets = new java.awt.Insets(0,0,2,0); |
248 |
gridBagConstraints7.gridy = 0;
|
249 |
GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); |
250 |
gridBagConstraints6.gridx = 0;
|
251 |
gridBagConstraints6.insets = new java.awt.Insets(10,0,8,0); |
252 |
gridBagConstraints6.gridy = 2;
|
253 |
GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); |
254 |
gridBagConstraints5.gridx = 0;
|
255 |
gridBagConstraints5.insets = new java.awt.Insets(0,0,0,0); |
256 |
gridBagConstraints5.gridy = 1;
|
257 |
pBCSlider = new JPanel(); |
258 |
pBCSlider.setLayout(new GridBagLayout()); |
259 |
pBCSlider.setPreferredSize(new java.awt.Dimension(188,150)); |
260 |
pBCSlider.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
|
261 |
pBCSlider.add(getLabelSliderText(), gridBagConstraints7); |
262 |
pBCSlider.add(getLabelSliderText1(), gridBagConstraints5); |
263 |
pBCSlider.add(getJPanel1(), gridBagConstraints6); |
264 |
this.setBCControlEnabled(false); |
265 |
} |
266 |
return pBCSlider;
|
267 |
} |
268 |
|
269 |
/**
|
270 |
* This method initializes jPanel1
|
271 |
*
|
272 |
* @return javax.swing.JPanel
|
273 |
*/
|
274 |
private JPanel getJPanel1() { |
275 |
if (jPanel1 == null) { |
276 |
GridBagConstraints gridBagConstraints19 = new GridBagConstraints(); |
277 |
gridBagConstraints19.gridx = 1;
|
278 |
gridBagConstraints19.gridy = 0;
|
279 |
lpreview = new JLabel(); |
280 |
lpreview.setText("Previsualizacion");
|
281 |
lpreview.setPreferredSize(new java.awt.Dimension(150,15)); |
282 |
lpreview.setSize(new java.awt.Dimension(160,15)); |
283 |
GridBagConstraints gridBagConstraints10 = new GridBagConstraints(); |
284 |
gridBagConstraints10.gridx = 0;
|
285 |
gridBagConstraints10.insets = new java.awt.Insets(0,0,0,0); |
286 |
gridBagConstraints10.gridy = 0;
|
287 |
jPanel1 = new JPanel(); |
288 |
jPanel1.setLayout(new GridBagLayout()); |
289 |
jPanel1.setPreferredSize(new java.awt.Dimension(180,25)); |
290 |
jPanel1.add(getJCheckBox1(), gridBagConstraints10); |
291 |
jPanel1.add(lpreview, gridBagConstraints19); |
292 |
} |
293 |
return jPanel1;
|
294 |
} |
295 |
|
296 |
/**
|
297 |
* This method initializes jCheckBox
|
298 |
*
|
299 |
* @return javax.swing.JCheckBox
|
300 |
*/
|
301 |
public JCheckBox getCBrightC() { |
302 |
if (cBrightC == null) { |
303 |
cBrightC = new JCheckBox(); |
304 |
} |
305 |
return cBrightC;
|
306 |
} |
307 |
|
308 |
/**
|
309 |
* This method initializes jPanel
|
310 |
*
|
311 |
* @return javax.swing.JPanel
|
312 |
*/
|
313 |
private JPanel getPEnCheck() { |
314 |
if (pEnCheck == null) { |
315 |
GridBagConstraints gridBagConstraints14 = new GridBagConstraints(); |
316 |
gridBagConstraints14.insets = new java.awt.Insets(0,0,0,0); |
317 |
gridBagConstraints14.gridy = 0;
|
318 |
gridBagConstraints14.gridx = 1;
|
319 |
GridBagConstraints gridBagConstraints13 = new GridBagConstraints(); |
320 |
gridBagConstraints13.insets = new java.awt.Insets(0,0,0,0); |
321 |
gridBagConstraints13.gridy = 0;
|
322 |
gridBagConstraints13.gridx = 0;
|
323 |
lLineal = new JLabel(); |
324 |
lLineal.setText("Lineal Directo");
|
325 |
lLineal.setPreferredSize(new java.awt.Dimension(160,15)); |
326 |
pEnCheck = new JPanel(); |
327 |
pEnCheck.setLayout(new GridBagLayout()); |
328 |
pEnCheck.setPreferredSize(new java.awt.Dimension(182,25)); |
329 |
pEnCheck.add(getCEnhanced(), gridBagConstraints13); |
330 |
pEnCheck.add(lLineal, gridBagConstraints14); |
331 |
} |
332 |
return pEnCheck;
|
333 |
} |
334 |
|
335 |
/**
|
336 |
* This method initializes jPanel2
|
337 |
*
|
338 |
* @return javax.swing.JPanel
|
339 |
*/
|
340 |
private JPanel getPEnSlider() { |
341 |
if (pEnSlider == null) { |
342 |
GridBagConstraints gridBagConstraints18 = new GridBagConstraints(); |
343 |
gridBagConstraints18.insets = new java.awt.Insets(2,0,0,0); |
344 |
gridBagConstraints18.gridy = 1;
|
345 |
gridBagConstraints18.gridx = 0;
|
346 |
GridBagConstraints gridBagConstraints15 = new GridBagConstraints(); |
347 |
gridBagConstraints15.insets = new java.awt.Insets(0,0,2,0); |
348 |
gridBagConstraints15.gridy = 0;
|
349 |
gridBagConstraints15.gridx = 0;
|
350 |
pEnSlider = new JPanel(); |
351 |
pEnSlider.setLayout(new GridBagLayout()); |
352 |
pEnSlider.setPreferredSize(new java.awt.Dimension(188,100)); |
353 |
pEnSlider.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
|
354 |
pEnSlider.add(getPDelInt(), gridBagConstraints15); |
355 |
pEnSlider.add(getCheckSliderText(), gridBagConstraints18); |
356 |
this.setEControlEnabled(false); |
357 |
} |
358 |
return pEnSlider;
|
359 |
} |
360 |
|
361 |
/**
|
362 |
* This method initializes jCheckBox
|
363 |
*
|
364 |
* @return javax.swing.JCheckBox
|
365 |
*/
|
366 |
public JCheckBox getCEnhanced() { |
367 |
if (cEnhanced == null) { |
368 |
cEnhanced = new JCheckBox(); |
369 |
} |
370 |
return cEnhanced;
|
371 |
} |
372 |
|
373 |
/**
|
374 |
* This method initializes jPanel3
|
375 |
*
|
376 |
* @return javax.swing.JPanel
|
377 |
*/
|
378 |
private JPanel getPDelInt() { |
379 |
if (pDelInt == null) { |
380 |
GridBagConstraints gridBagConstraints17 = new GridBagConstraints(); |
381 |
gridBagConstraints17.gridx = 1;
|
382 |
gridBagConstraints17.gridy = 0;
|
383 |
lRemove = new JLabel(); |
384 |
lRemove.setText("Eliminar Extremos");
|
385 |
lRemove.setPreferredSize(new java.awt.Dimension(150,15)); |
386 |
GridBagConstraints gridBagConstraints16 = new GridBagConstraints(); |
387 |
gridBagConstraints16.insets = new java.awt.Insets(0,0,0,0); |
388 |
gridBagConstraints16.gridy = 0;
|
389 |
gridBagConstraints16.gridx = 0;
|
390 |
pDelInt = new JPanel(); |
391 |
pDelInt.setLayout(new GridBagLayout()); |
392 |
pDelInt.setPreferredSize(new java.awt.Dimension(180,25)); |
393 |
pDelInt.add(getJCheckBox(), gridBagConstraints16); |
394 |
pDelInt.add(lRemove, gridBagConstraints17); |
395 |
} |
396 |
return pDelInt;
|
397 |
} |
398 |
|
399 |
/**
|
400 |
* This method initializes jCheckBox
|
401 |
*
|
402 |
* @return javax.swing.JCheckBox
|
403 |
*/
|
404 |
public JCheckBox getJCheckBox() { |
405 |
if (jCheckBox == null) { |
406 |
jCheckBox = new JCheckBox(); |
407 |
} |
408 |
return jCheckBox;
|
409 |
} |
410 |
|
411 |
/**
|
412 |
* inicializa el conponente CheckSliderText
|
413 |
*/
|
414 |
public CheckSliderText getCheckSliderText(){
|
415 |
String rcName = "Recorte de colas"; |
416 |
if (cstEnhanced == null){ |
417 |
cstEnhanced = new CheckSliderText();
|
418 |
cstEnhanced.setName(rcName); |
419 |
cstEnhanced.setSliderValue(0);
|
420 |
cstEnhanced.setSliderRange(0,50); |
421 |
cstEnhanced.setDecimal(true);
|
422 |
cstEnhanced.setTextValue("0.0");
|
423 |
|
424 |
} |
425 |
return cstEnhanced;
|
426 |
} |
427 |
|
428 |
/**
|
429 |
* Habilita o dehabilita el panel de brillo y contraste
|
430 |
* @param active
|
431 |
*/
|
432 |
public void setBCControlEnabled(boolean active){ |
433 |
this.lstBrightness.setControlEnabled(active);
|
434 |
this.lstContrast.setControlEnabled(active);
|
435 |
this.getJCheckBox1().setEnabled(active);
|
436 |
this.lpreview.setEnabled(active);
|
437 |
} |
438 |
|
439 |
/**
|
440 |
* Habilita o dehabilita el panel de realce
|
441 |
* @param active
|
442 |
*/
|
443 |
public void setEControlEnabled(boolean active){ |
444 |
this.jCheckBox.setEnabled(active);
|
445 |
this.lRemove.setEnabled(active);
|
446 |
this.cstEnhanced.setControlEnabled(active);
|
447 |
} |
448 |
|
449 |
|
450 |
public void actionPerformed(ActionEvent e) { |
451 |
if(e.getSource() == this.getCBrightC()){ |
452 |
this.setBCControlEnabled(this.getCBrightC().isSelected()); |
453 |
} |
454 |
if(e.getSource() == cEnhanced){
|
455 |
this.setEControlEnabled(this.getCEnhanced().isSelected()); |
456 |
} |
457 |
if((e.getSource() == this.getLabelSliderText().getJTextField()) || |
458 |
(e.getSource() == this.getLabelSliderText1().getJTextField())){
|
459 |
|
460 |
if(this.getJCheckBox1().isSelected()){ |
461 |
this.layer = propertiesRasterDialog.getFLyrRaster();
|
462 |
this.rasterStackManager = propertiesRasterDialog.getStackManager();
|
463 |
processBrightnessContrastPanel(this.rasterStackManager, this.propertiesRasterDialog, this.layer); |
464 |
} |
465 |
|
466 |
} |
467 |
} |
468 |
|
469 |
/**
|
470 |
* Asigna a este panel un stack manager
|
471 |
* @param p
|
472 |
*/
|
473 |
public void setBrightnessContrastStackManager (BrightnessContrastStackManager p){ |
474 |
this.bcManager = p;
|
475 |
} |
476 |
|
477 |
/**
|
478 |
* A?ade los filtros de frillo y contraste a la pila de filtros con los valores
|
479 |
* introducidos en el panel.
|
480 |
* @param stackManager
|
481 |
* @param propsDialog
|
482 |
* @param layer
|
483 |
*/
|
484 |
private void processBrightnessContrastPanel(RasterFilterStackManager stackManager, PropertiesRasterDialog propsDialog, FLyrRaster layer){ |
485 |
EnhancedBrightnessContrastPanel ebcPanel = (EnhancedBrightnessContrastPanel)((FilterRasterDialogPanel)propsDialog.getContentPane()).getPanelByClassName("EnhancedBrightnessContrastPanel");
|
486 |
// Si est? activo el panel de brillo y contraste tomamos los valores y cargamos un filtro de
|
487 |
// brillo y contraste
|
488 |
|
489 |
if(ebcPanel.getCBrightC().isSelected()){
|
490 |
int incrBrillo = (int)Math.round(Double.valueOf(ebcPanel.lstBrightness.getTextValue()).doubleValue()); |
491 |
int incrContraste = (int)Math.round(Double.valueOf(ebcPanel.lstContrast.getTextValue()).doubleValue()); |
492 |
bcManager.addBrightnessFilter(incrBrillo); |
493 |
bcManager.addContrastFilter(incrContraste); |
494 |
}else{
|
495 |
stackManager.removeFilter(bcManager.brightness); |
496 |
stackManager.removeFilter(bcManager.contrast); |
497 |
} |
498 |
layer.getMapContext().invalidate(); |
499 |
} |
500 |
|
501 |
|
502 |
//-------------------------------------------------------------------------------
|
503 |
|
504 |
/**
|
505 |
* M?todo que se ejecuta desde el PropertiesRasterDialog para todos los paneles insertados
|
506 |
* cuando se pulsa el bot?n aceptar.
|
507 |
*/
|
508 |
public void actionPerformed(RasterFilterStackManager stackManager, PropertiesRasterDialog propsDialog, FLyrRaster fLayer) { |
509 |
|
510 |
processBrightnessContrastPanel(stackManager, propsDialog, fLayer); |
511 |
|
512 |
EnhancedBrightnessContrastPanel ebcPanel = (EnhancedBrightnessContrastPanel)((FilterRasterDialogPanel)propsDialog.getContentPane()).getPanelByClassName("EnhancedBrightnessContrastPanel");
|
513 |
|
514 |
//Filtro de realce lineal seleccionado
|
515 |
if(ebcPanel.getCEnhanced().isSelected()){
|
516 |
if((ebcPanel.getJCheckBox().isSelected()) && (!ebcPanel.getCheckSliderText().getJCheckBox().isSelected()))
|
517 |
stackManager.addEnhancedFilter(true, fLayer.getSource().getFiles()[0].getName()); |
518 |
else
|
519 |
stackManager.addEnhancedFilter(false, fLayer.getSource().getFiles()[0].getName()); |
520 |
|
521 |
//Recorte de colas seleccionado
|
522 |
if(ebcPanel.getCheckSliderText().getJCheckBox().isSelected()){
|
523 |
stackManager.removeFilter(stackManager.getTypeFilter("computeminmax"));
|
524 |
double recorte = Double.parseDouble(ebcPanel.getCheckSliderText().getTextValue())/100; |
525 |
if(ebcPanel.getJCheckBox().isSelected())
|
526 |
stackManager.addTailFilter(recorte, 0D, true); |
527 |
else
|
528 |
stackManager.addTailFilter(recorte, 0D, false); |
529 |
}else{
|
530 |
stackManager.removeFilter(stackManager.getTypeFilter("tail"));
|
531 |
stackManager.addComputeMinMaxFilter(); |
532 |
} |
533 |
|
534 |
} |
535 |
// Sin filtro lineal seleccionado
|
536 |
if(!ebcPanel.getCEnhanced().isSelected()){
|
537 |
stackManager.removeFilter(stackManager.getTypeFilter("computeminmax"));
|
538 |
stackManager.removeFilter(stackManager.getTypeFilter("tail"));
|
539 |
stackManager.removeFilter(stackManager.getTypeFilter("enhanced"));
|
540 |
} |
541 |
fLayer.getMapContext().invalidate(); |
542 |
|
543 |
} |
544 |
|
545 |
public void addTabPanel(FLyrRasterAdjustPropertiesTocMenuEntry menu) { |
546 |
// TODO Auto-generated method stub
|
547 |
|
548 |
} |
549 |
|
550 |
public void setStackManager(RasterFilterStackManager stackManager) { |
551 |
// TODO Auto-generated method stub
|
552 |
|
553 |
} |
554 |
|
555 |
public IStackManager getStackManager() {
|
556 |
// TODO Auto-generated method stub
|
557 |
return bcManager;
|
558 |
} |
559 |
|
560 |
|
561 |
//----------------------------------------------------------------------------------
|
562 |
|
563 |
|
564 |
public void removeFile(String file) { |
565 |
// TODO Auto-generated method stub
|
566 |
|
567 |
} |
568 |
|
569 |
public void addFiles(GeoRasterFile[] files) { |
570 |
// TODO Auto-generated method stub
|
571 |
|
572 |
} |
573 |
|
574 |
/**
|
575 |
* This method initializes jCheckBox1
|
576 |
*
|
577 |
* @return javax.swing.JCheckBox
|
578 |
*/
|
579 |
private JCheckBox getJCheckBox1() { |
580 |
if (jCheckBox1 == null) { |
581 |
jCheckBox1 = new JCheckBox(); |
582 |
} |
583 |
return jCheckBox1;
|
584 |
} |
585 |
|
586 |
public void setPropertiesDialog(PropertiesRasterDialog prop){ |
587 |
this.propertiesRasterDialog = prop;
|
588 |
} |
589 |
|
590 |
|
591 |
//********************************************************************
|
592 |
//***********************EVENTOS DE RAT?N*****************************
|
593 |
|
594 |
public void mouseClicked(MouseEvent e) { |
595 |
// TODO Auto-generated method stub
|
596 |
|
597 |
} |
598 |
|
599 |
public void mouseEntered(MouseEvent e) { |
600 |
// TODO Auto-generated method stub
|
601 |
|
602 |
} |
603 |
|
604 |
public void mouseExited(MouseEvent e) { |
605 |
// TODO Auto-generated method stub
|
606 |
|
607 |
} |
608 |
|
609 |
public void mousePressed(MouseEvent e) { |
610 |
// TODO Auto-generated method stub
|
611 |
|
612 |
} |
613 |
|
614 |
/**
|
615 |
* Listener que actua cuando el check "previsualizar" est? activado
|
616 |
* y aplica los filtros con los valores seleccionados cuando soltamos
|
617 |
* el bot?n del rat?n al seleccionar valor en el slider.
|
618 |
*/
|
619 |
public void mouseReleased(MouseEvent e) { |
620 |
if (((e.getSource() == this.lstBrightness.getJSlider()) || |
621 |
(e.getSource() == this.lstContrast.getJSlider())) &&
|
622 |
(this.getJCheckBox1().isSelected() == true)){ |
623 |
this.layer = propertiesRasterDialog.getFLyrRaster();
|
624 |
this.rasterStackManager = propertiesRasterDialog.getStackManager();
|
625 |
processBrightnessContrastPanel(this.rasterStackManager, this.propertiesRasterDialog, this.layer); |
626 |
} |
627 |
|
628 |
} |
629 |
|
630 |
public void keyPressed(KeyEvent e) { |
631 |
if(e.getSource() == this.getCheckSliderText().getJTextField()){ |
632 |
this.getCheckSliderText().getJSlider().setValue((int) Math.round(Double.valueOf(this.getCheckSliderText().getTextValue()).doubleValue())); |
633 |
} |
634 |
} |
635 |
|
636 |
public void keyReleased(KeyEvent e) { |
637 |
// TODO Auto-generated method stub
|
638 |
|
639 |
} |
640 |
|
641 |
public void keyTyped(KeyEvent e) { |
642 |
|
643 |
} |
644 |
} |
645 |
|