svn-gvsig-desktop / trunk / extensions / extRemoteSensing / src / es / idr / teledeteccion / gridmath / gui / OutputOptionsPanel.java @ 12184
History | View | Annotate | Download (29.2 KB)
1 | 12181 | dguerrero | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2006 Instituto de Desarrollo Regional 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 | * For more information, contact:
|
||
20 | *
|
||
21 | * Generalitat Valenciana
|
||
22 | * Conselleria d'Infraestructures i Transport
|
||
23 | * Av. Blasco Iba?ez, 50
|
||
24 | * 46010 VALENCIA
|
||
25 | * SPAIN
|
||
26 | *
|
||
27 | * +34 963862235
|
||
28 | * gvsig@gva.es
|
||
29 | * www.gvsig.gva.es
|
||
30 | *
|
||
31 | * or
|
||
32 | *
|
||
33 | * Instituto de Desarrollo Regional (Universidad de Castilla La-Mancha)
|
||
34 | * Campus Universitario s/n
|
||
35 | * 02071 Alabacete
|
||
36 | * Spain
|
||
37 | *
|
||
38 | * +34 967 599 200
|
||
39 | */
|
||
40 | |||
41 | package es.idr.teledeteccion.gridmath.gui; |
||
42 | |||
43 | import info.clearthought.layout.TableLayout; |
||
44 | |||
45 | import java.awt.BorderLayout; |
||
46 | import java.awt.Dimension; |
||
47 | import java.awt.GridBagConstraints; |
||
48 | import java.awt.GridBagLayout; |
||
49 | import java.awt.event.ActionEvent; |
||
50 | import java.awt.event.ActionListener; |
||
51 | import java.awt.event.FocusEvent; |
||
52 | import java.awt.event.FocusListener; |
||
53 | import java.awt.event.KeyEvent; |
||
54 | import java.awt.event.KeyListener; |
||
55 | |||
56 | import javax.swing.BorderFactory; |
||
57 | import javax.swing.ButtonGroup; |
||
58 | import javax.swing.ComboBoxModel; |
||
59 | import javax.swing.DefaultComboBoxModel; |
||
60 | import javax.swing.JButton; |
||
61 | import javax.swing.JComboBox; |
||
62 | import javax.swing.JLabel; |
||
63 | import javax.swing.JPanel; |
||
64 | import javax.swing.JRadioButton; |
||
65 | import javax.swing.JTextField; |
||
66 | import javax.swing.SwingConstants; |
||
67 | import javax.swing.border.CompoundBorder; |
||
68 | import javax.swing.border.EmptyBorder; |
||
69 | import javax.swing.border.TitledBorder; |
||
70 | |||
71 | import org.gvsig.fmap.layers.FLyrRasterSE; |
||
72 | import org.gvsig.gui.beans.incrementabletask.IncrementableTask; |
||
73 | import org.gvsig.raster.buffer.RasterBufferInvalidException; |
||
74 | import org.gvsig.raster.grid.Grid; |
||
75 | 12184 | dguerrero | import org.gvsig.rastertools.RasterModule; |
76 | 12181 | dguerrero | |
77 | import com.iver.andami.PluginServices; |
||
78 | import com.iver.andami.ui.mdiManager.IWindow; |
||
79 | import com.iver.andami.ui.mdiManager.WindowInfo; |
||
80 | import com.iver.cit.gvsig.fmap.MapContext; |
||
81 | import com.iver.cit.gvsig.fmap.layers.FLayer; |
||
82 | import com.iver.cit.gvsig.fmap.layers.FLayers; |
||
83 | import com.iver.cit.gvsig.project.documents.view.gui.View; |
||
84 | |||
85 | import es.idr.teledeteccion.gridmath.GridMathProcess; |
||
86 | |||
87 | |||
88 | /**Clase que implementa la interfaz de configuracion del extent de salida del resultado de
|
||
89 | * @author Alejandro Mu?oz
|
||
90 | *
|
||
91 | */
|
||
92 | public class OutputOptionsPanel extends JPanel implements IWindow,ActionListener,FocusListener,KeyListener { |
||
93 | |||
94 | |||
95 | private static final long serialVersionUID = 1L; |
||
96 | private JButton aceptar = null; |
||
97 | private JButton cancelar = null; |
||
98 | |||
99 | private JPanel namePanel = null; |
||
100 | private JPanel panelExtension = null; |
||
101 | private JPanel paramPanel = null; |
||
102 | |||
103 | private JTextField jTextNombreCapa = null; |
||
104 | private JTextField jTextRangoX1 = null; |
||
105 | private JTextField jTextRangoX2 = null; |
||
106 | private JTextField jTextRangoY1 = null; |
||
107 | private JTextField jTextRangoY2 = null; |
||
108 | private JTextField jTextCellSize = null; |
||
109 | private JTextField jTextNumFiCol1 = null; |
||
110 | private JTextField jTextNumFiCol2 = null; |
||
111 | private FLayers layers = null; |
||
112 | |||
113 | private JLabel etiq4 = null; |
||
114 | |||
115 | private JRadioButton rButtom1 = null; |
||
116 | private JRadioButton rButtom2 = null; |
||
117 | private JRadioButton rButtom3 = null; |
||
118 | private JRadioButton rButtom4 = null; |
||
119 | |||
120 | private JRadioButton rButtonFile = null; |
||
121 | private JRadioButton rButtonMemory = null; |
||
122 | |||
123 | private JComboBox jComboCapas = null; |
||
124 | private MapContext mapContext = null; |
||
125 | |||
126 | private int wPanel=780; |
||
127 | private int hPanel=325; |
||
128 | private CalculatorPanel cp = null; |
||
129 | |||
130 | // Constructor que toma como parametros la vista de la aplicacion y el
|
||
131 | // CalculatorPanel desde el que se invoca.
|
||
132 | public OutputOptionsPanel(View vista, CalculatorPanel cp) { |
||
133 | |||
134 | super();
|
||
135 | if (vista!=null){ |
||
136 | mapContext = vista.getModel().getMapContext(); |
||
137 | layers = mapContext.getLayers(); |
||
138 | } |
||
139 | this.cp=cp;
|
||
140 | Inicializar(); |
||
141 | //InicializarOpcion();
|
||
142 | } |
||
143 | |||
144 | |||
145 | // Inicializa el cuadro de dialogo
|
||
146 | public void Inicializar(){ |
||
147 | BorderLayout bd=new BorderLayout(); |
||
148 | this.setLayout(bd);
|
||
149 | this.setBorder( new EmptyBorder(10, 10, 10, 10)); |
||
150 | this.add(getNamePanel(),BorderLayout.NORTH); |
||
151 | this.add(getPanelExtension(),BorderLayout.WEST); |
||
152 | this.add(getParameterPanel(),BorderLayout.CENTER); |
||
153 | 12184 | dguerrero | this.setNewLayerText();
|
154 | getRadioMemory().setSelected(true);
|
||
155 | 12181 | dguerrero | } |
156 | |||
157 | |||
158 | public WindowInfo getWindowInfo() {
|
||
159 | |||
160 | WindowInfo m_viewinfo = new WindowInfo(WindowInfo.RESIZABLE);
|
||
161 | //Establecer el tamao del formulario
|
||
162 | m_viewinfo.setWidth(wPanel); |
||
163 | m_viewinfo.setHeight(hPanel); |
||
164 | //Establecer el ttulo del formulario
|
||
165 | m_viewinfo.setTitle(PluginServices.getText(this,"Configuracion de salida raster")); |
||
166 | //punto X de la pantalla donde se situa
|
||
167 | m_viewinfo.setX(80);
|
||
168 | |||
169 | return m_viewinfo;
|
||
170 | |||
171 | } |
||
172 | |||
173 | public JButton getAceptar() { |
||
174 | |||
175 | if (aceptar==null){ |
||
176 | aceptar=new JButton(); |
||
177 | aceptar.setText(PluginServices.getText(this,"aceptar")); |
||
178 | aceptar.addActionListener(this);
|
||
179 | } |
||
180 | return aceptar;
|
||
181 | |||
182 | } |
||
183 | |||
184 | |||
185 | public JButton getCancelar() { |
||
186 | |||
187 | if (cancelar==null){ |
||
188 | cancelar=new JButton(); |
||
189 | cancelar.setText(PluginServices.getText(this,"cancelar")); |
||
190 | cancelar.addActionListener(this);
|
||
191 | } |
||
192 | |||
193 | return cancelar;
|
||
194 | } |
||
195 | |||
196 | public JRadioButton getRadioFile(){ |
||
197 | if (rButtonFile == null){ |
||
198 | 12184 | dguerrero | rButtonFile = new JRadioButton(PluginServices.getText(this,"a_fichero")); |
199 | 12181 | dguerrero | rButtonFile.addActionListener(this);
|
200 | } |
||
201 | return rButtonFile;
|
||
202 | } |
||
203 | |||
204 | public JRadioButton getRadioMemory(){ |
||
205 | if (rButtonMemory == null){ |
||
206 | 12184 | dguerrero | rButtonMemory = new JRadioButton(PluginServices.getText(this,"a_memoria")); |
207 | 12181 | dguerrero | rButtonMemory.addActionListener(this);
|
208 | } |
||
209 | return rButtonMemory;
|
||
210 | } |
||
211 | |||
212 | /**
|
||
213 | * Panel con el para especificar el nombre de la capa y si se escribe en
|
||
214 | * memoria o en disco.
|
||
215 | *
|
||
216 | * @return JPanel
|
||
217 | */
|
||
218 | public JPanel getNamePanel() { |
||
219 | |||
220 | if (namePanel==null){ |
||
221 | namePanel=new JPanel(); |
||
222 | |||
223 | GridBagConstraints gridBagConstraints;
|
||
224 | |||
225 | JPanel radioPanel = new JPanel(); |
||
226 | radioPanel.setLayout(new GridBagLayout()); |
||
227 | radioPanel.setBorder(BorderFactory.createTitledBorder("")); |
||
228 | ButtonGroup buttonGroup = new ButtonGroup(); |
||
229 | buttonGroup.add(getRadioMemory()); |
||
230 | gridBagConstraints = new java.awt.GridBagConstraints();
|
||
231 | gridBagConstraints.gridx = 0;
|
||
232 | gridBagConstraints.gridy = 1;
|
||
233 | gridBagConstraints.anchor = GridBagConstraints.WEST;
|
||
234 | gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); |
||
235 | radioPanel.add(getRadioMemory(),gridBagConstraints); |
||
236 | buttonGroup.add(getRadioFile()); |
||
237 | gridBagConstraints = new java.awt.GridBagConstraints();
|
||
238 | gridBagConstraints.gridx = 0;
|
||
239 | gridBagConstraints.gridy = 2;
|
||
240 | gridBagConstraints.anchor = GridBagConstraints.WEST;
|
||
241 | gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); |
||
242 | radioPanel.add(getRadioFile(),gridBagConstraints); |
||
243 | |||
244 | //Establece la separacin entre los elementos
|
||
245 | namePanel.setLayout(new GridBagLayout()); |
||
246 | |||
247 | gridBagConstraints = new java.awt.GridBagConstraints();
|
||
248 | gridBagConstraints.gridx = 0;
|
||
249 | gridBagConstraints.gridy = 0;
|
||
250 | gridBagConstraints.anchor = GridBagConstraints.WEST;
|
||
251 | gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); |
||
252 | namePanel.add(getEtiq4(),gridBagConstraints); |
||
253 | |||
254 | gridBagConstraints = new java.awt.GridBagConstraints();
|
||
255 | gridBagConstraints.gridx = 1;
|
||
256 | gridBagConstraints.gridy = 0;
|
||
257 | gridBagConstraints.anchor = GridBagConstraints.WEST;
|
||
258 | gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); |
||
259 | namePanel.add(getJTextNombreCapa(),gridBagConstraints); |
||
260 | |||
261 | gridBagConstraints = new java.awt.GridBagConstraints();
|
||
262 | gridBagConstraints.gridx = 2;
|
||
263 | gridBagConstraints.gridy = 0;
|
||
264 | gridBagConstraints.anchor = GridBagConstraints.WEST;
|
||
265 | gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3); |
||
266 | namePanel.add(radioPanel,gridBagConstraints); |
||
267 | } |
||
268 | |||
269 | return namePanel;
|
||
270 | } |
||
271 | |||
272 | |||
273 | |||
274 | // TextField NombreCapa
|
||
275 | public JTextField getJTextNombreCapa() { |
||
276 | |||
277 | if (jTextNombreCapa==null){ |
||
278 | |||
279 | jTextNombreCapa=new JTextField(15); |
||
280 | jTextNombreCapa.addFocusListener(this);
|
||
281 | |||
282 | } |
||
283 | |||
284 | return jTextNombreCapa;
|
||
285 | } |
||
286 | |||
287 | |||
288 | |||
289 | // Etiqueta
|
||
290 | public JLabel getEtiq4() { |
||
291 | |||
292 | if(etiq4==null){ |
||
293 | etiq4 = new JLabel( (PluginServices.getText(this,"nombre_capa")),SwingConstants.RIGHT ); |
||
294 | |||
295 | } |
||
296 | return etiq4;
|
||
297 | } |
||
298 | |||
299 | |||
300 | |||
301 | /*Panel PanelExtension, los radioButton y el comboCapas */
|
||
302 | public JPanel getPanelExtension() { |
||
303 | |||
304 | |||
305 | if (panelExtension==null){ |
||
306 | |||
307 | panelExtension=new JPanel(); |
||
308 | TitledBorder topBorder = BorderFactory.createTitledBorder((PluginServices.getText(this,"extension_from"))); |
||
309 | topBorder.setTitlePosition(TitledBorder.TOP);
|
||
310 | panelExtension.setBorder(new CompoundBorder(topBorder,new EmptyBorder(0,5,6,5))); |
||
311 | |||
312 | JPanel p=new JPanel(); |
||
313 | p.setPreferredSize(new Dimension(250,120)); |
||
314 | TableLayout thisLayout = new TableLayout(new double[][] { |
||
315 | {50, TableLayout.PREFERRED},
|
||
316 | {TableLayout.PREFERRED,TableLayout.PREFERRED,TableLayout.PREFERRED, TableLayout.PREFERRED,TableLayout.PREFERRED }}); |
||
317 | //Establece la separacin entre los elementos
|
||
318 | thisLayout.setHGap(5);
|
||
319 | thisLayout.setVGap(5);
|
||
320 | p.setLayout(thisLayout); |
||
321 | p.add(getRButtom1(),"1,0");
|
||
322 | p.add(getRButtom2(),"1,1");
|
||
323 | p.add(getRButtom3(),"1,2");
|
||
324 | p.add(getRButtom4(),"1,3");
|
||
325 | p.add(getJComboCapas(),"1,4");
|
||
326 | |||
327 | panelExtension.add(p); |
||
328 | } |
||
329 | |||
330 | return panelExtension;
|
||
331 | } |
||
332 | |||
333 | |||
334 | /*Panel ParameterPanel, con cada uno de los parametros de configuracin de la salida raster. */
|
||
335 | public JPanel getParameterPanel() { |
||
336 | |||
337 | |||
338 | if (paramPanel==null){ |
||
339 | paramPanel=new JPanel(); |
||
340 | TitledBorder topBorder = BorderFactory.createTitledBorder((PluginServices.getText(this,"parametros"))); |
||
341 | topBorder.setTitlePosition(TitledBorder.TOP);
|
||
342 | paramPanel.setBorder(new CompoundBorder(topBorder,new EmptyBorder(0,5,6,5))); |
||
343 | |||
344 | |||
345 | JPanel p=new JPanel(); |
||
346 | p.setPreferredSize(new Dimension(320,130)); |
||
347 | TableLayout thisLayout = new TableLayout(new double[][] { |
||
348 | {150,75, 75}, |
||
349 | {3,20,20,20,20}}); |
||
350 | //Establece la separacin entre los elementos
|
||
351 | thisLayout.setHGap(5);
|
||
352 | thisLayout.setVGap(10);
|
||
353 | p.setLayout(thisLayout); |
||
354 | |||
355 | //Aado los diferentes elementos
|
||
356 | p.add(new JLabel((PluginServices.getText(this,"rangox"))),"0,1"); |
||
357 | p.add(new JLabel((PluginServices.getText(this,"rangoy"))),"0,2"); |
||
358 | p.add(new JLabel((PluginServices.getText(this,"tamanio_celda"))),"0,3"); |
||
359 | p.add(new JLabel((PluginServices.getText(this,"num_filas_columnas"))),"0,4"); |
||
360 | p.add(getJTextCellSize(),"1,3");
|
||
361 | p.add(getJTextNumFiCol1(),"1,4");
|
||
362 | p.add(getJTextNumFiCol2(),"2,4");
|
||
363 | p.add(getJTextRangoX1(),"1,1");
|
||
364 | p.add(getJTextRangoX2(),"2,1");
|
||
365 | p.add(getJTextRangoY1(),"1,2");
|
||
366 | p.add(getJTextRangoY2(),"2,2");
|
||
367 | |||
368 | paramPanel.add(p); |
||
369 | } |
||
370 | return paramPanel;
|
||
371 | } |
||
372 | |||
373 | |||
374 | |||
375 | //RadioButton1
|
||
376 | public JRadioButton getRButtom1() { |
||
377 | if(rButtom1==null){ |
||
378 | rButtom1=new JRadioButton((PluginServices.getText(this,"ajustar_entrada")), true); |
||
379 | rButtom1.addActionListener(this);
|
||
380 | } |
||
381 | return rButtom1;
|
||
382 | } |
||
383 | |||
384 | |||
385 | |||
386 | //RadioButton2
|
||
387 | public JRadioButton getRButtom2() { |
||
388 | if(rButtom2==null){ |
||
389 | rButtom2=new JRadioButton((PluginServices.getText(this,"definida_usuario")), false); |
||
390 | rButtom2.addActionListener(this);
|
||
391 | } |
||
392 | return rButtom2;
|
||
393 | } |
||
394 | |||
395 | |||
396 | |||
397 | //RadioButton3
|
||
398 | public JRadioButton getRButtom3() { |
||
399 | if(rButtom3==null){ |
||
400 | rButtom3=new JRadioButton((PluginServices.getText(this,"extension_vista")), false); |
||
401 | rButtom3.addActionListener(this);
|
||
402 | } |
||
403 | return rButtom3;
|
||
404 | } |
||
405 | |||
406 | |||
407 | |||
408 | |||
409 | //RadioButton4
|
||
410 | public JRadioButton getRButtom4() { |
||
411 | if(rButtom4==null){ |
||
412 | rButtom4=new JRadioButton((PluginServices.getText(this,"extension_capa")), false); |
||
413 | rButtom4.addActionListener(this);
|
||
414 | } |
||
415 | return rButtom4;
|
||
416 | } |
||
417 | |||
418 | |||
419 | // Tamo de celda
|
||
420 | public JTextField getJTextCellSize() { |
||
421 | |||
422 | if (jTextCellSize==null){ |
||
423 | jTextCellSize=new JTextField(); |
||
424 | jTextCellSize.setEditable(false);
|
||
425 | jTextCellSize.addKeyListener(this);
|
||
426 | } |
||
427 | |||
428 | return jTextCellSize;
|
||
429 | } |
||
430 | |||
431 | |||
432 | // Numero filas
|
||
433 | public JTextField getJTextNumFiCol1() { |
||
434 | |||
435 | if (jTextNumFiCol1==null){ |
||
436 | jTextNumFiCol1=new JTextField (); |
||
437 | jTextNumFiCol1.setEditable(false);
|
||
438 | |||
439 | |||
440 | } |
||
441 | |||
442 | return jTextNumFiCol1;
|
||
443 | } |
||
444 | |||
445 | |||
446 | |||
447 | // Rango x inferior
|
||
448 | public JTextField getJTextRangoX1() { |
||
449 | |||
450 | if (jTextRangoX1==null){ |
||
451 | |||
452 | jTextRangoX1 =new JTextField (); |
||
453 | jTextRangoX1.setEditable(false);
|
||
454 | jTextRangoX1.addKeyListener(this);
|
||
455 | |||
456 | } |
||
457 | |||
458 | |||
459 | return jTextRangoX1;
|
||
460 | } |
||
461 | |||
462 | |||
463 | |||
464 | // Rango x superior
|
||
465 | public JTextField getJTextRangoX2() { |
||
466 | |||
467 | if (jTextRangoX2==null){ |
||
468 | jTextRangoX2=new JTextField (); |
||
469 | jTextRangoX2.setEditable(false);
|
||
470 | jTextRangoX2.addKeyListener(this);
|
||
471 | |||
472 | } |
||
473 | return jTextRangoX2;
|
||
474 | } |
||
475 | |||
476 | |||
477 | |||
478 | // Rango y inferior
|
||
479 | public JTextField getJTextRangoY1() { |
||
480 | |||
481 | if (jTextRangoY1==null){ |
||
482 | jTextRangoY1=new JTextField (); |
||
483 | jTextRangoY1.setEditable(false);
|
||
484 | jTextRangoY1.addKeyListener(this);
|
||
485 | } |
||
486 | return jTextRangoY1;
|
||
487 | } |
||
488 | |||
489 | |||
490 | // Rango y superior
|
||
491 | public JTextField getJTextRangoY2() { |
||
492 | |||
493 | if (jTextRangoY2==null){ |
||
494 | jTextRangoY2=new JTextField (); |
||
495 | jTextRangoY2.setEditable(false);
|
||
496 | jTextRangoY2.addKeyListener(this);
|
||
497 | } |
||
498 | return jTextRangoY2;
|
||
499 | } |
||
500 | |||
501 | |||
502 | |||
503 | // Numero columnas
|
||
504 | public JTextField getJTextNumFiCol2() { |
||
505 | |||
506 | if (jTextNumFiCol2==null){ |
||
507 | jTextNumFiCol2=new JTextField (); |
||
508 | jTextNumFiCol2.setEditable(false);
|
||
509 | |||
510 | } |
||
511 | return jTextNumFiCol2;
|
||
512 | } |
||
513 | |||
514 | |||
515 | |||
516 | // JComboCapas
|
||
517 | public JComboBox getJComboCapas() { |
||
518 | |||
519 | if (jComboCapas==null){ |
||
520 | ComboBoxModel jComboBoxLayersModel = new DefaultComboBoxModel(getLayerNames()); |
||
521 | jComboCapas = new JComboBox(); |
||
522 | jComboCapas.setModel(jComboBoxLayersModel); |
||
523 | jComboCapas.setEnabled(false);
|
||
524 | jComboCapas.addActionListener(this);
|
||
525 | } |
||
526 | |||
527 | |||
528 | return jComboCapas;
|
||
529 | } |
||
530 | |||
531 | |||
532 | // Devuelve el nombre de los ficheros cargados actualmente
|
||
533 | private String[] getLayerNames() { |
||
534 | String[] sNames = {}; |
||
535 | if (layers!=null){ |
||
536 | sNames = new String[layers.getLayersCount()]; |
||
537 | for (int i = 0; i < layers.getLayersCount(); i++) { |
||
538 | sNames[i] = (layers.getLayer(i)).getName(); |
||
539 | } |
||
540 | } |
||
541 | return sNames;
|
||
542 | } |
||
543 | |||
544 | // Establece la opcion por defecto cuando se crea el cuadro de dialogo. El extent por defecto,
|
||
545 | public void InicializarOpcion(){ |
||
546 | |||
547 | DesabilitarTodo(); |
||
548 | rButtom1.setSelected(true);
|
||
549 | |||
550 | // Comprobar que todas las variables estan asignadas
|
||
551 | boolean allAssigned = false; |
||
552 | for (int i=0; i<cp.getJTableVariables().getTableFormat().getRowCount(); i++){ |
||
553 | allAssigned = true;
|
||
554 | if (cp.getJTableVariables().getTableFormat().getValueAt(i,1).toString().equals("")) |
||
555 | { |
||
556 | allAssigned=false;
|
||
557 | break;
|
||
558 | } |
||
559 | } |
||
560 | |||
561 | if(allAssigned){
|
||
562 | |||
563 | String layerName = cp.getJTableVariables().getTableFormat().getValueAt(0,1).toString(); |
||
564 | layerName = layerName.substring(0,layerName.indexOf("[")); |
||
565 | FLyrRasterSE rasterLayer = (FLyrRasterSE)mapContext.getLayers().getLayer(layerName); |
||
566 | |||
567 | double xMin =rasterLayer.getDatasource().getExtent().minX();
|
||
568 | double xMax =rasterLayer.getDatasource().getExtent().maxX();
|
||
569 | double yMin =rasterLayer.getDatasource().getExtent().minY();
|
||
570 | double yMax =rasterLayer.getDatasource().getExtent().maxY();
|
||
571 | double cellSize=rasterLayer.getDatasource().getXCellSize();
|
||
572 | |||
573 | for (int i=0;i<cp.getJTableVariables().getTableFormat().getRowCount();i++){ |
||
574 | layerName = cp.getJTableVariables().getTableFormat().getValueAt(i,1).toString();
|
||
575 | layerName = layerName.substring(0,layerName.indexOf("[")); |
||
576 | rasterLayer = (FLyrRasterSE)mapContext.getLayers().getLayer(layerName); |
||
577 | |||
578 | xMin = Math.min(xMin,rasterLayer.getDatasource().getExtent().minX());
|
||
579 | xMax = Math.max(rasterLayer.getDatasource().getExtent().maxX(),xMax);
|
||
580 | yMin = Math.min(yMin,rasterLayer.getDatasource().getExtent().minY());
|
||
581 | yMax = Math.max(yMax,rasterLayer.getDatasource().getExtent().maxY());
|
||
582 | cellSize = Math.min(cellSize,rasterLayer.getDatasource().getXCellSize());
|
||
583 | } |
||
584 | cp.getOutputExtent().setXRange(xMin,xMax); |
||
585 | cp.getOutputExtent().setYRange(yMin,yMax); |
||
586 | cp.getOutputExtent().setCellSize(cellSize); |
||
587 | getJTextRangoX1().setText(String.valueOf(cp.getOutputExtent().minX()));
|
||
588 | getJTextRangoX2().setText(String.valueOf(cp.getOutputExtent().maxX()));
|
||
589 | getJTextRangoY1().setText(String.valueOf(cp.getOutputExtent().minY()));
|
||
590 | getJTextRangoY2().setText(String.valueOf(cp.getOutputExtent().maxY()));
|
||
591 | getJTextCellSize().setText(String.valueOf(cellSize));
|
||
592 | cp.getOutputExtent().setCellSize(cellSize); |
||
593 | extentHasChanged(); |
||
594 | } |
||
595 | } |
||
596 | |||
597 | |||
598 | // Desabilita los componentes variables de la interfaz
|
||
599 | public void DesabilitarTodo(){ |
||
600 | |||
601 | rButtom1.setSelected(false);
|
||
602 | rButtom2.setSelected(false);
|
||
603 | rButtom3.setSelected(false);
|
||
604 | rButtom4.setSelected(false);
|
||
605 | jComboCapas.setEnabled(false);
|
||
606 | jTextRangoX1.setEditable(false);
|
||
607 | |||
608 | jTextRangoX1.setEnabled(false);
|
||
609 | jTextRangoX2.setEditable(false);
|
||
610 | jTextRangoX2.setEnabled(false);
|
||
611 | jTextRangoY1.setEditable(false);
|
||
612 | jTextRangoY1.setEnabled(false);
|
||
613 | jTextRangoY2.setEditable(false);
|
||
614 | jTextRangoY2.setEnabled(false);
|
||
615 | jTextNumFiCol1.setEditable(false);
|
||
616 | jTextCellSize.setEditable(false);
|
||
617 | jTextCellSize.setEnabled(false);
|
||
618 | jTextNumFiCol1.setEnabled(false);
|
||
619 | jTextNumFiCol2.setEditable(false);
|
||
620 | jTextNumFiCol2.setEnabled(false);
|
||
621 | jComboCapas.updateUI(); |
||
622 | |||
623 | } |
||
624 | |||
625 | |||
626 | public void extentHasChanged(){ |
||
627 | |||
628 | double dRangeX;
|
||
629 | double dRangeY;
|
||
630 | double dCellSize;
|
||
631 | int iRows;
|
||
632 | int iCols;
|
||
633 | // Se actualiza la X
|
||
634 | try {
|
||
635 | dRangeX = Math.abs(Double.parseDouble(getJTextRangoX2().getText()) |
||
636 | - Double.parseDouble(getJTextRangoX1().getText()));
|
||
637 | dCellSize = Double.parseDouble(getJTextCellSize().getText());
|
||
638 | iCols = (int) Math.floor(dRangeX / dCellSize); |
||
639 | getJTextNumFiCol2().setText(Integer.toString(iCols));
|
||
640 | |||
641 | } catch (NumberFormatException e) { |
||
642 | e.printStackTrace(); |
||
643 | return;
|
||
644 | } |
||
645 | |||
646 | // Se actualiza la Y
|
||
647 | try {
|
||
648 | dRangeY = Math.abs(Double.parseDouble(getJTextRangoY2().getText()) |
||
649 | - Double.parseDouble(getJTextRangoY1().getText()));
|
||
650 | dCellSize = Double.parseDouble(getJTextCellSize().getText());
|
||
651 | iRows = (int) Math.floor(dRangeY / dCellSize); |
||
652 | getJTextNumFiCol1().setText(Integer.toString(iRows));
|
||
653 | |||
654 | |||
655 | } catch (NumberFormatException e) { |
||
656 | |||
657 | e.printStackTrace(); |
||
658 | return;
|
||
659 | } |
||
660 | } |
||
661 | |||
662 | private void validateKeyTyping(KeyEvent event) { |
||
663 | String text = ((JTextField)event.getSource()).getText(); |
||
664 | jComboCapas.updateUI(); |
||
665 | switch (event.getKeyChar()) {
|
||
666 | |||
667 | case KeyEvent.VK_ENTER: |
||
668 | extentHasChanged(); |
||
669 | jComboCapas.updateUI(); |
||
670 | break;
|
||
671 | |||
672 | case KeyEvent.VK_BACK_SPACE: |
||
673 | extentHasChanged(); |
||
674 | break;
|
||
675 | case KeyEvent.VK_0 : |
||
676 | extentHasChanged(); |
||
677 | break;
|
||
678 | case KeyEvent.VK_1 : |
||
679 | extentHasChanged(); |
||
680 | break;
|
||
681 | case KeyEvent.VK_2 : |
||
682 | extentHasChanged(); |
||
683 | break;
|
||
684 | case KeyEvent.VK_3: |
||
685 | extentHasChanged(); |
||
686 | break;
|
||
687 | case KeyEvent.VK_4: |
||
688 | extentHasChanged(); |
||
689 | break;
|
||
690 | case KeyEvent.VK_5: |
||
691 | extentHasChanged(); |
||
692 | break;
|
||
693 | case KeyEvent.VK_6: |
||
694 | extentHasChanged(); |
||
695 | break;
|
||
696 | case KeyEvent.VK_7: |
||
697 | extentHasChanged(); |
||
698 | break;
|
||
699 | case KeyEvent.VK_8: |
||
700 | extentHasChanged(); |
||
701 | break;
|
||
702 | case KeyEvent.VK_9 : |
||
703 | extentHasChanged(); |
||
704 | break;
|
||
705 | } |
||
706 | } |
||
707 | |||
708 | public void actionPerformed(ActionEvent e) { |
||
709 | |||
710 | if (e.getSource()==getAceptar()){
|
||
711 | //FLyrRaster outpuLayer = null;
|
||
712 | //RasterMemoryDriver outputRMD = null;
|
||
713 | int nBand;
|
||
714 | String layerBand;
|
||
715 | String layerName;
|
||
716 | FLyrRasterSE rasterLayer; |
||
717 | Grid qWindow; |
||
718 | |||
719 | |||
720 | // Opcion de RadioButton2
|
||
721 | if (getRButtom2().isSelected()){
|
||
722 | cp.getOutputExtent().setXRange(Double.parseDouble(jTextRangoX1.getText()),Double.parseDouble(jTextRangoX2.getText())); |
||
723 | cp.getOutputExtent().setYRange(Double.parseDouble(jTextRangoY1.getText()), Double.parseDouble(jTextRangoY2.getText())); |
||
724 | cp.getOutputExtent().setCellSize(Double.parseDouble(jTextCellSize.getText()));
|
||
725 | } |
||
726 | |||
727 | |||
728 | // Opcion del RadioButton4
|
||
729 | if(getRButtom4().isSelected()){
|
||
730 | |||
731 | |||
732 | try {
|
||
733 | double dCoord;
|
||
734 | FLayer layer = layers.getLayer(jComboCapas.getSelectedIndex()); |
||
735 | |||
736 | cp.getOutputExtent().setXRange(layer.getFullExtent().getMinX(), |
||
737 | layer.getFullExtent().getMaxX()); |
||
738 | cp.getOutputExtent().setYRange(dCoord = layer.getFullExtent().getMinY(), |
||
739 | layer.getFullExtent().getMaxY()); |
||
740 | |||
741 | cp.getOutputExtent().setCellSize(Double.parseDouble(jTextCellSize.getText()));
|
||
742 | /*if (layer instanceof FLyrRaster){
|
||
743 | cp.getOutputExtent().setCellSize(((FLyrRaster) layer).getGrid().getXCellSize());
|
||
744 | }
|
||
745 | |||
746 | if (layer instanceof FLyrRaster){
|
||
747 | getJTextCellSize().setText(String.valueOf(cp.getOutputExtent().getCellSize()));
|
||
748 | }*/
|
||
749 | |||
750 | extentHasChanged(); |
||
751 | } catch (Exception ex) { |
||
752 | ex.printStackTrace(); |
||
753 | } |
||
754 | } |
||
755 | |||
756 | cp.getGridMath().setResultExtent(cp.getOutputExtent()); |
||
757 | |||
758 | /*
|
||
759 | * Rellenar el HasMap con el Grid corespondiente a cada variable.
|
||
760 | */
|
||
761 | for (int i=0;i<cp.getJTableVariables().getTableFormat().getRowCount();i++){ |
||
762 | layerBand= cp.getJTableVariables().getTableFormat().getValueAt(i,1).toString();
|
||
763 | layerName = layerBand.substring(0,layerBand.indexOf("[")); |
||
764 | nBand = Integer.valueOf(layerBand.substring(layerBand.lastIndexOf("Band")+4,layerBand.lastIndexOf("]"))).intValue(); |
||
765 | rasterLayer = (FLyrRasterSE)mapContext.getLayers().getLayer(layerName); |
||
766 | qWindow=null;
|
||
767 | try {
|
||
768 | qWindow = new Grid(rasterLayer.getDatasource(),new int[]{nBand-1}); |
||
769 | |||
770 | } catch (RasterBufferInvalidException e1) {
|
||
771 | // TODO Auto-generated catch block
|
||
772 | e1.printStackTrace(); |
||
773 | } |
||
774 | // Establecer el m?todo de interpolaci?n.
|
||
775 | /*if (rasterLayer.getDatasource().getDataType() == DataBuffer.TYPE_FLOAT ||
|
||
776 | rasterLayer.getDatasource().getDataType() == DataBuffer.TYPE_DOUBLE)
|
||
777 | qWindow.setInterpolationMethod(GrGridWrapperInterpolated.INTERPOLATION_BSpline);
|
||
778 | else
|
||
779 | qWindow.setInterpolationMethod(GridWrapperInterpolated.INTERPOLATION_NearestNeighbour);*/
|
||
780 | cp.getQWindowsHash().put(cp.getJTableVariables().getTableFormat().getValueAt(i,0).toString(),qWindow);
|
||
781 | } |
||
782 | cp.getGridMath().setParams(cp.getQWindowsHash()); |
||
783 | |||
784 | /*
|
||
785 | * Lanzar el c?lculo.
|
||
786 | */
|
||
787 | //String expression, HashMap params
|
||
788 | |||
789 | GridMathProcess process = new GridMathProcess(cp.getJTextExpression().getText(),cp.getGridMath().getParams(),cp.getOutputExtent(),mapContext,getJTextNombreCapa().getText());
|
||
790 | IncrementableTask incrementableTask = new IncrementableTask(process);
|
||
791 | process.setIncrementableTask(incrementableTask); |
||
792 | incrementableTask.showWindow(); |
||
793 | process.start(); |
||
794 | incrementableTask.start(); |
||
795 | PluginServices.getMDIManager().closeWindow(this);
|
||
796 | |||
797 | } |
||
798 | |||
799 | else if (e.getSource()==getCancelar()){ |
||
800 | |||
801 | PluginServices.getMDIManager().closeWindow(this);
|
||
802 | } |
||
803 | |||
804 | //Radiobutton1
|
||
805 | else if (e.getSource()==getRButtom1()){ |
||
806 | |||
807 | InicializarOpcion(); |
||
808 | |||
809 | } |
||
810 | |||
811 | // RadioButtom2
|
||
812 | else if (e.getSource()==getRButtom2()){ |
||
813 | |||
814 | DesabilitarTodo(); |
||
815 | rButtom2.setSelected(true);
|
||
816 | getJTextRangoX1().setEnabled(true);
|
||
817 | getJTextRangoX1().setEditable(true);
|
||
818 | getJTextRangoX2().setEnabled(true);
|
||
819 | getJTextRangoX2().setEditable(true);
|
||
820 | getJTextRangoY1().setEnabled(true);
|
||
821 | getJTextRangoY1().setEditable(true);
|
||
822 | getJTextRangoY2().setEditable(true);
|
||
823 | getJTextRangoY2().setEnabled(true);
|
||
824 | getJTextCellSize().setEditable(true);
|
||
825 | getJTextCellSize().setEnabled(true);
|
||
826 | 12184 | dguerrero | //getJTextCellSize().setText("1.0");
|
827 | 12181 | dguerrero | |
828 | /*try {
|
||
829 | //cp.getOutputExtent().setXRange
|
||
830 | cp.getOutputExtent().setXRange(new Double(getJTextRangoX1().getText()).doubleValue(), new Double(getJTextRangoX2().getText()).doubleValue());
|
||
831 | cp.getOutputExtent().setXRange(new Double(getJTextRangoY1().getText()).doubleValue(), new Double(getJTextRangoY2().getText()).doubleValue());
|
||
832 | cp.getOutputExtent().setCellSize(1.0);
|
||
833 | |||
834 | getJTextRangoX1().setText(String.valueOf(cp.getOutputExtent().getXMin()));
|
||
835 | getJTextRangoX2().setText(String.valueOf(cp.getOutputExtent().getXMax()));
|
||
836 | getJTextRangoY1().setText(String.valueOf(cp.getOutputExtent().getYMin()));
|
||
837 | getJTextRangoY2().setText(String.valueOf(cp.getOutputExtent().getYMax()));
|
||
838 | |||
839 | dCoord =m_MapContext.getViewPort().getAdjustedExtent().getMinX();
|
||
840 | getJTextRangoX1().setText(new Double(dCoord).toString());
|
||
841 | dCoord = m_MapContext.getViewPort().getAdjustedExtent().getMaxX();
|
||
842 | getJTextRangoX2().setText(new Double(dCoord).toString());
|
||
843 | dCoord =m_MapContext.getViewPort().getAdjustedExtent().getMinY();
|
||
844 | getJTextRangoY1().setText(new Double(dCoord).toString());
|
||
845 | dCoord = m_MapContext.getViewPort().getAdjustedExtent().getMaxY();
|
||
846 | getJTextRangoY2().setText(new Double(dCoord).toString());
|
||
847 | //setTextFieldsEnabled(false);
|
||
848 | extentHasChanged();
|
||
849 | } catch (Exception ex) {}
|
||
850 | |||
851 | */
|
||
852 | } |
||
853 | |||
854 | |||
855 | // RadioButtom3
|
||
856 | else if (e.getSource()==getRButtom3()){ |
||
857 | |||
858 | DesabilitarTodo(); |
||
859 | rButtom3.setSelected(true);
|
||
860 | jTextCellSize.setEditable(true);
|
||
861 | jTextCellSize.setEnabled(true);
|
||
862 | getJTextCellSize().setText("1.0");
|
||
863 | double dCoord;
|
||
864 | |||
865 | cp.getOutputExtent().setXRange(mapContext.getViewPort().getAdjustedExtent().getMinX(), |
||
866 | mapContext.getViewPort().getAdjustedExtent().getMaxX()); |
||
867 | |||
868 | cp.getOutputExtent().setYRange(mapContext.getViewPort().getAdjustedExtent().getMinY(), |
||
869 | mapContext.getViewPort().getAdjustedExtent().getMaxY()); |
||
870 | |||
871 | //Tomamos y Ajustamos para correcta visualizacion del double
|
||
872 | dCoord= cp.getOutputExtent().minX(); |
||
873 | getJTextRangoX1().setText(" "+String.valueOf(dCoord)); |
||
874 | getJTextRangoX1().setHorizontalAlignment(JTextField.LEFT);
|
||
875 | |||
876 | // Tomamos y Ajustamos para correcta visualizacin el double
|
||
877 | dCoord= cp.getOutputExtent().maxX(); |
||
878 | getJTextRangoX2().setText(" "+String.valueOf(dCoord)); |
||
879 | getJTextRangoX2().setHorizontalAlignment(JTextField.LEFT);
|
||
880 | |||
881 | //Tomamos y Ajustamos para correcta visualizacin el double
|
||
882 | dCoord= cp.getOutputExtent().minY(); |
||
883 | getJTextRangoY1().setText(" "+String.valueOf(dCoord)); |
||
884 | getJTextRangoY1().setAlignmentX(JTextField.LEFT);
|
||
885 | |||
886 | //Tomamos y Ajustamos para correcta visualizacin el double
|
||
887 | dCoord= cp.getOutputExtent().maxY(); |
||
888 | getJTextRangoY2().setText(" "+String.valueOf(dCoord)); |
||
889 | getJTextRangoY2().setAlignmentX(JTextField.LEFT);
|
||
890 | |||
891 | getJTextRangoX1().updateUI(); |
||
892 | getJTextRangoX2().updateUI(); |
||
893 | getJTextRangoY1().updateUI(); |
||
894 | getJTextRangoY2().updateUI(); |
||
895 | /*dCoord =m_MapContext.getViewPort().getAdjustedExtent().getMinX();
|
||
896 | getJTextRangoX1().setText(new Double(dCoord).toString());
|
||
897 | dCoord = m_MapContext.getViewPort().getAdjustedExtent().getMaxX();
|
||
898 | getJTextRangoX2().setText(new Double(dCoord).toString());
|
||
899 | dCoord =m_MapContext.getViewPort().getAdjustedExtent().getMinY();
|
||
900 | getJTextRangoY1().setText(new Double(dCoord).toString());
|
||
901 | dCoord = m_MapContext.getViewPort().getAdjustedExtent().getMaxY();
|
||
902 | getJTextRangoY2().setText(new Double(dCoord).toString());*/
|
||
903 | //setTextFieldsEnabled(false);
|
||
904 | extentHasChanged(); |
||
905 | } |
||
906 | |||
907 | // RadioButtom4
|
||
908 | else if (e.getSource()==getRButtom4()){ |
||
909 | |||
910 | DesabilitarTodo(); |
||
911 | rButtom4.setSelected(true);
|
||
912 | jComboCapas.setEnabled(true);
|
||
913 | jTextCellSize.setEditable(true);
|
||
914 | jTextCellSize.setEnabled(true);
|
||
915 | getJComboCapas().updateUI(); |
||
916 | textsFromLayer(); |
||
917 | } |
||
918 | |||
919 | else if (e.getSource()==getRadioFile()){ |
||
920 | rButtonFile.setSelected(true);
|
||
921 | } |
||
922 | |||
923 | else if (e.getSource()==getRadioMemory()){ |
||
924 | rButtonMemory.setSelected(true);
|
||
925 | } |
||
926 | |||
927 | // ComboCapas
|
||
928 | else if (e.getSource()==getJComboCapas()){ |
||
929 | textsFromLayer(); |
||
930 | |||
931 | } |
||
932 | } |
||
933 | |||
934 | private void textsFromLayer(){ |
||
935 | double dCoord;
|
||
936 | if (getRButtom4().isSelected()){
|
||
937 | try {
|
||
938 | FLayer layer = layers.getLayer(jComboCapas.getSelectedIndex()); |
||
939 | dCoord = layer.getFullExtent().getMinX(); |
||
940 | getJTextRangoX1().setText(new Double(dCoord).toString()); |
||
941 | dCoord = layer.getFullExtent().getMaxX(); |
||
942 | getJTextRangoX2().setText(new Double(dCoord).toString()); |
||
943 | dCoord = layer.getFullExtent().getMinY(); |
||
944 | getJTextRangoY1().setText(new Double(dCoord).toString()); |
||
945 | dCoord = layer.getFullExtent().getMaxY(); |
||
946 | getJTextRangoY2().setText(new Double(dCoord).toString()); |
||
947 | if (layer instanceof FLyrRasterSE){ |
||
948 | getJTextCellSize().setText(new Double( |
||
949 | ((FLyrRasterSE) layer).getDatasource().getXCellSize()) |
||
950 | .toString()); |
||
951 | } |
||
952 | extentHasChanged(); |
||
953 | } catch (Exception ex) {} |
||
954 | } |
||
955 | |||
956 | } |
||
957 | |||
958 | // Eventos de teclado
|
||
959 | public void keyReleased(KeyEvent e) { |
||
960 | |||
961 | if(e.getSource()==getJTextRangoX1()){
|
||
962 | validateKeyTyping(e); |
||
963 | } |
||
964 | |||
965 | if(e.getSource()==getJTextRangoX2()){
|
||
966 | validateKeyTyping(e); |
||
967 | } |
||
968 | |||
969 | if(e.getSource()==getJTextRangoY1()){
|
||
970 | validateKeyTyping(e); |
||
971 | } |
||
972 | |||
973 | if(e.getSource()==getJTextRangoY2()){
|
||
974 | validateKeyTyping(e); |
||
975 | } |
||
976 | |||
977 | if (e.getSource()==getJTextCellSize()){
|
||
978 | |||
979 | validateKeyTyping(e); |
||
980 | } |
||
981 | } |
||
982 | 12184 | dguerrero | |
983 | /**
|
||
984 | * Especificar el nombre de la nueva capa para el recuadro de texto asign?ndo
|
||
985 | * en cada llamada un nombre consecutivo.
|
||
986 | */
|
||
987 | public void setNewLayerText() { |
||
988 | getJTextNombreCapa().setText("NewLayer_" + RasterModule.layerCount);
|
||
989 | RasterModule.layerCount++; |
||
990 | } |
||
991 | 12181 | dguerrero | |
992 | |||
993 | |||
994 | |||
995 | |||
996 | |||
997 | public void focusGained(FocusEvent arg0) { |
||
998 | // TODO Auto-generated method stub
|
||
999 | |||
1000 | } |
||
1001 | |||
1002 | public void focusLost(FocusEvent arg0) { |
||
1003 | // TODO Auto-generated method stub
|
||
1004 | |||
1005 | } |
||
1006 | |||
1007 | |||
1008 | |||
1009 | public void keyPressed(KeyEvent arg0) { |
||
1010 | // TODO Auto-generated method stub
|
||
1011 | |||
1012 | } |
||
1013 | |||
1014 | |||
1015 | |||
1016 | public void keyTyped(KeyEvent arg0) { |
||
1017 | // TODO Auto-generated method stub
|
||
1018 | |||
1019 | } |
||
1020 | } |