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