svn-gvsig-desktop / tags / v1_0_2_Build_895 / libraries / libIverUtiles / src / com / iver / utiles / connections / JDBCManager.java @ 10328
History | View | Annotate | Download (27.3 KB)
1 | 2874 | caballero | /* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
|
||
4 | *
|
||
5 | * This program is free software; you can redistribute it and/or
|
||
6 | * modify it under the terms of the GNU General Public License
|
||
7 | * as published by the Free Software Foundation; either version 2
|
||
8 | * of the License, or (at your option) any later version.
|
||
9 | *
|
||
10 | * This program is distributed in the hope that it will be useful,
|
||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
13 | * GNU General Public License for more details.
|
||
14 | *
|
||
15 | * You should have received a copy of the GNU General Public License
|
||
16 | * along with this program; if not, write to the Free Software
|
||
17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
18 | *
|
||
19 | * For more information, contact:
|
||
20 | *
|
||
21 | * Generalitat Valenciana
|
||
22 | * Conselleria d'Infraestructures i Transport
|
||
23 | * Av. Blasco Ib??ez, 50
|
||
24 | * 46010 VALENCIA
|
||
25 | * SPAIN
|
||
26 | *
|
||
27 | * +34 963862235
|
||
28 | * gvsig@gva.es
|
||
29 | * www.gvsig.gva.es
|
||
30 | *
|
||
31 | * or
|
||
32 | *
|
||
33 | * IVER T.I. S.A
|
||
34 | * Salamanca 50
|
||
35 | * 46005 Valencia
|
||
36 | * Spain
|
||
37 | *
|
||
38 | * +34 963163400
|
||
39 | * dac@iver.es
|
||
40 | */
|
||
41 | package com.iver.utiles.connections; |
||
42 | |||
43 | import java.awt.Component; |
||
44 | import java.awt.FlowLayout; |
||
45 | import java.awt.event.MouseEvent; |
||
46 | import java.sql.SQLException; |
||
47 | 2910 | caballero | import java.util.MissingResourceException; |
48 | import java.util.PropertyResourceBundle; |
||
49 | import java.util.ResourceBundle; |
||
50 | 2874 | caballero | |
51 | import javax.swing.JButton; |
||
52 | 8765 | jjdelcerro | import javax.swing.JComboBox; |
53 | import javax.swing.JDialog; |
||
54 | import javax.swing.JLabel; |
||
55 | import javax.swing.JMenuItem; |
||
56 | import javax.swing.JOptionPane; |
||
57 | import javax.swing.JPanel; |
||
58 | import javax.swing.JPasswordField; |
||
59 | import javax.swing.JPopupMenu; |
||
60 | import javax.swing.JRadioButton; |
||
61 | import javax.swing.JScrollPane; |
||
62 | import javax.swing.JTabbedPane; |
||
63 | import javax.swing.JTextField; |
||
64 | 2874 | caballero | import javax.swing.JTree; |
65 | import javax.swing.tree.DefaultMutableTreeNode; |
||
66 | import javax.swing.tree.DefaultTreeModel; |
||
67 | import javax.swing.tree.TreePath; |
||
68 | |||
69 | 2910 | caballero | //import com.iver.andami.messages.Messages;
|
70 | |||
71 | |||
72 | 2874 | caballero | public class JDBCManager extends JPanel{ |
73 | |||
74 | private JTabbedPane tabbedPanel = null; |
||
75 | private JPanel pparameters = null; |
||
76 | private JPanel popciones = null; |
||
77 | private JComboBox cbDrivers = null; |
||
78 | private JTextField txtName = null; |
||
79 | private JPanel pServer = null; |
||
80 | private JLabel lblDrivers = null; |
||
81 | private JLabel lblName = null; |
||
82 | private JPanel phost = null; |
||
83 | private JTextField txtHost = null; |
||
84 | private JLabel lblHost = null; |
||
85 | private JLabel lblPort = null; |
||
86 | private JTextField txtPort = null; |
||
87 | private JPanel pUser = null; |
||
88 | private JLabel lblUser = null; |
||
89 | private JTextField txtUser = null; |
||
90 | private JLabel lblPassword = null; |
||
91 | private JPasswordField txtPassword = null; |
||
92 | private JPanel pDatabase = null; |
||
93 | private JLabel lblDB = null; |
||
94 | private JTextField txtDB = null; |
||
95 | private JButton bTestConnection = null; |
||
96 | private JPanel pConnectionsTree = null; |
||
97 | private JButton bAcept = null; |
||
98 | private JButton bCancel = null; |
||
99 | private JTree treeConnection = null; |
||
100 | private ConnectionDB connectionDB=null; |
||
101 | private ConnectionTrans connectionTrans=null; |
||
102 | private DefaultMutableTreeNode root=null; |
||
103 | private DefaultTreeModel treeModel=null; |
||
104 | private JScrollPane scrollTree = null; |
||
105 | private JRadioButton rbPassword = null; |
||
106 | private JPopupMenu popupMenu = null; |
||
107 | private JMenuItem menuConnect = null; |
||
108 | private JMenuItem menuDisConnect = null; |
||
109 | private JMenuItem menuDel = null; |
||
110 | private JMenuItem menuRefresh = null; |
||
111 | private ConnectionTrans ctTree;
|
||
112 | private DefaultMutableTreeNode nodeSelected=null; |
||
113 | 2910 | caballero | private static PropertyResourceBundle resourceBundle; |
114 | 2874 | caballero | /**
|
115 | * This is the default constructor
|
||
116 | */
|
||
117 | public JDBCManager(ConnectionTrans[] ct) { |
||
118 | super();
|
||
119 | 3080 | fjp | |
120 | /* try {
|
||
121 | Class.forName("com.mysql.jdbc.Driver", true,
|
||
122 | JDBCManager.class.getClassLoader());
|
||
123 | } catch (ClassNotFoundException e) {
|
||
124 | // TODO Auto-generated catch block
|
||
125 | e.printStackTrace();
|
||
126 | } */
|
||
127 | |||
128 | |||
129 | |||
130 | 2874 | caballero | connectionDB=ConnectionDB.getInstance(); |
131 | connectionDB.setConnTrans(ct); |
||
132 | initialize(); |
||
133 | } |
||
134 | |||
135 | /**
|
||
136 | * This method initializes scrollTree
|
||
137 | *
|
||
138 | * @return javax.swing.JScrollPane
|
||
139 | */
|
||
140 | private JScrollPane getScrollTree() { |
||
141 | if (scrollTree == null) { |
||
142 | scrollTree = new JScrollPane(); |
||
143 | scrollTree.setPreferredSize(new java.awt.Dimension(175,255)); |
||
144 | scrollTree.setAutoscrolls(true);
|
||
145 | scrollTree.setViewportView(getTreeConnection()); |
||
146 | } |
||
147 | return scrollTree;
|
||
148 | } |
||
149 | /**
|
||
150 | * This method initializes rbPassword
|
||
151 | *
|
||
152 | * @return javax.swing.JRadioButton
|
||
153 | */
|
||
154 | private JRadioButton getRbPassword() { |
||
155 | if (rbPassword == null) { |
||
156 | rbPassword = new JRadioButton(); |
||
157 | 2910 | caballero | rbPassword.setText(getTranslation("guardar_clave"));
|
158 | 2874 | caballero | rbPassword.setSelected(true);
|
159 | rbPassword.setPreferredSize(new java.awt.Dimension(160,24)); |
||
160 | } |
||
161 | return rbPassword;
|
||
162 | } |
||
163 | /**
|
||
164 | * This method initializes popupMenu
|
||
165 | *
|
||
166 | * @return javax.swing.JPopupMenu
|
||
167 | */
|
||
168 | private JPopupMenu getPopupMenu() { |
||
169 | if (popupMenu == null) { |
||
170 | popupMenu = new JPopupMenu(); |
||
171 | popupMenu.add(getMenuConectar()); |
||
172 | popupMenu.add(getMenuDisConnect()); |
||
173 | popupMenu.add(getMenuDel()); |
||
174 | popupMenu.add(getMenuRefresh()); |
||
175 | } |
||
176 | return popupMenu;
|
||
177 | } |
||
178 | |||
179 | /**
|
||
180 | * This method initializes menuConectar
|
||
181 | *
|
||
182 | * @return javax.swing.JMenuItem
|
||
183 | */
|
||
184 | private JMenuItem getMenuConectar() { |
||
185 | if (menuConnect == null) { |
||
186 | 2910 | caballero | menuConnect = new JMenuItem(getTranslation("conectar")); |
187 | 2874 | caballero | menuConnect.setEnabled(true);
|
188 | menuConnect.addActionListener(new java.awt.event.ActionListener() {
|
||
189 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
190 | |||
191 | try {
|
||
192 | connectionTrans=PaneltoConnectTrans(); |
||
193 | if (connectionDB.testDB(connectionTrans)){
|
||
194 | connectionTrans.setConnected(true);
|
||
195 | registerConnection(connectionTrans); |
||
196 | } |
||
197 | |||
198 | } catch (ConnectionException e1) {
|
||
199 | JOptionPane.showMessageDialog((Component)JDBCManager.this,e1); |
||
200 | } |
||
201 | treeModel.reload(); |
||
202 | } |
||
203 | }); |
||
204 | } |
||
205 | return menuConnect;
|
||
206 | } |
||
207 | |||
208 | /**
|
||
209 | * This method initializes menuDisConnect
|
||
210 | *
|
||
211 | * @return javax.swing.JMenuItem
|
||
212 | */
|
||
213 | private JMenuItem getMenuDisConnect() { |
||
214 | if (menuDisConnect == null) { |
||
215 | menuDisConnect = new JMenuItem(); |
||
216 | 2910 | caballero | menuDisConnect.setText(getTranslation("desconectar"));
|
217 | 2874 | caballero | menuDisConnect.addActionListener(new java.awt.event.ActionListener() {
|
218 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
219 | ctTree.setConnected(false);
|
||
220 | for (int i=0;i<root.getChildCount();i++){ |
||
221 | DefaultMutableTreeNode node=(DefaultMutableTreeNode)root.getChildAt(i); |
||
222 | if (node.getUserObject().equals(ctTree)){
|
||
223 | node.removeAllChildren(); |
||
224 | } |
||
225 | } |
||
226 | treeModel.reload(); |
||
227 | } |
||
228 | }); |
||
229 | } |
||
230 | return menuDisConnect;
|
||
231 | } |
||
232 | |||
233 | /**
|
||
234 | * This method initializes menuDel
|
||
235 | *
|
||
236 | * @return javax.swing.JMenuItem
|
||
237 | */
|
||
238 | private JMenuItem getMenuDel() { |
||
239 | if (menuDel == null) { |
||
240 | menuDel = new JMenuItem(); |
||
241 | menuDel.setText("eliminar");
|
||
242 | menuDel.addActionListener(new java.awt.event.ActionListener() {
|
||
243 | |||
244 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
245 | for (int i=0;i<root.getChildCount();i++){ |
||
246 | DefaultMutableTreeNode node=(DefaultMutableTreeNode)root.getChildAt(i); |
||
247 | if (node.getUserObject().equals(ctTree)){
|
||
248 | treeModel.removeNodeFromParent(node); |
||
249 | treeConnection.repaint(); |
||
250 | } |
||
251 | } |
||
252 | connectionDB.delPersistence(ctTree.getHost()+"_"+ctTree.getName());
|
||
253 | } |
||
254 | }); |
||
255 | } |
||
256 | return menuDel;
|
||
257 | } |
||
258 | |||
259 | /**
|
||
260 | * This method initializes menuRefresh
|
||
261 | *
|
||
262 | * @return javax.swing.JMenuItem
|
||
263 | */
|
||
264 | private JMenuItem getMenuRefresh() { |
||
265 | if (menuRefresh == null) { |
||
266 | menuRefresh = new JMenuItem(); |
||
267 | 2910 | caballero | menuRefresh.setText(getTranslation("refrescar"));
|
268 | 2874 | caballero | menuRefresh.addActionListener(new java.awt.event.ActionListener() {
|
269 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
270 | init(ctTree); |
||
271 | } |
||
272 | }); |
||
273 | } |
||
274 | return menuRefresh;
|
||
275 | } |
||
276 | |||
277 | public static void main(String[] args) { |
||
278 | JDialog dialog=new JDialog(); |
||
279 | |||
280 | ConnectionTransInit[] connDrivers=new ConnectionTransInit[2]; |
||
281 | connDrivers[0]=new ConnectionTransInit(); |
||
282 | connDrivers[0].setHost("localhost"); |
||
283 | connDrivers[0].setName("MYSQL DataBase"); |
||
284 | connDrivers[0].setConnBegining("jdbc:mysql:"); |
||
285 | connDrivers[0].setPort("3306"); |
||
286 | 3080 | fjp | connDrivers[0].setDb("test"); |
287 | connDrivers[0].setUser("root"); |
||
288 | connDrivers[0].setPassword("aquilina"); |
||
289 | 2874 | caballero | try {
|
290 | Class.forName("com.mysql.jdbc.Driver"); |
||
291 | 3080 | fjp | Class.forName("org.postgresql.Driver"); |
292 | 2874 | caballero | } catch (ClassNotFoundException e) { |
293 | throw new RuntimeException(e); |
||
294 | 3080 | fjp | } |
295 | 2874 | caballero | |
296 | connDrivers[1]=new ConnectionTransInit(); |
||
297 | connDrivers[1].setHost("localhost"); |
||
298 | connDrivers[1].setName("POSTGRES DataBase"); |
||
299 | connDrivers[1].setConnBegining("jdbc:postgresql:"); |
||
300 | connDrivers[1].setPort("5432"); |
||
301 | 3080 | fjp | connDrivers[1].setDb("latin1"); |
302 | connDrivers[1].setUser("postgres"); |
||
303 | connDrivers[1].setPassword("aquilina"); |
||
304 | 2874 | caballero | |
305 | |||
306 | JDBCManager sm=new JDBCManager(connDrivers);
|
||
307 | dialog.getContentPane().add(sm); |
||
308 | dialog.setSize(600,350); |
||
309 | dialog.setVisible(true);
|
||
310 | } |
||
311 | /**
|
||
312 | * This method initializes this
|
||
313 | *
|
||
314 | * @return void
|
||
315 | * @throws ConectadoException
|
||
316 | * @throws SQLException
|
||
317 | */
|
||
318 | private void initialize(){ |
||
319 | this.setSize(604, 305); |
||
320 | 2910 | caballero | setResourceBundle(); |
321 | 2874 | caballero | this.add(getPConnectionsTree(), null); |
322 | this.add(getParameters(), null); |
||
323 | this.add(getBAcept(), null); |
||
324 | this.add(getBCancel(), null); |
||
325 | try {
|
||
326 | init(); |
||
327 | } catch (Exception e) { |
||
328 | // TODO Auto-generated catch block
|
||
329 | e.printStackTrace(); |
||
330 | } |
||
331 | } |
||
332 | |||
333 | /**
|
||
334 | * This method initializes parameters
|
||
335 | *
|
||
336 | * @return javax.swing.JTabbedPane
|
||
337 | */
|
||
338 | private JTabbedPane getParameters() { |
||
339 | if (tabbedPanel == null) { |
||
340 | tabbedPanel = new JTabbedPane(); |
||
341 | 2910 | caballero | tabbedPanel.addTab(getTranslation("parametros"), null, getPparameters(), null); |
342 | //tabbedPanel.addTab(getTraduction("opciones"), null, getPopciones(), null);
|
||
343 | 2874 | caballero | } |
344 | return tabbedPanel;
|
||
345 | } |
||
346 | |||
347 | /**
|
||
348 | * This method initializes pparameters
|
||
349 | *
|
||
350 | * @return javax.swing.JPanel
|
||
351 | */
|
||
352 | private JPanel getPparameters() { |
||
353 | if (pparameters == null) { |
||
354 | pparameters = new JPanel(); |
||
355 | pparameters.setLayout(null);
|
||
356 | pparameters.setPreferredSize(new java.awt.Dimension(400,230)); |
||
357 | pparameters.add(getPServer(), null);
|
||
358 | pparameters.add(getPhost(), null);
|
||
359 | pparameters.add(getPUser(), null);
|
||
360 | pparameters.add(getPDatabase(), null);
|
||
361 | pparameters.add(getBTestConnection(), null);
|
||
362 | } |
||
363 | return pparameters;
|
||
364 | } |
||
365 | |||
366 | /**
|
||
367 | * This method initializes popciones
|
||
368 | *
|
||
369 | * @return javax.swing.JPanel
|
||
370 | */
|
||
371 | private JPanel getPopciones() { |
||
372 | if (popciones == null) { |
||
373 | popciones = new JPanel(); |
||
374 | } |
||
375 | return popciones;
|
||
376 | } |
||
377 | |||
378 | /**
|
||
379 | * This method initializes cbDrivers
|
||
380 | *
|
||
381 | * @return javax.swing.JComboBox
|
||
382 | */
|
||
383 | private JComboBox getCbDrivers() { |
||
384 | if (cbDrivers == null) { |
||
385 | cbDrivers = new JComboBox(); |
||
386 | /*Driver[] drivers=null;
|
||
387 | try {
|
||
388 | drivers = getDrivers();
|
||
389 | } catch (DriverLoadException e) {
|
||
390 | NotificationManager.addError(PluginServices.getText(this,"Error obteniendo los drivers JDBC"),e);
|
||
391 | }
|
||
392 | if (drivers!=null)
|
||
393 | */
|
||
394 | for (int i=0;i<connectionDB.getDefaultTrans().length;i++){ |
||
395 | cbDrivers.addItem(connectionDB.getDefaultTrans()[i]); |
||
396 | } |
||
397 | //cbDrivers.addItem("mysql");
|
||
398 | cbDrivers.setPreferredSize(new java.awt.Dimension(150,25)); |
||
399 | cbDrivers.setBounds(new java.awt.Rectangle(24,35,179,20)); |
||
400 | cbDrivers.addActionListener(new java.awt.event.ActionListener() {
|
||
401 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
402 | initPort(((ConnectionTrans)cbDrivers.getSelectedItem()).getPort()); |
||
403 | } |
||
404 | }); |
||
405 | } |
||
406 | return cbDrivers;
|
||
407 | } |
||
408 | |||
409 | /**
|
||
410 | * This method initializes txtName
|
||
411 | *
|
||
412 | * @return javax.swing.JTextField
|
||
413 | */
|
||
414 | private JTextField getTxtName() { |
||
415 | if (txtName == null) { |
||
416 | txtName = new JTextField(); |
||
417 | txtName.setBounds(new java.awt.Rectangle(212,35,162,20)); |
||
418 | } |
||
419 | return txtName;
|
||
420 | } |
||
421 | |||
422 | /**
|
||
423 | * This method initializes pServer
|
||
424 | *
|
||
425 | * @return javax.swing.JPanel
|
||
426 | */
|
||
427 | private JPanel getPServer() { |
||
428 | if (pServer == null) { |
||
429 | lblName = new JLabel(); |
||
430 | lblName.setBounds(new java.awt.Rectangle(212,13,81,18)); |
||
431 | 2910 | caballero | lblName.setText(getTranslation("nombre"));
|
432 | 2874 | caballero | lblDrivers = new JLabel(); |
433 | lblDrivers.setBounds(new java.awt.Rectangle(25,18,105,16)); |
||
434 | 2910 | caballero | lblDrivers.setText(getTranslation("drivers"));
|
435 | 2874 | caballero | pServer = new JPanel(); |
436 | pServer.setLayout(null);
|
||
437 | pServer.setBounds(new java.awt.Rectangle(2,2,400,69)); |
||
438 | 2910 | caballero | pServer.setBorder(javax.swing.BorderFactory.createTitledBorder(null, getTranslation("servidor"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null)); |
439 | 2874 | caballero | pServer.add(getCbDrivers(), null);
|
440 | pServer.add(getTxtName(), null);
|
||
441 | pServer.add(lblDrivers, null);
|
||
442 | pServer.add(lblName, null);
|
||
443 | } |
||
444 | return pServer;
|
||
445 | } |
||
446 | |||
447 | /**
|
||
448 | * This method initializes phost
|
||
449 | *
|
||
450 | * @return javax.swing.JPanel
|
||
451 | */
|
||
452 | private JPanel getPhost() { |
||
453 | if (phost == null) { |
||
454 | lblPort = new JLabel(); |
||
455 | 2910 | caballero | lblPort.setText(getTranslation("puerto"));
|
456 | 2874 | caballero | lblPort.setPreferredSize(new java.awt.Dimension(60,16)); |
457 | lblHost = new JLabel(); |
||
458 | 2910 | caballero | lblHost.setText(getTranslation("hostname"));
|
459 | 2874 | caballero | lblHost.setPreferredSize(new java.awt.Dimension(60,16)); |
460 | phost = new JPanel(); |
||
461 | phost.setLayout(new FlowLayout()); |
||
462 | phost.setBounds(new java.awt.Rectangle(3,73,195,85)); |
||
463 | phost.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
|
||
464 | phost.add(lblHost, null);
|
||
465 | phost.add(getTxtHost(), null);
|
||
466 | phost.add(lblPort, null);
|
||
467 | phost.add(getTxtPort(), null);
|
||
468 | } |
||
469 | return phost;
|
||
470 | } |
||
471 | |||
472 | /**
|
||
473 | * This method initializes txtHost
|
||
474 | *
|
||
475 | * @return javax.swing.JTextField
|
||
476 | */
|
||
477 | private JTextField getTxtHost() { |
||
478 | if (txtHost == null) { |
||
479 | txtHost = new JTextField(); |
||
480 | txtHost.setPreferredSize(new java.awt.Dimension(110,20)); |
||
481 | } |
||
482 | return txtHost;
|
||
483 | } |
||
484 | |||
485 | /**
|
||
486 | * This method initializes txtPort
|
||
487 | *
|
||
488 | * @return javax.swing.JTextField
|
||
489 | */
|
||
490 | private JTextField getTxtPort() { |
||
491 | if (txtPort == null) { |
||
492 | txtPort = new JTextField(); |
||
493 | ConnectionTrans ct=(ConnectionTrans)getCbDrivers().getSelectedItem(); |
||
494 | txtPort.setText(ct.getPort()); |
||
495 | txtPort.setPreferredSize(new java.awt.Dimension(110,20)); |
||
496 | } |
||
497 | return txtPort;
|
||
498 | } |
||
499 | |||
500 | /**
|
||
501 | * This method initializes pUser
|
||
502 | *
|
||
503 | * @return javax.swing.JPanel
|
||
504 | */
|
||
505 | private JPanel getPUser() { |
||
506 | if (pUser == null) { |
||
507 | lblPassword = new JLabel(); |
||
508 | 2910 | caballero | lblPassword.setText(getTranslation("clave"));
|
509 | 2874 | caballero | lblPassword.setPreferredSize(new java.awt.Dimension(60,16)); |
510 | lblUser = new JLabel(); |
||
511 | 2910 | caballero | lblUser.setText(getTranslation("usuario"));
|
512 | 2874 | caballero | lblUser.setPreferredSize(new java.awt.Dimension(60,16)); |
513 | pUser = new JPanel(); |
||
514 | pUser.setBounds(new java.awt.Rectangle(201,73,195,85)); |
||
515 | pUser.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,1));
|
||
516 | pUser.add(lblUser, null);
|
||
517 | pUser.add(getTxtUser(), null);
|
||
518 | pUser.add(lblPassword, null);
|
||
519 | pUser.add(getTxtPassword(), null);
|
||
520 | pUser.add(getRbPassword(), null);
|
||
521 | } |
||
522 | return pUser;
|
||
523 | } |
||
524 | |||
525 | /**
|
||
526 | * This method initializes txtUser
|
||
527 | *
|
||
528 | * @return javax.swing.JTextField
|
||
529 | */
|
||
530 | private JTextField getTxtUser() { |
||
531 | if (txtUser == null) { |
||
532 | txtUser = new JTextField(); |
||
533 | txtUser.setPreferredSize(new java.awt.Dimension(100,20)); |
||
534 | } |
||
535 | return txtUser;
|
||
536 | } |
||
537 | |||
538 | /**
|
||
539 | * This method initializes txtPassword
|
||
540 | *
|
||
541 | * @return javax.swing.JTextField
|
||
542 | */
|
||
543 | private JPasswordField getTxtPassword() { |
||
544 | if (txtPassword == null) { |
||
545 | txtPassword = new JPasswordField(); |
||
546 | txtPassword.setPreferredSize(new java.awt.Dimension(100,20)); |
||
547 | } |
||
548 | return txtPassword;
|
||
549 | } |
||
550 | |||
551 | /**
|
||
552 | * This method initializes pDatabase
|
||
553 | *
|
||
554 | * @return javax.swing.JPanel
|
||
555 | */
|
||
556 | private JPanel getPDatabase() { |
||
557 | if (pDatabase == null) { |
||
558 | lblDB = new JLabel(); |
||
559 | 2910 | caballero | lblDB.setText(getTranslation("base_datos"));
|
560 | 2874 | caballero | pDatabase = new JPanel(); |
561 | pDatabase.setBounds(new java.awt.Rectangle(4,160,391,34)); |
||
562 | pDatabase.add(lblDB, null);
|
||
563 | pDatabase.add(getTxtDB(), null);
|
||
564 | } |
||
565 | return pDatabase;
|
||
566 | } |
||
567 | |||
568 | /**
|
||
569 | * This method initializes txtDB
|
||
570 | *
|
||
571 | * @return javax.swing.JTextField
|
||
572 | */
|
||
573 | private JTextField getTxtDB() { |
||
574 | if (txtDB == null) { |
||
575 | txtDB = new JTextField(); |
||
576 | txtDB.setPreferredSize(new java.awt.Dimension(200,20)); |
||
577 | } |
||
578 | return txtDB;
|
||
579 | } |
||
580 | |||
581 | /**
|
||
582 | * This method initializes bTestConnection
|
||
583 | *
|
||
584 | * @return javax.swing.JButton
|
||
585 | */
|
||
586 | private JButton getBTestConnection() { |
||
587 | if (bTestConnection == null) { |
||
588 | bTestConnection = new JButton(); |
||
589 | bTestConnection.setBounds(new java.awt.Rectangle(4,197,392,26)); |
||
590 | 2910 | caballero | bTestConnection.setText(getTranslation("prueba_conexion"));
|
591 | 2874 | caballero | bTestConnection.addActionListener(new java.awt.event.ActionListener() {
|
592 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
593 | ConnectionTrans ct=new ConnectionTrans();
|
||
594 | ct.setDriver(getCbDrivers().getSelectedItem().toString()); |
||
595 | ct.setName(getTxtName().getText()); |
||
596 | ct.setHost(getTxtHost().getText()); |
||
597 | ct.setPort(getTxtPort().getText()); |
||
598 | ct.setUser(getTxtUser().getText()); |
||
599 | ct.setPassword(getTxtPassword().getText()); |
||
600 | ct.setDb(getTxtDB().getText()); |
||
601 | ct.setConnBegining(((ConnectionTrans)getCbDrivers().getSelectedItem()).getConnBeginning()); |
||
602 | 2910 | caballero | //System.out.println("Bot?n prueba conexi?n");
|
603 | 2874 | caballero | boolean correct=true; |
604 | try {
|
||
605 | connectionDB.testDB(ct); |
||
606 | } catch (ConnectionException e1) {
|
||
607 | JOptionPane.showMessageDialog((Component)JDBCManager.this,e1); |
||
608 | correct=false;
|
||
609 | } |
||
610 | if (correct)
|
||
611 | 2910 | caballero | JOptionPane.showMessageDialog((Component)JDBCManager.this,getTranslation("conexion_correcta")); |
612 | 2874 | caballero | } |
613 | }); |
||
614 | } |
||
615 | return bTestConnection;
|
||
616 | } |
||
617 | |||
618 | /**
|
||
619 | * This method initializes pConnectionsTree
|
||
620 | *
|
||
621 | * @return javax.swing.JPanel
|
||
622 | */
|
||
623 | private JPanel getPConnectionsTree() { |
||
624 | if (pConnectionsTree == null) { |
||
625 | pConnectionsTree = new JPanel(); |
||
626 | pConnectionsTree.setPreferredSize(new java.awt.Dimension(170,260)); |
||
627 | pConnectionsTree.setBackground(java.awt.SystemColor.control); |
||
628 | pConnectionsTree.add(getScrollTree(), null);
|
||
629 | } |
||
630 | return pConnectionsTree;
|
||
631 | } |
||
632 | private ConnectionTrans PaneltoConnectTrans(){
|
||
633 | connectionTrans=new ConnectionTrans();
|
||
634 | connectionTrans.setDriver(((ConnectionTrans)getCbDrivers().getSelectedItem()).getName()); |
||
635 | connectionTrans.setName(getTxtName().getText()); |
||
636 | connectionTrans.setHost(getTxtHost().getText()); |
||
637 | connectionTrans.setPort(getTxtPort().getText()); |
||
638 | connectionTrans.setUser(getTxtUser().getText()); |
||
639 | connectionTrans.setSavePassword(getRbPassword().isSelected()); |
||
640 | connectionTrans.setPassword(getTxtPassword().getText()); |
||
641 | connectionTrans.setDb(getTxtDB().getText()); |
||
642 | connectionTrans.setConnBegining(((ConnectionTrans)getCbDrivers().getSelectedItem()).getConnBeginning()); |
||
643 | return connectionTrans;
|
||
644 | } |
||
645 | //public Connection getConnection(String host,String name) throws SQLException{
|
||
646 | // return connectionDB.getConnectionByName(host+"_"+name);
|
||
647 | //}
|
||
648 | /**
|
||
649 | * This method initializes bAcept
|
||
650 | *
|
||
651 | * @return javax.swing.JButton
|
||
652 | */
|
||
653 | private JButton getBAcept() { |
||
654 | if (bAcept == null) { |
||
655 | bAcept = new JButton(); |
||
656 | 2910 | caballero | bAcept.setText(getTranslation("aceptar"));
|
657 | 2874 | caballero | bAcept.addActionListener(new java.awt.event.ActionListener() {
|
658 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
659 | try {
|
||
660 | connectionTrans=PaneltoConnectTrans(); |
||
661 | if (connectionDB.testDB(connectionTrans)){
|
||
662 | connectionTrans.setConnected(true);
|
||
663 | registerConnection(connectionTrans); |
||
664 | } |
||
665 | |||
666 | } catch (ConnectionException e1) {
|
||
667 | JOptionPane.showMessageDialog((Component)JDBCManager.this,e1); |
||
668 | } |
||
669 | treeModel.reload(); |
||
670 | |||
671 | } |
||
672 | |||
673 | |||
674 | }); |
||
675 | } |
||
676 | return bAcept;
|
||
677 | } |
||
678 | |||
679 | private void registerConnection(ConnectionTrans connectionTrans) { |
||
680 | boolean same=false; |
||
681 | boolean samewithChange=false; |
||
682 | DefaultMutableTreeNode node=null; |
||
683 | for (int i=0;i<root.getChildCount();i++){ |
||
684 | //Object obj=((DefaultMutableTreeNode)root.getChildAt(i)).getUserObject();
|
||
685 | |||
686 | if (connectionTrans.equals(ctTree)){
|
||
687 | same=true;
|
||
688 | if (connectionTrans.isConnected()!=ctTree.isConnected()|| ctTree.isConnected()==false || connectionTrans.isSavePassword()!=ctTree.isSavePassword() || connectionTrans.isSavePassword()==false){ |
||
689 | node=(DefaultMutableTreeNode)root.getChildAt(i);
|
||
690 | samewithChange=true;
|
||
691 | ctTree.setConnected(true);
|
||
692 | } |
||
693 | }else{
|
||
694 | //((ConnectionTrans)obj).setConnected(true);
|
||
695 | } |
||
696 | } |
||
697 | |||
698 | try{
|
||
699 | if (!same){
|
||
700 | try {
|
||
701 | connectionDB.setupDriver(connectionTrans); |
||
702 | connectionDB.setPersistence(connectionTrans); |
||
703 | } catch (Exception e) { |
||
704 | e.printStackTrace(); |
||
705 | } |
||
706 | initTree(connectionTrans); |
||
707 | } |
||
708 | if (samewithChange){
|
||
709 | try {
|
||
710 | connectionDB.setupDriver(connectionTrans); |
||
711 | connectionDB.setPersistence(connectionTrans); |
||
712 | } catch (Exception e) { |
||
713 | e.printStackTrace(); |
||
714 | } |
||
715 | modifyTreeNode(connectionTrans,node); |
||
716 | |||
717 | } |
||
718 | }catch (Exception e1) { |
||
719 | // TODO: handle exception
|
||
720 | } |
||
721 | treeConnection.repaint(); |
||
722 | //PluginServices.getMDIManager().closeView(JDBCManager.this);
|
||
723 | |||
724 | |||
725 | } |
||
726 | |||
727 | /**
|
||
728 | * This method initializes bCancel
|
||
729 | *
|
||
730 | * @return javax.swing.JButton
|
||
731 | */
|
||
732 | private JButton getBCancel() { |
||
733 | if (bCancel == null) { |
||
734 | bCancel = new JButton(); |
||
735 | 2910 | caballero | bCancel.setText(getTranslation("cancelar"));
|
736 | 2874 | caballero | bCancel.addActionListener(new java.awt.event.ActionListener() {
|
737 | public void actionPerformed(java.awt.event.ActionEvent e) { |
||
738 | |||
739 | } |
||
740 | }); |
||
741 | } |
||
742 | return bCancel;
|
||
743 | } |
||
744 | |||
745 | /**
|
||
746 | * This method initializes treeConnection
|
||
747 | *
|
||
748 | * @return javax.swing.JTree
|
||
749 | */
|
||
750 | private JTree getTreeConnection() { |
||
751 | if (treeConnection == null) { |
||
752 | treeConnection = new JTree(); |
||
753 | root = new DefaultMutableTreeNode(java.lang.Object.class); |
||
754 | treeModel = new DefaultTreeModel(root); |
||
755 | //TOCRenderer m_TocRenderer = new TOCRenderer();
|
||
756 | //treeConnection.setCellRenderer(m_TocRenderer);
|
||
757 | treeConnection.setRootVisible(false);
|
||
758 | treeConnection.setSize(new java.awt.Dimension(170,252)); |
||
759 | treeConnection.setCellRenderer(new ConnRenderer());
|
||
760 | //treeConnection.setShowsRootHandles(true);
|
||
761 | |||
762 | //Posibilidad de seleccionar de forma aleatoria nodos de la leyenda.
|
||
763 | treeConnection.setModel(treeModel); |
||
764 | treeConnection.addMouseListener(new java.awt.event.MouseAdapter() {
|
||
765 | public void mouseClicked(MouseEvent e) { |
||
766 | super.mouseClicked(e);
|
||
767 | int x = e.getX();
|
||
768 | int y = e.getY();
|
||
769 | int row = treeConnection.getRowForLocation(x, y);
|
||
770 | TreePath path = treeConnection.getPathForRow(row);
|
||
771 | if (path != null) { |
||
772 | nodeSelected = (DefaultMutableTreeNode) path.getLastPathComponent();
|
||
773 | } |
||
774 | if (e.getButton()==MouseEvent.BUTTON1){ |
||
775 | System.out.println("mouseClicked()"); // TODO Auto-generated Event stub mousePressed() |
||
776 | ///int x = e.getX();
|
||
777 | ///int y = e.getY();
|
||
778 | ///int row = treeConnection.getRowForLocation(x, y);
|
||
779 | ///TreePath path = treeConnection.getPathForRow(row);
|
||
780 | ///if (path != null) {
|
||
781 | /// nodeSelected = (DefaultMutableTreeNode) path.getLastPathComponent();
|
||
782 | |||
783 | if (nodeSelected.getUserObject() instanceof ConnectionTrans){ |
||
784 | ctTree=(ConnectionTrans)nodeSelected.getUserObject(); |
||
785 | init(ctTree); |
||
786 | } |
||
787 | /// }
|
||
788 | }else if (e.getButton()==MouseEvent.BUTTON3){ |
||
789 | if (nodeSelected.getUserObject() instanceof ConnectionTrans){ |
||
790 | ctTree=(ConnectionTrans)nodeSelected.getUserObject(); |
||
791 | } |
||
792 | if (!ctTree.isConnected()){
|
||
793 | getMenuDisConnect().setEnabled(false);
|
||
794 | getMenuConectar().setEnabled(true);
|
||
795 | }else{
|
||
796 | getMenuConectar().setEnabled(false);
|
||
797 | getMenuDisConnect().setEnabled(true);
|
||
798 | } |
||
799 | JPopupMenu popup=getPopupMenu();
|
||
800 | treeConnection.add(popup); |
||
801 | |||
802 | 2910 | caballero | //System.out.println("boton derecho");
|
803 | 2874 | caballero | popup.show(e.getComponent(), e.getX(), e.getY()); |
804 | } |
||
805 | } |
||
806 | |||
807 | |||
808 | }); |
||
809 | } |
||
810 | return treeConnection;
|
||
811 | } |
||
812 | /*public ViewInfo getViewInfo() {
|
||
813 | ViewInfo m_viewinfo = new ViewInfo(ViewInfo.MODALDIALOG);
|
||
814 | m_viewinfo.setTitle(PluginServices.getText(this,
|
||
815 | "DBManager"));
|
||
816 | |||
817 | return m_viewinfo;
|
||
818 | }*/
|
||
819 | private void init(ConnectionTrans ct){ |
||
820 | |||
821 | try {
|
||
822 | initDriver(ct.getDriver()); |
||
823 | } catch (ConnectionException e) {
|
||
824 | } |
||
825 | initName(ct.getName()); |
||
826 | initHost(ct.getHost()); |
||
827 | initPort(ct.getPort()); |
||
828 | initUser(ct.getUser()); |
||
829 | initSavePassword(ct.isSavePassword()); |
||
830 | initPassword(ct.getPassword()); |
||
831 | initDB(ct.getDb()); |
||
832 | } |
||
833 | private void init() throws Exception{ |
||
834 | ConnectionTrans[] conns=null; |
||
835 | conns=connectionDB.getPersistence(); |
||
836 | 3080 | fjp | if (conns == null) |
837 | conns = connectionDB.getDefaultTrans(); |
||
838 | 2874 | caballero | int j=-1; |
839 | for (j=0;j<conns.length;j++){ |
||
840 | initTree(conns[j]); |
||
841 | } |
||
842 | if (j>=0){ |
||
843 | j=j-1;
|
||
844 | init(conns[j]); |
||
845 | } |
||
846 | |||
847 | } |
||
848 | private void modifyTreeNode(ConnectionTrans cs,DefaultMutableTreeNode node) throws ConnectionException{ |
||
849 | |||
850 | String[] s=new String[0]; |
||
851 | s=connectionDB.getTableNames(connectionDB.getConnection(cs)); |
||
852 | if (cs.isSavePassword()){
|
||
853 | ((ConnectionTrans)node.getUserObject()).setSavePassword(true);
|
||
854 | |||
855 | }else{
|
||
856 | ((ConnectionTrans)node.getUserObject()).setSavePassword(false);
|
||
857 | |||
858 | } |
||
859 | ((ConnectionTrans)node.getUserObject()).setPassword(cs.getPassword()); |
||
860 | node.removeAllChildren(); |
||
861 | for(int i=0;i<s.length;i++){ |
||
862 | DefaultMutableTreeNode table=new DefaultMutableTreeNode(s[i]); |
||
863 | treeModel.insertNodeInto(table,node,node.getChildCount()); |
||
864 | } |
||
865 | |||
866 | treeModel.reload(); |
||
867 | } |
||
868 | |||
869 | private void initTreeWithoutPassword(ConnectionTrans cs){ |
||
870 | DefaultMutableTreeNode aux=new DefaultMutableTreeNode(cs); |
||
871 | treeModel.insertNodeInto(aux,root,root.getChildCount()); |
||
872 | } |
||
873 | private void initTree(ConnectionTrans cs) throws ConnectionException{ |
||
874 | if (cs.isSavePassword()){
|
||
875 | String[] s=new String[0]; |
||
876 | s=connectionDB.getTableNames(connectionDB.getConnection(cs)); |
||
877 | DefaultMutableTreeNode aux=new DefaultMutableTreeNode(cs); |
||
878 | treeModel.insertNodeInto(aux,root,root.getChildCount()); |
||
879 | for(int i=0;i<s.length;i++){ |
||
880 | DefaultMutableTreeNode table=new DefaultMutableTreeNode(s[i]); |
||
881 | treeModel.insertNodeInto(table,aux,aux.getChildCount()); |
||
882 | } |
||
883 | }else{
|
||
884 | initTreeWithoutPassword(cs); |
||
885 | } |
||
886 | treeModel.reload(); |
||
887 | |||
888 | } |
||
889 | private void initDriver(String s) throws ConnectionException{ |
||
890 | //VectorialJDBCDriver driver=connectionDB.getDriver(s);
|
||
891 | for (int i=0;i<getCbDrivers().getItemCount();i++){ |
||
892 | ConnectionTrans ct=(ConnectionTrans)getCbDrivers().getItemAt(i); |
||
893 | if (ct.getName().equals(s)){
|
||
894 | getCbDrivers().setSelectedItem(ct); |
||
895 | } |
||
896 | } |
||
897 | |||
898 | } |
||
899 | private void initName(String s){ |
||
900 | getTxtName().setText(s); |
||
901 | } |
||
902 | private void initHost(String s){ |
||
903 | getTxtHost().setText(s); |
||
904 | } |
||
905 | private void initPort(String s){ |
||
906 | getTxtPort().setText(s); |
||
907 | } |
||
908 | private void initUser(String s){ |
||
909 | getTxtUser().setText(s); |
||
910 | } |
||
911 | private boolean initSavePassword(boolean b){ |
||
912 | getRbPassword().setSelected(b); |
||
913 | return b;
|
||
914 | } |
||
915 | private void initPassword(String s){ |
||
916 | getTxtPassword().setText(s); |
||
917 | } |
||
918 | private void initDB(String s){ |
||
919 | getTxtDB().setText(s); |
||
920 | } |
||
921 | 2910 | caballero | |
922 | void setResourceBundle() {
|
||
923 | try {
|
||
924 | resourceBundle = (PropertyResourceBundle) ResourceBundle.getBundle("com.iver.utiles.connections.text"); |
||
925 | } catch (MissingResourceException e) { |
||
926 | System.out.println("Exception = "+e); |
||
927 | // logger.error(Messages.getString("PluginServices.No_se_encontro_el_recurso_de_traducciones") + name, e);
|
||
928 | } |
||
929 | } |
||
930 | public static String getTranslation(String key) { |
||
931 | if (resourceBundle == null) { |
||
932 | return key;
|
||
933 | } |
||
934 | |||
935 | if (key == null) { |
||
936 | return null; |
||
937 | } |
||
938 | |||
939 | try {
|
||
940 | return resourceBundle.getString(key);
|
||
941 | } catch (MissingResourceException e) { |
||
942 | //logger.warn(Messages.getString("PluginServices.No_se_encontro_la_traduccion_para") + " " + key);
|
||
943 | |||
944 | return key;
|
||
945 | } |
||
946 | } |
||
947 | |||
948 | 2874 | caballero | /*private Driver[] getDrivers() throws DriverLoadException{
|
949 | Class[] classes = new Class[] { VectorialJDBCDriver.class };
|
||
950 | |||
951 | ArrayList ret = new ArrayList();
|
||
952 | String[] driverNames = LayerFactory.getDM().getDriverNames();
|
||
953 | |||
954 | for (int i = 0; i < driverNames.length; i++) {
|
||
955 | for (int j = 0; j < classes.length; j++) {
|
||
956 | if (LayerFactory.getDM().isA(driverNames[i], classes[j])) {
|
||
957 | ret.add(LayerFactory.getDM().getDriver(driverNames[i]));
|
||
958 | }
|
||
959 | }
|
||
960 | }
|
||
961 | |||
962 | return (Driver[]) ret.toArray(new Driver[0]);
|
||
963 | |||
964 | }
|
||
965 | */
|
||
966 | } // @jve:decl-index=0:visual-constraint="10,10" |