root / trunk / extensions / extJDBC / src / com / iver / cit / gvsig / jdbc_spatial / gui / jdbcwizard / DBLayerDefinitionPanel.java @ 6703
History | View | Annotate | Download (14.2 KB)
1 |
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard; |
---|---|
2 |
|
3 |
import java.awt.event.ActionEvent; |
4 |
import java.awt.event.ActionListener; |
5 |
import java.awt.geom.Rectangle2D; |
6 |
|
7 |
import javax.swing.ButtonGroup; |
8 |
import javax.swing.DefaultListModel; |
9 |
import javax.swing.JLabel; |
10 |
import javax.swing.JList; |
11 |
import javax.swing.JOptionPane; |
12 |
import javax.swing.JPanel; |
13 |
import javax.swing.JRadioButton; |
14 |
import javax.swing.JScrollPane; |
15 |
import javax.swing.JTextField; |
16 |
|
17 |
import org.gvsig.gui.beans.swing.JButton; |
18 |
|
19 |
import com.iver.andami.PluginServices; |
20 |
import com.iver.andami.ui.mdiManager.View; |
21 |
import com.iver.utiles.swing.wizard.Step; |
22 |
import com.iver.utiles.swing.wizard.WizardControl; |
23 |
/**
|
24 |
* DOCUMENT ME!
|
25 |
*
|
26 |
* @author Fernando Gonz?lez Cort?s
|
27 |
*/
|
28 |
public class DBLayerDefinitionPanel extends JPanel implements Step { |
29 |
private JList lstTables = null; |
30 |
private JLabel jLabel = null; |
31 |
private JPanel pnlExtent = null; |
32 |
private JLabel jLabel1 = null; |
33 |
private JTextField txtMinX = null; |
34 |
private JLabel jLabel2 = null; |
35 |
private JTextField txtMaxX = null; |
36 |
private JLabel jLabel3 = null; |
37 |
private JTextField txtMinY = null; |
38 |
private JLabel jLabel4 = null; |
39 |
private JTextField txtMaxY = null; |
40 |
private DefaultListModel lstTablesModel = new DefaultListModel(); |
41 |
private JRadioButton radFullTable = null; |
42 |
private JRadioButton radWorkingArea = null; |
43 |
private boolean advanced = false; |
44 |
private JScrollPane jScrollPane = null; |
45 |
private JPanel jPanel = null; |
46 |
private JTextField txtLayerName = null; |
47 |
private JPanel jPanel1 = null; |
48 |
private JLabel jLabel5 = null; |
49 |
|
50 |
private JButton jButton = null; |
51 |
/**
|
52 |
* This is the default constructor
|
53 |
*/
|
54 |
public DBLayerDefinitionPanel() {
|
55 |
super();
|
56 |
initialize(); |
57 |
} |
58 |
|
59 |
/**
|
60 |
* This method initializes this
|
61 |
*/
|
62 |
private void initialize() { |
63 |
jLabel = new JLabel(); |
64 |
this.setLayout(null); |
65 |
this.setSize(509, 271); |
66 |
this.setPreferredSize(new java.awt.Dimension(1260, 180)); |
67 |
jLabel.setText(PluginServices.getText(this, "seleccione_tabla") + ":"); |
68 |
//jLabel.setPreferredSize(new java.awt.Dimension(330, 15));
|
69 |
jLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); |
70 |
jLabel.setBounds(20, 8, 460, 15); |
71 |
jLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT); |
72 |
this.add(getJPanel1(), null); |
73 |
this.add(getJButton(), null); |
74 |
this.add(getPnlExtent(), null); |
75 |
this.add(getJPanel(), null); |
76 |
this.add(getJScrollPane(), null); |
77 |
this.add(jLabel, null); |
78 |
ButtonGroup bt = new ButtonGroup(); |
79 |
bt.add(getRadFullTable()); |
80 |
bt.add(getRadWorkingArea()); |
81 |
enableExtent(false);
|
82 |
} |
83 |
|
84 |
/**
|
85 |
* This method initializes lstTables
|
86 |
*
|
87 |
* @return javax.swing.JList
|
88 |
*/
|
89 |
private JList getLstTables() { |
90 |
if (lstTables == null) { |
91 |
lstTables = new JList(); |
92 |
lstTables.setModel(lstTablesModel); |
93 |
lstTables.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); |
94 |
lstTables.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
|
95 |
public void valueChanged(javax.swing.event.ListSelectionEvent e) { |
96 |
String aux = (String) lstTables.getSelectedValue(); |
97 |
getTxtLayerName().setText(aux); |
98 |
} |
99 |
}); |
100 |
} |
101 |
|
102 |
return lstTables;
|
103 |
} |
104 |
|
105 |
/**
|
106 |
* This method initializes pnlExtent
|
107 |
*
|
108 |
* @return javax.swing.JPanel
|
109 |
*/
|
110 |
private JPanel getPnlExtent() { |
111 |
if (pnlExtent == null) { |
112 |
jLabel4 = new JLabel(); |
113 |
jLabel3 = new JLabel(); |
114 |
jLabel2 = new JLabel(); |
115 |
jLabel1 = new JLabel(); |
116 |
pnlExtent = new JPanel(); |
117 |
pnlExtent.setLayout(null);
|
118 |
pnlExtent.setPreferredSize(new java.awt.Dimension(400,60)); |
119 |
jLabel1.setText(PluginServices.getText(this, "minx") + ":"); |
120 |
jLabel1.setBounds(9, 25, 50, 15); |
121 |
jLabel2.setText(PluginServices.getText(this, "maxx") + ":"); |
122 |
jLabel2.setBounds(9, 80, 50, 15); |
123 |
jLabel3.setText(PluginServices.getText(this, "miny") + ":"); |
124 |
jLabel3.setBounds(9, 48, 50, 15); |
125 |
jLabel4.setText(PluginServices.getText(this, "maxy") + ":"); |
126 |
jLabel4.setBounds(9, 103, 50, 15); |
127 |
pnlExtent.setBounds(20, 320, 194, 131); |
128 |
String strWorkingArea = PluginServices.getText(this,"area_trabajo"); |
129 |
pnlExtent.setBorder(javax.swing.BorderFactory.createTitledBorder(null, strWorkingArea, javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
130 |
pnlExtent.add(getTxtMaxY(), null);
|
131 |
pnlExtent.add(jLabel4, null);
|
132 |
pnlExtent.add(getTxtMinY(), null);
|
133 |
pnlExtent.add(jLabel3, null);
|
134 |
pnlExtent.add(getTxtMaxX(), null);
|
135 |
pnlExtent.add(jLabel2, null);
|
136 |
pnlExtent.add(getTxtMinX(), null);
|
137 |
pnlExtent.add(jLabel1, null);
|
138 |
} |
139 |
|
140 |
return pnlExtent;
|
141 |
} |
142 |
|
143 |
/**
|
144 |
* This method initializes txtMinX
|
145 |
*
|
146 |
* @return javax.swing.JTextField
|
147 |
*/
|
148 |
private JTextField getTxtMinX() { |
149 |
if (txtMinX == null) { |
150 |
txtMinX = new JTextField(); |
151 |
txtMinX.setPreferredSize(new java.awt.Dimension(100, 19)); |
152 |
txtMinX.setBounds(65, 21, 118, 19); |
153 |
} |
154 |
|
155 |
return txtMinX;
|
156 |
} |
157 |
|
158 |
/**
|
159 |
* This method initializes txtMaxX
|
160 |
*
|
161 |
* @return javax.swing.JTextField
|
162 |
*/
|
163 |
private JTextField getTxtMaxX() { |
164 |
if (txtMaxX == null) { |
165 |
txtMaxX = new JTextField(); |
166 |
txtMaxX.setPreferredSize(new java.awt.Dimension(100, 19)); |
167 |
txtMaxX.setBounds(65, 76, 118, 19); |
168 |
} |
169 |
|
170 |
return txtMaxX;
|
171 |
} |
172 |
|
173 |
/**
|
174 |
* This method initializes txtMinY
|
175 |
*
|
176 |
* @return javax.swing.JTextField
|
177 |
*/
|
178 |
private JTextField getTxtMinY() { |
179 |
if (txtMinY == null) { |
180 |
txtMinY = new JTextField(); |
181 |
txtMinY.setPreferredSize(new java.awt.Dimension(100, 19)); |
182 |
txtMinY.setBounds(65, 44, 118, 19); |
183 |
} |
184 |
|
185 |
return txtMinY;
|
186 |
} |
187 |
|
188 |
/**
|
189 |
* This method initializes txtMaxY
|
190 |
*
|
191 |
* @return javax.swing.JTextField
|
192 |
*/
|
193 |
private JTextField getTxtMaxY() { |
194 |
if (txtMaxY == null) { |
195 |
txtMaxY = new JTextField(); |
196 |
txtMaxY.setPreferredSize(new java.awt.Dimension(100, 19)); |
197 |
txtMaxY.setBounds(65, 99, 118, 19); |
198 |
} |
199 |
|
200 |
return txtMaxY;
|
201 |
} |
202 |
|
203 |
/**
|
204 |
* DOCUMENT ME!
|
205 |
*
|
206 |
* @param tables DOCUMENT ME!
|
207 |
*/
|
208 |
public void setTables(String[] tables) { |
209 |
lstTablesModel = new DefaultListModel(); |
210 |
|
211 |
for (int i = 0; i < tables.length; i++) { |
212 |
lstTablesModel.addElement(tables[i]); |
213 |
} |
214 |
|
215 |
getLstTables().setModel(lstTablesModel); |
216 |
} |
217 |
|
218 |
/**
|
219 |
* DOCUMENT ME!
|
220 |
*
|
221 |
* @param rect DOCUMENT ME!
|
222 |
*/
|
223 |
public void setExtent(Rectangle2D rect) { |
224 |
getTxtMinX().setText(String.valueOf(rect.getMinX()));
|
225 |
getTxtMinY().setText(String.valueOf(rect.getMinY()));
|
226 |
getTxtMaxX().setText(String.valueOf(rect.getMaxX()));
|
227 |
getTxtMaxY().setText(String.valueOf(rect.getMaxY()));
|
228 |
} |
229 |
|
230 |
/**
|
231 |
* DOCUMENT ME!
|
232 |
*
|
233 |
* @return DOCUMENT ME!
|
234 |
*/
|
235 |
public Rectangle2D getExtent() { |
236 |
if (getRadFullTable().isSelected()) {
|
237 |
return null; |
238 |
} else {
|
239 |
return new Rectangle2D.Double(Double.parseDouble( |
240 |
getTxtMinX().getText()), |
241 |
Double.parseDouble(getTxtMinY().getText()),
|
242 |
Double.parseDouble(getTxtMaxX().getText()) -
|
243 |
Double.parseDouble(getTxtMinX().getText()),
|
244 |
Double.parseDouble(getTxtMaxY().getText()) -
|
245 |
Double.parseDouble(getTxtMinY().getText()));
|
246 |
} |
247 |
} |
248 |
|
249 |
/**
|
250 |
* DOCUMENT ME!
|
251 |
*
|
252 |
* @return DOCUMENT ME!
|
253 |
*/
|
254 |
public boolean done() { |
255 |
boolean done = (getTable() != null) && (!getLayerName().trim().equals("")); |
256 |
|
257 |
if (getRadWorkingArea().isSelected()) {
|
258 |
done = done && (getTxtMaxX().getText().length() > 0) &&
|
259 |
(getTxtMaxY().getText().length() > 0) &&
|
260 |
(getTxtMinX().getText().length() > 0) &&
|
261 |
(getTxtMinY().getText().length() > 0);
|
262 |
} |
263 |
|
264 |
return done;
|
265 |
} |
266 |
|
267 |
/**
|
268 |
* DOCUMENT ME!
|
269 |
*
|
270 |
* @return DOCUMENT ME!
|
271 |
*/
|
272 |
public String getTable() { |
273 |
return (String) getLstTables().getSelectedValue(); |
274 |
} |
275 |
|
276 |
/**
|
277 |
* DOCUMENT ME!
|
278 |
*
|
279 |
* @return DOCUMENT ME!
|
280 |
*/
|
281 |
public String getLayerName() { |
282 |
return (String) getTxtLayerName().getText(); |
283 |
} |
284 |
|
285 |
public String getWhere(){ |
286 |
throw new UnsupportedOperationException(); |
287 |
} |
288 |
|
289 |
/**
|
290 |
* This method initializes radFullTable
|
291 |
*
|
292 |
* @return javax.swing.JRadioButton
|
293 |
*/
|
294 |
private JRadioButton getRadFullTable() { |
295 |
if (radFullTable == null) { |
296 |
radFullTable = new JRadioButton(); |
297 |
radFullTable.setText(PluginServices.getText(this, "toda_la_tabla")+":"); |
298 |
radFullTable.setSelected(true);
|
299 |
radFullTable.setPreferredSize(new java.awt.Dimension(189,23)); |
300 |
radFullTable.addActionListener(new ActionListener() { |
301 |
public void actionPerformed(ActionEvent e) { |
302 |
enableExtent(radWorkingArea.isSelected()); |
303 |
} |
304 |
}); |
305 |
} |
306 |
|
307 |
return radFullTable;
|
308 |
} |
309 |
|
310 |
/**
|
311 |
* DOCUMENT ME!
|
312 |
*
|
313 |
* @param enable DOCUMENT ME!
|
314 |
*/
|
315 |
private void enableExtent(boolean enable) { |
316 |
for (int i = 0; i < pnlExtent.getComponentCount(); i++) { |
317 |
pnlExtent.getComponent(i).setEnabled(enable); |
318 |
} |
319 |
getJButton().setEnabled(enable); |
320 |
} |
321 |
|
322 |
/**
|
323 |
* This method initializes radWorkingArea
|
324 |
*
|
325 |
* @return javax.swing.JRadioButton
|
326 |
*/
|
327 |
private JRadioButton getRadWorkingArea() { |
328 |
if (radWorkingArea == null) { |
329 |
radWorkingArea = new JRadioButton(); |
330 |
radWorkingArea.setText(PluginServices.getText(this, "area_trabajo")+":"); |
331 |
radWorkingArea.setPreferredSize(new java.awt.Dimension(189,23)); |
332 |
radWorkingArea.addActionListener(new ActionListener() { |
333 |
public void actionPerformed(ActionEvent e) { |
334 |
enableExtent(radWorkingArea.isSelected()); |
335 |
} |
336 |
}); |
337 |
} |
338 |
|
339 |
return radWorkingArea;
|
340 |
} |
341 |
|
342 |
/**
|
343 |
* This method initializes jScrollPane
|
344 |
*
|
345 |
* @return javax.swing.JScrollPane
|
346 |
*/
|
347 |
private JScrollPane getJScrollPane() { |
348 |
if (jScrollPane == null) { |
349 |
jScrollPane = new JScrollPane(); |
350 |
jScrollPane.setBounds(20, 25, 460, 175); |
351 |
jScrollPane.setViewportView(getLstTables()); |
352 |
//jScrollPane.setPreferredSize(new java.awt.Dimension(270, 110));
|
353 |
} |
354 |
|
355 |
return jScrollPane;
|
356 |
} |
357 |
|
358 |
/**
|
359 |
* @see com.iver.utiles.swing.wizard.Step#init(com.iver.utiles.swing.wizard.WizardControl)
|
360 |
*/
|
361 |
public void init(WizardControl w) { |
362 |
} |
363 |
|
364 |
/**
|
365 |
* This method initializes jPanel
|
366 |
*
|
367 |
* @return javax.swing.JPanel
|
368 |
*/
|
369 |
private JPanel getJPanel() { |
370 |
if (jPanel == null) { |
371 |
jPanel = new JPanel(); |
372 |
jPanel.setBounds(20, 230, 200, 55); |
373 |
jPanel.add(getRadFullTable(), null);
|
374 |
jPanel.add(getRadWorkingArea(), null);
|
375 |
|
376 |
} |
377 |
|
378 |
return jPanel;
|
379 |
} |
380 |
|
381 |
/**
|
382 |
* This method initializes jTextField
|
383 |
*
|
384 |
* @return javax.swing.JTextField
|
385 |
*/
|
386 |
private JTextField getTxtLayerName() { |
387 |
if (txtLayerName == null) { |
388 |
txtLayerName = new JTextField(); |
389 |
//txtLayerName.setPreferredSize(new java.awt.Dimension(100, 19));
|
390 |
txtLayerName.setBounds(230, 5, 230, 19); |
391 |
} |
392 |
|
393 |
return txtLayerName;
|
394 |
} |
395 |
|
396 |
/**
|
397 |
* This method initializes jPanel1
|
398 |
*
|
399 |
* @return javax.swing.JPanel
|
400 |
*/
|
401 |
private JPanel getJPanel1() { |
402 |
if (jPanel1 == null) { |
403 |
jLabel5 = new JLabel(); |
404 |
jPanel1 = new JPanel(); |
405 |
jLabel5.setText(PluginServices.getText(this, "nombre_capa")+":"); |
406 |
jLabel5.setBounds(0, 5, 220, 15); |
407 |
jPanel1.setLayout(null);
|
408 |
//jPanel1.setPreferredSize(new java.awt.Dimension(383,29));
|
409 |
jPanel1.setBounds(20, 200, 460, 25); |
410 |
jPanel1.add(getTxtLayerName(), null);
|
411 |
jPanel1.add(jLabel5, null);
|
412 |
} |
413 |
|
414 |
return jPanel1;
|
415 |
} |
416 |
|
417 |
/**
|
418 |
* @return
|
419 |
*/
|
420 |
public Rectangle2D getWorkingArea() { |
421 |
if (getRadWorkingArea().isSelected()) {
|
422 |
return new Rectangle2D.Double( |
423 |
Double.parseDouble(getTxtMinX().getText()),
|
424 |
Double.parseDouble(getTxtMinY().getText()),
|
425 |
Double.parseDouble(getTxtMaxX().getText()) - Double.parseDouble(getTxtMinX().getText()), |
426 |
Double.parseDouble(getTxtMaxY().getText()) - Double.parseDouble(getTxtMinY().getText()) |
427 |
); |
428 |
}else{
|
429 |
return null; |
430 |
} |
431 |
} |
432 |
/**
|
433 |
* This method initializes jButton
|
434 |
*
|
435 |
* @return javax.swing.JButton
|
436 |
*/
|
437 |
private JButton getJButton() { |
438 |
if (jButton == null) { |
439 |
jButton = new JButton(); |
440 |
jButton.setText(PluginServices.getText(this, "importar_extent")+":"); |
441 |
jButton.setBounds(20, 290, 300, 27); |
442 |
jButton.addActionListener(new ActionListener() { |
443 |
public void actionPerformed(ActionEvent e) { |
444 |
View v = PluginServices.getMDIManager().getActiveView();
|
445 |
com.iver.cit.gvsig.gui.View vista = (com.iver.cit.gvsig.gui.View) v; |
446 |
Rectangle2D r = vista.getModel().getMapContext().getViewPort().getAdjustedExtent();
|
447 |
if (r == null) |
448 |
{ |
449 |
JOptionPane.showMessageDialog(null,PluginServices.getText(this, "aviso_sin_extent_de_referencia")); |
450 |
return;
|
451 |
} |
452 |
|
453 |
getTxtMinX().setText(Double.toString(r.getMinX()));
|
454 |
getTxtMinY().setText(Double.toString(r.getMinY()));
|
455 |
getTxtMaxX().setText(Double.toString(r.getMaxX()));
|
456 |
getTxtMaxY().setText(Double.toString(r.getMaxY()));
|
457 |
} |
458 |
}); |
459 |
} |
460 |
return jButton;
|
461 |
} |
462 |
} // @jve:decl-index=0:visual-constraint="10,10"
|