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