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 | 2269 | fjp | package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard; |
---|---|---|---|
2 | |||
3 | 6566 | jaume | import java.awt.BorderLayout; |
4 | 2269 | fjp | 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 | 3207 | fjp | import com.iver.utiles.NotExistInXMLEntity; |
21 | import com.iver.utiles.XMLEntity; |
||
22 | 2269 | fjp | 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 | 3095 | fjp | private static String passw = null; |
34 | 6566 | jaume | |
35 | 3207 | fjp | private JPanel jPanelLabels = null; |
36 | 2269 | fjp | private JLabel jLabel = null; |
37 | private JTextField txtHost = null; |
||
38 | 3207 | fjp | private JPanel jPanelTexts = null; |
39 | 2269 | fjp | 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 | 3207 | fjp | |
53 | private JPanel jPanel = null; |
||
54 | 2269 | fjp | |
55 | 6566 | jaume | |
56 | |||
57 | 2269 | fjp | /**
|
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 | 3207 | fjp | this.setLayout(null); |
70 | this.setSize(335, 240); |
||
71 | 2269 | fjp | this.add(getJPanel(), null); |
72 | 6566 | jaume | |
73 | 3095 | fjp | if (passw != null) |
74 | txtPassword.setText(passw); |
||
75 | 6566 | jaume | |
76 | 2269 | fjp | } |
77 | |||
78 | /**
|
||
79 | * This method initializes jPanel
|
||
80 | *
|
||
81 | * @return javax.swing.JPanel
|
||
82 | */
|
||
83 | 3207 | fjp | private JPanel getJPanelLabels() { |
84 | if (jPanelLabels == null) { |
||
85 | FlowLayout flowLayout3 = new FlowLayout(); |
||
86 | flowLayout3.setVgap(15);
|
||
87 | 2269 | fjp | jLabel5 = new JLabel(); |
88 | jLabel4 = new JLabel(); |
||
89 | jLabel3 = new JLabel(); |
||
90 | jLabel2 = new JLabel(); |
||
91 | jLabel1 = new JLabel(); |
||
92 | jLabel = new JLabel(); |
||
93 | 3207 | fjp | jPanelLabels = new JPanel(); |
94 | jPanelLabels.setLayout(flowLayout3); |
||
95 | jPanelLabels.setName("jPanelLabels");
|
||
96 | jPanelLabels.setPreferredSize(new java.awt.Dimension(150,400)); |
||
97 | 2269 | fjp | jLabel.setText(PluginServices.getText(this, "host") + ":"); |
98 | 3207 | fjp | jLabel.setPreferredSize(new java.awt.Dimension(140,19)); |
99 | 2269 | fjp | jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); |
100 | jLabel.setName("jLabel");
|
||
101 | jLabel1.setText(PluginServices.getText(this, "puerto")+":"); |
||
102 | 3207 | fjp | jLabel1.setPreferredSize(new java.awt.Dimension(140,19)); |
103 | 2269 | fjp | 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 | 3207 | fjp | jLabel2.setPreferredSize(new java.awt.Dimension(140,19)); |
110 | 2269 | fjp | 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 | 3207 | fjp | jLabel3.setPreferredSize(new java.awt.Dimension(140,19)); |
115 | 2269 | fjp | 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 | 3207 | fjp | jLabel4.setPreferredSize(new java.awt.Dimension(140,19)); |
120 | 2269 | fjp | 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 | 3207 | fjp | 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 | 6566 | jaume | |
133 | 2269 | fjp | } |
134 | |||
135 | 3207 | fjp | return jPanelLabels;
|
136 | 2269 | fjp | } |
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 | 6703 | jmvivo | txtHost.setPreferredSize(new java.awt.Dimension(170, 19)); |
147 | 2269 | fjp | txtHost.setName("txtHost");
|
148 | } |
||
149 | |||
150 | return txtHost;
|
||
151 | } |
||
152 | |||
153 | /**
|
||
154 | * This method initializes jPanel1
|
||
155 | *
|
||
156 | * @return javax.swing.JPanel
|
||
157 | */
|
||
158 | 3207 | fjp | private JPanel getJPanelTexts() { |
159 | if (jPanelTexts == null) { |
||
160 | 6703 | jmvivo | FlowLayout flowLayout2 = new FlowLayout(FlowLayout.LEFT); |
161 | 3207 | fjp | flowLayout2.setVgap(15);
|
162 | jPanelTexts = new JPanel(); |
||
163 | jPanelTexts.setLayout(flowLayout2); |
||
164 | 6703 | jmvivo | jPanelTexts.setPreferredSize(new java.awt.Dimension(200,400)); |
165 | 2269 | fjp | |
166 | 3207 | fjp | jPanelTexts.setName("jPanelText");
|
167 | jPanelTexts.add(getCmbName(), null);
|
||
168 | jPanelTexts.add(getTxtHost(), null);
|
||
169 | jPanelTexts.add(getTxtPort(), null);
|
||
170 | 6566 | jaume | jPanelTexts.add(getTxtUser(), null);
|
171 | 3207 | fjp | jPanelTexts.add(getTxtPassword(), null);
|
172 | jPanelTexts.add(getTxtBD(), null);
|
||
173 | jPanelTexts.add(getCmbDriver(), null);
|
||
174 | 2269 | fjp | } |
175 | |||
176 | 3207 | fjp | return jPanelTexts;
|
177 | 2269 | fjp | } |
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 | 6703 | jmvivo | txtUser.setPreferredSize(new java.awt.Dimension(170, 19)); |
205 | 2269 | fjp | 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 | 6703 | jmvivo | txtPassword.setPreferredSize(new java.awt.Dimension(170, 19)); |
220 | 2269 | fjp | 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 | 6703 | jmvivo | txtBD.setPreferredSize(new java.awt.Dimension(170, 19)); |
235 | 2269 | fjp | 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 | 3095 | fjp | passw = String.copyValueOf(getTxtPassword().getPassword());
|
284 | return passw;
|
||
285 | 2269 | fjp | } |
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 | 6566 | jaume | |
314 | 2269 | fjp | } |
315 | 6566 | jaume | |
316 | |||
317 | 3207 | fjp | /**
|
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 | 6566 | jaume | |
333 | 3207 | fjp | /**
|
334 | * Makes persistent the connection settings of this panel.
|
||
335 | */
|
||
336 | public void saveConnectionSettings() |
||
337 | { |
||
338 | 6566 | jaume | ConnectionSettings cs = new ConnectionSettings();
|
339 | 3207 | fjp | cs.setDb(getDBName()); |
340 | cs.setDriver(getDriver()); |
||
341 | cs.setHost(getHost()); |
||
342 | cs.setPort(getPort()); |
||
343 | cs.setUser(getUser()); |
||
344 | 3259 | fjp | cs.setPassw(getPassword()); |
345 | 3207 | fjp | cs.setName(getSettingsName()); |
346 | 6566 | jaume | |
347 | 3207 | fjp | PluginServices ps = PluginServices.getPluginServices(this);
|
348 | XMLEntity xml = ps.getPersistentXML(); |
||
349 | 2269 | fjp | |
350 | 3207 | fjp | 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 | 6566 | jaume | |
361 | 3207 | fjp | } |
362 | |||
363 | 2269 | fjp | /**
|
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 | 6703 | jmvivo | cmbDriver.setPreferredSize(new java.awt.Dimension(170, 19)); |
404 | 2269 | fjp | 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 | 6566 | jaume | (getCmbName().getSelectedItem() != null) &&
|
431 | 2269 | fjp | (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 | 3207 | fjp | jLabel6.setPreferredSize(new java.awt.Dimension(140,19)); |
445 | 2269 | fjp | } |
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 | 6703 | jmvivo | cmbName.setPreferredSize(new java.awt.Dimension(170, 19)); |
460 | 2269 | fjp | 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 | 3259 | fjp | if (c.getPassw() != null) |
477 | getTxtPassword().setText(c.getPassw()); |
||
478 | 2269 | fjp | getCmbDriver().setSelectedItem(c.getDriver()); |
479 | } |
||
480 | } |
||
481 | }); |
||
482 | } |
||
483 | |||
484 | return cmbName;
|
||
485 | } |
||
486 | 3207 | fjp | |
487 | /**
|
||
488 | 6566 | jaume | * This method initializes jPanel
|
489 | *
|
||
490 | * @return javax.swing.JPanel
|
||
491 | */
|
||
492 | 3207 | fjp | private JPanel getJPanel() { |
493 | if (jPanel == null) { |
||
494 | jPanel = new JPanel(); |
||
495 | jPanel.setLayout(new BorderLayout()); |
||
496 | 6703 | jmvivo | jPanel.setBounds(0, 0, 400, 240); |
497 | 3207 | fjp | jPanel.add(getJPanelLabels(), java.awt.BorderLayout.WEST); |
498 | jPanel.add(getJPanelTexts(), java.awt.BorderLayout.EAST); |
||
499 | } |
||
500 | return jPanel;
|
||
501 | } |
||
502 | 2269 | fjp | } // @jve:decl-index=0:visual-constraint="7,3" |