Statistics
| Revision:

svn-gvsig-desktop / branches / gvSIG_GisPlanet / applications / appgvSIG / src / com / iver / cit / gvsig / gui / jdbcwizard / ConnectionPanel.java @ 2169

History | View | Annotate | Download (12 KB)

1
package com.iver.cit.gvsig.gui.jdbcwizard;
2

    
3
import java.awt.FlowLayout;
4
import java.awt.GridLayout;
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.swing.JComboBox;
21
import com.iver.utiles.swing.wizard.Step;
22
import com.iver.utiles.swing.wizard.WizardControl;
23

    
24

    
25
/**
26
 * DOCUMENT ME!
27
 *
28
 * @author Fernando Gonz?lez Cort?s
29
 */
30
public class ConnectionPanel extends JPanel implements Step {
31
    private JPanel jPanel = null;
32
    private JLabel jLabel = null;
33
    private JTextField txtHost = null;
34
    private JPanel jPanel1 = null;
35
    private JTextField txtPort = null;
36
    private JLabel jLabel1 = null;
37
    private JLabel jLabel2 = null;
38
    private JTextField txtUser = null;
39
    private JLabel jLabel3 = null;
40
    private JPasswordField txtPassword = null;
41
    private JLabel jLabel4 = null;
42
    private JTextField txtBD = null;
43
    private JLabel jLabel5 = null;
44
    private JComboBox cmbDriver = null;
45
    private JLabel jLabel6 = null;
46
    private com.iver.utiles.swing.JComboBox cmbName = null;
47
    private HashMap cs = new HashMap();
48

    
49
    /**
50
     * This is the default constructor
51
     */
52
    public ConnectionPanel() {
53
        super();
54
        initialize();
55
    }
56

    
57
    /**
58
     * This method initializes this
59
     */
60
    private void initialize() {
61
        this.setSize(400, 240);
62
        this.add(getJPanel(), null);
63
        this.add(getJPanel1(), null);
64
    }
65

    
66
    /**
67
     * This method initializes jPanel
68
     *
69
     * @return javax.swing.JPanel
70
     */
71
    private JPanel getJPanel() {
72
        if (jPanel == null) {
73
            GridLayout gridLayout1 = new GridLayout();
74
            gridLayout1.setRows(7);
75
            jLabel5 = new JLabel();
76
            jLabel4 = new JLabel();
77
            jLabel3 = new JLabel();
78
            jLabel2 = new JLabel();
79
            jLabel1 = new JLabel();
80
            jLabel = new JLabel();
81
            jPanel = new JPanel();
82
            jPanel.setLayout(gridLayout1);
83
            jPanel.setPreferredSize(new java.awt.Dimension(160,225));
84
            jLabel.setText(PluginServices.getText(this, "host") + ":");
85
            jLabel.setPreferredSize(new java.awt.Dimension(80, 15));
86
            jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
87
            jLabel.setName("jLabel");
88
            jLabel1.setText(PluginServices.getText(this, "puerto")+":");
89
            jLabel1.setPreferredSize(new java.awt.Dimension(83, 15));
90
            jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
91
            jLabel1.setName("jLabel1");
92
            jLabel2.setText(PluginServices.getText(this, "usuario")+":");
93
            jLabel2.setName("jLabel2");
94
            jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
95
            jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
96
            jLabel3.setText(PluginServices.getText(this, "password")+":");
97
            jLabel3.setName("jLabel3");
98
            jLabel3.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
99
            jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
100
            jLabel4.setText(PluginServices.getText(this, "bd")+":");
101
            jLabel4.setName("jLabel4");
102
            jLabel4.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
103
            jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
104
            jLabel5.setText(PluginServices.getText(this, "driver")+":");
105
            jLabel5.setName("jLabel5");
106
            jLabel5.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
107
            jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
108
            jPanel.add(getJLabel6(), null);
109
            jPanel.add(jLabel, null);
110
            jPanel.add(jLabel1, null);
111
            jPanel.add(jLabel2, null);
112
            jPanel.add(jLabel3, null);
113
            jPanel.add(jLabel4, null);
114
            jPanel.add(jLabel5, null);
115
        }
116

    
117
        return jPanel;
118
    }
119

    
120
    /**
121
     * This method initializes txtHost
122
     *
123
     * @return javax.swing.JTextField
124
     */
125
    private JTextField getTxtHost() {
126
        if (txtHost == null) {
127
            txtHost = new JTextField();
128
            txtHost.setPreferredSize(new java.awt.Dimension(120, 19));
129
            txtHost.setName("txtHost");
130
        }
131

    
132
        return txtHost;
133
    }
134

    
135
    /**
136
     * This method initializes jPanel1
137
     *
138
     * @return javax.swing.JPanel
139
     */
140
    private JPanel getJPanel1() {
141
        if (jPanel1 == null) {
142
            jPanel1 = new JPanel();
143
            jPanel1.setPreferredSize(new java.awt.Dimension(135, 225));
144

    
145
            FlowLayout layout = new FlowLayout();
146
            layout.setVgap(12);
147
            jPanel1.setLayout(layout);
148
            jPanel1.add(getCmbName(), null);
149
            jPanel1.add(getTxtHost(), null);
150
            jPanel1.add(getTxtPort(), null);
151
            jPanel1.add(getTxtUser(), null);
152
            jPanel1.add(getTxtPassword(), null);
153
            jPanel1.add(getTxtBD(), null);
154
            jPanel1.add(getCmbDriver(), null);
155
        }
156

    
157
        return jPanel1;
158
    }
159

    
160
    /**
161
     * This method initializes txtPort
162
     *
163
     * @return javax.swing.JTextField
164
     */
165
    private JTextField getTxtPort() {
166
        if (txtPort == null) {
167
            txtPort = new JTextField();
168
            txtPort.setPreferredSize(new java.awt.Dimension(40, 19));
169
            txtPort.setName("txtPort");
170
            txtPort.setText("3306");
171
            txtPort.setHorizontalAlignment(javax.swing.JTextField.LEFT);
172
        }
173

    
174
        return txtPort;
175
    }
176

    
177
    /**
178
     * This method initializes txtUser
179
     *
180
     * @return javax.swing.JTextField
181
     */
182
    private JTextField getTxtUser() {
183
        if (txtUser == null) {
184
            txtUser = new JTextField();
185
            txtUser.setPreferredSize(new java.awt.Dimension(120, 19));
186
            txtUser.setName("txtUser");
187
        }
188

    
189
        return txtUser;
190
    }
191

    
192
    /**
193
     * This method initializes txtPassword
194
     *
195
     * @return javax.swing.JTextField
196
     */
197
    private JPasswordField getTxtPassword() {
198
        if (txtPassword == null) {
199
            txtPassword = new JPasswordField();
200
            txtPassword.setPreferredSize(new java.awt.Dimension(120, 19));
201
            txtPassword.setName("txtPassword");
202
        }
203

    
204
        return txtPassword;
205
    }
206

    
207
    /**
208
     * This method initializes txtBD
209
     *
210
     * @return javax.swing.JTextField
211
     */
212
    private JTextField getTxtBD() {
213
        if (txtBD == null) {
214
            txtBD = new JTextField();
215
            txtBD.setPreferredSize(new java.awt.Dimension(120, 19));
216
            txtBD.setName("txtBD");
217
        }
218

    
219
        return txtBD;
220
    }
221

    
222
    /**
223
     * DOCUMENT ME!
224
     *
225
     * @return DOCUMENT ME!
226
     */
227
    public String getHost() {
228
        return getTxtHost().getText();
229
    }
230

    
231
    /**
232
     * DOCUMENT ME!
233
     *
234
     * @return DOCUMENT ME!
235
     */
236
    public String getPort() {
237
        return getTxtPort().getText();
238
    }
239

    
240
    /**
241
     * DOCUMENT ME!
242
     *
243
     * @return DOCUMENT ME!
244
     */
245
    public String getUser() {
246
        return getTxtUser().getText();
247
    }
248

    
249
    /**
250
     * DOCUMENT ME!
251
     *
252
     * @return DOCUMENT ME!
253
     */
254
    public String getSettingsName() {
255
        return getCmbName().getSelectedItem().toString();
256
    }
257

    
258
    /**
259
     * DOCUMENT ME!
260
     *
261
     * @return DOCUMENT ME!
262
     */
263
    public String getPassword() {
264
        return new String(getTxtPassword().getPassword());
265
    }
266

    
267
    /**
268
     * DOCUMENT ME!
269
     *
270
     * @return DOCUMENT ME!
271
     */
272
    public String getDBName() {
273
        return getTxtBD().getText();
274
    }
275

    
276
    /**
277
     * DOCUMENT ME!
278
     *
279
     * @param drivers DOCUMENT ME!
280
     */
281
    public void setDrivers(String[] drivers) {
282
        DefaultComboBoxModel model = new DefaultComboBoxModel();
283

    
284
        for (int i = 0; i < drivers.length; i++) {
285
            model.addElement(drivers[i]);
286
        }
287

    
288
        getCmbDriver().setModel(model);
289

    
290
        //Para que refresque el textbox del puerto
291
        if (drivers.length > 0)
292
            cmbDriver.setSelectedIndex(0);
293
        
294
    }
295

    
296
    /**
297
     * DOCUMENT ME!
298
     *
299
     * @return DOCUMENT ME!
300
     */
301
    public String getDriver() {
302
        return cmbDriver.getSelectedItem().toString();
303
    }
304

    
305
    /**
306
     * DOCUMENT ME!
307
     *
308
     * @param cs DOCUMENT ME!
309
     */
310
    public void setSettings(HashMap cs) {
311
        this.cs = cs;
312
        ((DefaultComboBoxModel) getCmbName().getModel()).removeAllElements();
313

    
314
        Iterator i = cs.keySet().iterator();
315

    
316
        while (i.hasNext()) {
317
            String item = (String) i.next();
318
            ((DefaultComboBoxModel) getCmbName().getModel()).addElement(item);
319
        }
320
    }
321

    
322
    /**
323
     * @see com.iver.utiles.swing.wizard.Step#init(com.iver.utiles.swing.wizard.WizardControl)
324
     */
325
    public void init(WizardControl w) {
326
    }
327

    
328
    /**
329
     * This method initializes cmbDriver
330
     *
331
     * @return com.iver.utiles.swing.JComboBox
332
     */
333
    private JComboBox getCmbDriver() {
334
        if (cmbDriver == null) {
335
            cmbDriver = new JComboBox();
336
            cmbDriver.setPreferredSize(new java.awt.Dimension(120, 19));
337
            cmbDriver.setName("cmbDriver");
338
            cmbDriver.addActionListener(new ActionListener() {
339
                public void actionPerformed(ActionEvent e) {
340
                    String driverName = cmbDriver.getSelectedItem().toString();
341
                    VectorialJDBCDriver driver;
342
                    try {
343
                        driver = (VectorialJDBCDriver) LayerFactory.getDM().getDriver(driverName);
344
                        getTxtPort().setText(Integer.toString(driver.getDefaultPort()));
345
                    } catch (DriverLoadException e1) {
346
                        getTxtPort().setText("");
347
                    }
348
                }
349
            });
350
        }
351

    
352
        return cmbDriver;
353
    }
354

    
355
    /**
356
     * DOCUMENT ME!
357
     *
358
     * @return
359
     */
360
    public boolean done() {
361
        return (getTxtBD().getText().length() > 0) &&
362
        (getTxtHost().getText().length() > 0) &&
363
        (getCmbName().getSelectedItem().toString().length() > 0);
364
    }
365

    
366
    /**
367
     * This method initializes jLabel6
368
     *
369
     * @return javax.swing.JLabel
370
     */
371
    private JLabel getJLabel6() {
372
        if (jLabel6 == null) {
373
            jLabel6 = new JLabel();
374
            jLabel6.setText(PluginServices.getText(this, "connection_name")+":");
375
            jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
376
        }
377

    
378
        return jLabel6;
379
    }
380

    
381
    /**
382
     * This method initializes jComboBox
383
     *
384
     * @return com.iver.utiles.swing.JComboBox
385
     */
386
    private com.iver.utiles.swing.JComboBox getCmbName() {
387
        if (cmbName == null) {
388
            cmbName = new com.iver.utiles.swing.JComboBox();
389
            cmbName.setEditable(true);
390
            cmbName.setPreferredSize(new java.awt.Dimension(120, 19));
391
            cmbName.setModel(new DefaultComboBoxModel());
392
            cmbName.addActionListener(new ActionListener() {
393
                    public void actionPerformed(ActionEvent e) {
394
                        Object item = cmbName.getSelectedItem();
395

    
396
                        if (item == null) {
397
                            return;
398
                        }
399

    
400
                        ConnectionSettings c = (ConnectionSettings) cs.get(item.toString());
401

    
402
                        if (c != null) {
403
                            getTxtHost().setText(c.getHost());
404
                            getTxtPort().setText(c.getPort());
405
                            getTxtBD().setText(c.getDb());
406
                            getTxtUser().setText(c.getUser());
407
                            getCmbDriver().setSelectedItem(c.getDriver());
408
                        }
409
                    }
410
                });
411
        }
412

    
413
        return cmbName;
414
    }
415
} //  @jve:decl-index=0:visual-constraint="7,3"