root / branches / v10 / extensions / extSDE / src / com / iver / cit / gvsig / sde / gui / sdewizard / ConnectionPanel.java @ 10942
History | View | Annotate | Download (15.6 KB)
1 |
package com.iver.cit.gvsig.sde.gui.sdewizard; |
---|---|
2 |
|
3 |
import java.awt.BorderLayout; |
4 |
import java.awt.FlowLayout; |
5 |
import java.awt.event.ActionEvent; |
6 |
import java.awt.event.ActionListener; |
7 |
import java.util.HashMap; |
8 |
import java.util.Iterator; |
9 |
|
10 |
import javax.swing.DefaultComboBoxModel; |
11 |
import javax.swing.JLabel; |
12 |
import javax.swing.JPanel; |
13 |
import javax.swing.JPasswordField; |
14 |
import javax.swing.JTextField; |
15 |
|
16 |
import com.hardcode.driverManager.DriverLoadException; |
17 |
import com.iver.andami.PluginServices; |
18 |
import com.iver.cit.gvsig.fmap.drivers.VectorialDatabaseDriver; |
19 |
import com.iver.cit.gvsig.fmap.layers.LayerFactory; |
20 |
import com.iver.utiles.NotExistInXMLEntity; |
21 |
import com.iver.utiles.XMLEntity; |
22 |
import com.iver.utiles.swing.JComboBox; |
23 |
import com.iver.utiles.swing.wizard.Step; |
24 |
import com.iver.utiles.swing.wizard.WizardControl; |
25 |
|
26 |
|
27 |
/**
|
28 |
* DOCUMENT ME!
|
29 |
* @author Fernando Gonz?lez Cort?s
|
30 |
*/
|
31 |
public class ConnectionPanel extends JPanel implements Step { |
32 |
private static String passw = null; |
33 |
|
34 |
/**
|
35 |
* @uml.property name="jPanelLabels"
|
36 |
*/
|
37 |
private JPanel jPanelLabels = null; |
38 |
private JLabel jLabel = null; |
39 |
/**
|
40 |
* @uml.property name="txtHost"
|
41 |
*/
|
42 |
private JTextField txtHost = null; |
43 |
/**
|
44 |
* @uml.property name="jPanelTexts"
|
45 |
*/
|
46 |
private JPanel jPanelTexts = null; |
47 |
/**
|
48 |
* @uml.property name="txtPort"
|
49 |
*/
|
50 |
private JTextField txtPort = null; |
51 |
private JLabel jLabel1 = null; |
52 |
private JLabel jLabel2 = null; |
53 |
/**
|
54 |
* @uml.property name="txtUser"
|
55 |
*/
|
56 |
private JTextField txtUser = null; |
57 |
private JLabel jLabel3 = null; |
58 |
/**
|
59 |
* @uml.property name="txtPassword"
|
60 |
*/
|
61 |
private JPasswordField txtPassword = null; |
62 |
private JLabel jLabel4 = null; |
63 |
/**
|
64 |
* @uml.property name="txtBD"
|
65 |
*/
|
66 |
private JTextField txtBD = null; |
67 |
private JLabel jLabel5 = null; |
68 |
/**
|
69 |
* @uml.property name="cmbDriver"
|
70 |
*/
|
71 |
private JComboBox cmbDriver = null; |
72 |
/**
|
73 |
* @uml.property name="jLabel6"
|
74 |
*/
|
75 |
private JLabel jLabel6 = null; |
76 |
/**
|
77 |
* @uml.property name="cmbName"
|
78 |
*/
|
79 |
private com.iver.utiles.swing.JComboBox cmbName = null; |
80 |
private HashMap cs = new HashMap(); |
81 |
|
82 |
/**
|
83 |
* @uml.property name="jPanel"
|
84 |
*/
|
85 |
private JPanel jPanel = null; |
86 |
|
87 |
|
88 |
|
89 |
/**
|
90 |
* This is the default constructor
|
91 |
*/
|
92 |
public ConnectionPanel() {
|
93 |
super();
|
94 |
initialize(); |
95 |
} |
96 |
|
97 |
/**
|
98 |
* This method initializes this
|
99 |
*/
|
100 |
private void initialize() { |
101 |
this.setLayout(null); |
102 |
this.setSize(335, 240); |
103 |
this.add(getJPanel(), null); |
104 |
|
105 |
if (passw != null) |
106 |
txtPassword.setText(passw); |
107 |
|
108 |
} |
109 |
|
110 |
/**
|
111 |
* This method initializes jPanel
|
112 |
* @return javax.swing.JPanel
|
113 |
* @uml.property name="jPanelLabels"
|
114 |
*/
|
115 |
private JPanel getJPanelLabels() { |
116 |
if (jPanelLabels == null) { |
117 |
FlowLayout flowLayout3 = new FlowLayout(); |
118 |
flowLayout3.setVgap(15);
|
119 |
jLabel5 = new JLabel(); |
120 |
jLabel4 = new JLabel(); |
121 |
jLabel3 = new JLabel(); |
122 |
jLabel2 = new JLabel(); |
123 |
jLabel1 = new JLabel(); |
124 |
jLabel = new JLabel(); |
125 |
jPanelLabels = new JPanel(); |
126 |
jPanelLabels.setLayout(flowLayout3); |
127 |
jPanelLabels.setName("jPanelLabels");
|
128 |
jPanelLabels.setPreferredSize(new java.awt.Dimension(150,400)); |
129 |
jLabel.setText(PluginServices.getText(this, "host") + ":"); |
130 |
jLabel.setPreferredSize(new java.awt.Dimension(140,19)); |
131 |
jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
132 |
jLabel.setName("jLabel");
|
133 |
jLabel1.setText(PluginServices.getText(this, "puerto")+":"); |
134 |
jLabel1.setPreferredSize(new java.awt.Dimension(140,19)); |
135 |
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); |
136 |
jLabel1.setName("jLabel1");
|
137 |
jLabel2.setText(PluginServices.getText(this, "usuario")+":"); |
138 |
jLabel2.setName("jLabel2");
|
139 |
jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); |
140 |
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
141 |
jLabel2.setPreferredSize(new java.awt.Dimension(140,19)); |
142 |
jLabel3.setText(PluginServices.getText(this, "password")+":"); |
143 |
jLabel3.setName("jLabel3");
|
144 |
jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); |
145 |
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
146 |
jLabel3.setPreferredSize(new java.awt.Dimension(140,19)); |
147 |
jLabel4.setText(PluginServices.getText(this, "bd")+":"); |
148 |
jLabel4.setName("jLabel4");
|
149 |
jLabel4.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); |
150 |
jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
151 |
jLabel4.setPreferredSize(new java.awt.Dimension(140,19)); |
152 |
jLabel5.setText(PluginServices.getText(this, "driver")+":"); |
153 |
jLabel5.setName("jLabel5");
|
154 |
jLabel5.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); |
155 |
jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
156 |
jLabel5.setPreferredSize(new java.awt.Dimension(140,19)); |
157 |
jPanelLabels.add(getJLabel6(), null);
|
158 |
jPanelLabels.add(jLabel, null);
|
159 |
jPanelLabels.add(jLabel1, null);
|
160 |
jPanelLabels.add(jLabel2, null);
|
161 |
jPanelLabels.add(jLabel3, null);
|
162 |
jPanelLabels.add(jLabel4, null);
|
163 |
jPanelLabels.add(jLabel5, null);
|
164 |
|
165 |
} |
166 |
|
167 |
return jPanelLabels;
|
168 |
} |
169 |
|
170 |
/**
|
171 |
* This method initializes txtHost
|
172 |
* @return javax.swing.JTextField
|
173 |
* @uml.property name="txtHost"
|
174 |
*/
|
175 |
private JTextField getTxtHost() { |
176 |
if (txtHost == null) { |
177 |
txtHost = new JTextField(); |
178 |
txtHost.setPreferredSize(new java.awt.Dimension(170, 19)); |
179 |
txtHost.setName("txtHost");
|
180 |
} |
181 |
|
182 |
return txtHost;
|
183 |
} |
184 |
|
185 |
/**
|
186 |
* This method initializes jPanel1
|
187 |
* @return javax.swing.JPanel
|
188 |
* @uml.property name="jPanelTexts"
|
189 |
*/
|
190 |
private JPanel getJPanelTexts() { |
191 |
if (jPanelTexts == null) { |
192 |
FlowLayout flowLayout2 = new FlowLayout(FlowLayout.LEFT); |
193 |
flowLayout2.setVgap(15);
|
194 |
jPanelTexts = new JPanel(); |
195 |
jPanelTexts.setLayout(flowLayout2); |
196 |
jPanelTexts.setPreferredSize(new java.awt.Dimension(200,400)); |
197 |
|
198 |
jPanelTexts.setName("jPanelText");
|
199 |
jPanelTexts.add(getCmbName(), null);
|
200 |
jPanelTexts.add(getTxtHost(), null);
|
201 |
jPanelTexts.add(getTxtPort(), null);
|
202 |
jPanelTexts.add(getTxtUser(), null);
|
203 |
jPanelTexts.add(getTxtPassword(), null);
|
204 |
jPanelTexts.add(getTxtBD(), null);
|
205 |
jPanelTexts.add(getCmbDriver(), null);
|
206 |
} |
207 |
|
208 |
return jPanelTexts;
|
209 |
} |
210 |
|
211 |
/**
|
212 |
* This method initializes txtPort
|
213 |
* @return javax.swing.JTextField
|
214 |
* @uml.property name="txtPort"
|
215 |
*/
|
216 |
private JTextField getTxtPort() { |
217 |
if (txtPort == null) { |
218 |
txtPort = new JTextField(); |
219 |
txtPort.setPreferredSize(new java.awt.Dimension(40, 19)); |
220 |
txtPort.setName("txtPort");
|
221 |
txtPort.setText("3306");
|
222 |
txtPort.setHorizontalAlignment(javax.swing.JTextField.LEFT); |
223 |
} |
224 |
|
225 |
return txtPort;
|
226 |
} |
227 |
|
228 |
/**
|
229 |
* This method initializes txtUser
|
230 |
* @return javax.swing.JTextField
|
231 |
* @uml.property name="txtUser"
|
232 |
*/
|
233 |
private JTextField getTxtUser() { |
234 |
if (txtUser == null) { |
235 |
txtUser = new JTextField(); |
236 |
txtUser.setPreferredSize(new java.awt.Dimension(170, 19)); |
237 |
txtUser.setName("txtUser");
|
238 |
} |
239 |
|
240 |
return txtUser;
|
241 |
} |
242 |
|
243 |
/**
|
244 |
* This method initializes txtPassword
|
245 |
* @return javax.swing.JTextField
|
246 |
* @uml.property name="txtPassword"
|
247 |
*/
|
248 |
private JPasswordField getTxtPassword() { |
249 |
if (txtPassword == null) { |
250 |
txtPassword = new JPasswordField(); |
251 |
txtPassword.setPreferredSize(new java.awt.Dimension(170, 19)); |
252 |
txtPassword.setName("txtPassword");
|
253 |
} |
254 |
|
255 |
return txtPassword;
|
256 |
} |
257 |
|
258 |
/**
|
259 |
* This method initializes txtBD
|
260 |
* @return javax.swing.JTextField
|
261 |
* @uml.property name="txtBD"
|
262 |
*/
|
263 |
private JTextField getTxtBD() { |
264 |
if (txtBD == null) { |
265 |
txtBD = new JTextField(); |
266 |
txtBD.setPreferredSize(new java.awt.Dimension(170, 19)); |
267 |
txtBD.setName("txtBD");
|
268 |
} |
269 |
|
270 |
return txtBD;
|
271 |
} |
272 |
|
273 |
/**
|
274 |
* DOCUMENT ME!
|
275 |
*
|
276 |
* @return DOCUMENT ME!
|
277 |
*/
|
278 |
public String getHost() { |
279 |
return getTxtHost().getText();
|
280 |
} |
281 |
|
282 |
/**
|
283 |
* DOCUMENT ME!
|
284 |
*
|
285 |
* @return DOCUMENT ME!
|
286 |
*/
|
287 |
public String getPort() { |
288 |
return getTxtPort().getText();
|
289 |
} |
290 |
|
291 |
/**
|
292 |
* DOCUMENT ME!
|
293 |
*
|
294 |
* @return DOCUMENT ME!
|
295 |
*/
|
296 |
public String getUser() { |
297 |
return getTxtUser().getText();
|
298 |
} |
299 |
|
300 |
/**
|
301 |
* DOCUMENT ME!
|
302 |
*
|
303 |
* @return DOCUMENT ME!
|
304 |
*/
|
305 |
public String getSettingsName() { |
306 |
return getCmbName().getSelectedItem().toString();
|
307 |
} |
308 |
|
309 |
/**
|
310 |
* DOCUMENT ME!
|
311 |
*
|
312 |
* @return DOCUMENT ME!
|
313 |
*/
|
314 |
public String getPassword() { |
315 |
passw = String.copyValueOf(getTxtPassword().getPassword());
|
316 |
return passw;
|
317 |
} |
318 |
|
319 |
/**
|
320 |
* DOCUMENT ME!
|
321 |
*
|
322 |
* @return DOCUMENT ME!
|
323 |
*/
|
324 |
public String getDBName() { |
325 |
return getTxtBD().getText();
|
326 |
} |
327 |
|
328 |
/**
|
329 |
* DOCUMENT ME!
|
330 |
*
|
331 |
* @param drivers DOCUMENT ME!
|
332 |
*/
|
333 |
public void setDrivers(String[] drivers) { |
334 |
DefaultComboBoxModel model = new DefaultComboBoxModel(); |
335 |
|
336 |
for (int i = 0; i < drivers.length; i++) { |
337 |
model.addElement(drivers[i]); |
338 |
} |
339 |
|
340 |
getCmbDriver().setModel(model); |
341 |
|
342 |
//Para que refresque el textbox del puerto
|
343 |
if (drivers.length > 0) |
344 |
cmbDriver.setSelectedIndex(0);
|
345 |
|
346 |
} |
347 |
|
348 |
|
349 |
/**
|
350 |
* @return ConnectionSettings based on values in this panel
|
351 |
*/
|
352 |
public ConnectionSettings getConnectionSettings()
|
353 |
{ |
354 |
ConnectionSettings cs = new ConnectionSettings();
|
355 |
cs.setDb(getDBName()); |
356 |
cs.setDriver(getDriver()); |
357 |
cs.setHost(getHost()); |
358 |
cs.setPort(getPort()); |
359 |
cs.setUser(getUser()); |
360 |
cs.setPassw(getPassword()); |
361 |
cs.setName(getSettingsName()); |
362 |
return cs;
|
363 |
} |
364 |
|
365 |
/**
|
366 |
* Makes persistent the connection settings of this panel.
|
367 |
*/
|
368 |
public void saveConnectionSettings() |
369 |
{ |
370 |
ConnectionSettings cs = new ConnectionSettings();
|
371 |
cs.setDb(getDBName()); |
372 |
cs.setDriver(getDriver()); |
373 |
cs.setHost(getHost()); |
374 |
cs.setPort(getPort()); |
375 |
cs.setUser(getUser()); |
376 |
cs.setPassw(getPassword()); |
377 |
cs.setName(getSettingsName()); |
378 |
|
379 |
PluginServices ps = PluginServices.getPluginServices(this);
|
380 |
XMLEntity xml = ps.getPersistentXML(); |
381 |
|
382 |
try {
|
383 |
String[] connections = xml.getStringArrayProperty("jdbc-connections"); |
384 |
String[] newConnections = new String[connections.length + 1]; |
385 |
System.arraycopy(connections, 0, newConnections, 0, connections.length); |
386 |
newConnections[connections.length] = cs.toString(); |
387 |
xml.putProperty("jdbc-connections", newConnections);
|
388 |
} catch (NotExistInXMLEntity e) {
|
389 |
xml.putProperty("jdbc-connections", new String[] { cs.toString() }); |
390 |
} |
391 |
|
392 |
|
393 |
} |
394 |
|
395 |
/**
|
396 |
* DOCUMENT ME!
|
397 |
*
|
398 |
* @return DOCUMENT ME!
|
399 |
*/
|
400 |
public String getDriver() { |
401 |
return cmbDriver.getSelectedItem().toString();
|
402 |
} |
403 |
|
404 |
/**
|
405 |
* DOCUMENT ME!
|
406 |
*
|
407 |
* @param cs DOCUMENT ME!
|
408 |
*/
|
409 |
public void setSettings(HashMap cs) { |
410 |
this.cs = cs;
|
411 |
((DefaultComboBoxModel) getCmbName().getModel()).removeAllElements();
|
412 |
|
413 |
Iterator i = cs.keySet().iterator();
|
414 |
|
415 |
while (i.hasNext()) {
|
416 |
String item = (String) i.next(); |
417 |
((DefaultComboBoxModel) getCmbName().getModel()).addElement(item);
|
418 |
} |
419 |
} |
420 |
|
421 |
/**
|
422 |
* @see com.iver.utiles.swing.wizard.Step#init(com.iver.utiles.swing.wizard.WizardControl)
|
423 |
*/
|
424 |
public void init(WizardControl w) { |
425 |
} |
426 |
|
427 |
/**
|
428 |
* This method initializes cmbDriver
|
429 |
* @return com.iver.utiles.swing.JComboBox
|
430 |
* @uml.property name="cmbDriver"
|
431 |
*/
|
432 |
private JComboBox getCmbDriver() { |
433 |
if (cmbDriver == null) { |
434 |
cmbDriver = new JComboBox(); |
435 |
cmbDriver.setPreferredSize(new java.awt.Dimension(170, 19)); |
436 |
cmbDriver.setName("cmbDriver");
|
437 |
cmbDriver.addActionListener(new ActionListener() { |
438 |
public void actionPerformed(ActionEvent e) { |
439 |
String driverName = cmbDriver.getSelectedItem().toString();
|
440 |
VectorialDatabaseDriver driver; |
441 |
try {
|
442 |
driver = (VectorialDatabaseDriver) LayerFactory.getDM().getDriver(driverName); |
443 |
getTxtPort().setText(Integer.toString(driver.getDefaultPort()));
|
444 |
} catch (DriverLoadException e1) {
|
445 |
getTxtPort().setText("");
|
446 |
} |
447 |
} |
448 |
}); |
449 |
} |
450 |
|
451 |
return cmbDriver;
|
452 |
} |
453 |
|
454 |
/**
|
455 |
* DOCUMENT ME!
|
456 |
*
|
457 |
* @return
|
458 |
*/
|
459 |
public boolean done() { |
460 |
return (getTxtBD().getText().length() > 0) && |
461 |
(getTxtHost().getText().length() > 0) &&
|
462 |
(getCmbName().getSelectedItem() != null) &&
|
463 |
(getCmbName().getSelectedItem().toString().length() > 0);
|
464 |
} |
465 |
|
466 |
/**
|
467 |
* This method initializes jLabel6
|
468 |
* @return javax.swing.JLabel
|
469 |
* @uml.property name="jLabel6"
|
470 |
*/
|
471 |
private JLabel getJLabel6() { |
472 |
if (jLabel6 == null) { |
473 |
jLabel6 = new JLabel(); |
474 |
jLabel6.setText(PluginServices.getText(this, "connection_name")+":"); |
475 |
jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
476 |
jLabel6.setPreferredSize(new java.awt.Dimension(140,19)); |
477 |
} |
478 |
|
479 |
return jLabel6;
|
480 |
} |
481 |
|
482 |
/**
|
483 |
* This method initializes jComboBox
|
484 |
* @return com.iver.utiles.swing.JComboBox
|
485 |
* @uml.property name="cmbName"
|
486 |
*/
|
487 |
private com.iver.utiles.swing.JComboBox getCmbName() {
|
488 |
if (cmbName == null) { |
489 |
cmbName = new com.iver.utiles.swing.JComboBox();
|
490 |
cmbName.setEditable(true);
|
491 |
cmbName.setPreferredSize(new java.awt.Dimension(170, 19)); |
492 |
cmbName.setModel(new DefaultComboBoxModel()); |
493 |
cmbName.addActionListener(new ActionListener() { |
494 |
public void actionPerformed(ActionEvent e) { |
495 |
Object item = cmbName.getSelectedItem();
|
496 |
|
497 |
if (item == null) { |
498 |
return;
|
499 |
} |
500 |
|
501 |
ConnectionSettings c = (ConnectionSettings) cs.get(item.toString()); |
502 |
|
503 |
if (c != null) { |
504 |
getTxtHost().setText(c.getHost()); |
505 |
getTxtPort().setText(c.getPort()); |
506 |
getTxtBD().setText(c.getDb()); |
507 |
getTxtUser().setText(c.getUser()); |
508 |
if (c.getPassw() != null) |
509 |
getTxtPassword().setText(c.getPassw()); |
510 |
getCmbDriver().setSelectedItem(c.getDriver()); |
511 |
} |
512 |
} |
513 |
}); |
514 |
} |
515 |
|
516 |
return cmbName;
|
517 |
} |
518 |
|
519 |
/**
|
520 |
* This method initializes jPanel
|
521 |
* @return javax.swing.JPanel
|
522 |
* @uml.property name="jPanel"
|
523 |
*/
|
524 |
private JPanel getJPanel() { |
525 |
if (jPanel == null) { |
526 |
jPanel = new JPanel(); |
527 |
jPanel.setLayout(new BorderLayout()); |
528 |
jPanel.setBounds(0, 0, 400, 240); |
529 |
jPanel.add(getJPanelLabels(), java.awt.BorderLayout.WEST); |
530 |
jPanel.add(getJPanelTexts(), java.awt.BorderLayout.EAST); |
531 |
} |
532 |
return jPanel;
|
533 |
} |
534 |
} // @jve:decl-index=0:visual-constraint="7,3"
|