Revision 2780

View differences:

branches/gvSIG_JDBC04/extensions/extJDBC/.project
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>gvSIG_JDBC</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
		<buildCommand>
9
			<name>org.eclipse.jdt.core.javabuilder</name>
10
			<arguments>
11
			</arguments>
12
		</buildCommand>
13
	</buildSpec>
14
	<natures>
15
		<nature>org.eclipse.jdt.core.javanature</nature>
16
	</natures>
17
</projectDescription>
0 18

  
branches/gvSIG_JDBC04/extensions/extJDBC/config/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<plugin-config>
3
	<depends plugin-name="com.iver.cit.gvsig" />
4
	<libraries library-dir="."/>
5
	<extensions>
6
		<extension class-name="com.iver.cit.gvsig.jdbc_spatial.ExtJDBC_Spatial"
7
			description="Support to access JDBC spatial databases PostgreSQL and mySQL"
8
			active="true"
9
			priority="1">
10
		</extension>		
11
	</extensions>
12
</plugin-config>
0 13

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/ExtJDBC_Spatial.java
1
/*
2
 * Created on 22-jun-2005
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 * 
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 * 
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *  
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 * 
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21
 *  
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 * 
34
 *    or
35
 * 
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 * 
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
package com.iver.cit.gvsig.jdbc_spatial;
45

  
46
import com.iver.andami.plugins.Extension;
47
import com.iver.cit.gvsig.AddLayer;
48
import com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard.WizardJDBC;
49

  
50
public class ExtJDBC_Spatial implements Extension {
51

  
52
    public void inicializar() {
53
        System.out.println("A?ado WizardJDBC.");
54
        AddLayer.addWizard(WizardJDBC.class);
55

  
56
    }
57

  
58
    public void execute(String actionCommand) {
59
        // TODO Auto-generated method stub
60

  
61
    }
62

  
63
    public boolean isEnabled() {
64
        // TODO Auto-generated method stub
65
        return false;
66
    }
67

  
68
    public boolean isVisible() {
69
        // TODO Auto-generated method stub
70
        return false;
71
    }
72

  
73
}
0 74

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/FieldSelection.java
1
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard;
2

  
3
import javax.swing.JPanel;
4

  
5
import javax.swing.DefaultListModel;
6
import javax.swing.JScrollPane;
7
import javax.swing.JList;
8
import javax.swing.JLabel;
9

  
10
import com.iver.andami.PluginServices;
11
import com.iver.utiles.swing.wizard.Step;
12
import com.iver.utiles.swing.wizard.WizardControl;
13
import javax.swing.JButton;
14
/**
15
 * @author Fernando Gonz?lez Cort?s
16
 */
17
public class FieldSelection extends JPanel implements Step{
18

  
19
	private JScrollPane jScrollPane = null;
20
	private JList lstCampos = null;
21
	private DefaultListModel lstFieldsModel;
22
	private JLabel jLabel = null;
23
	private JPanel jPanel = null;
24
	private JButton jButton = null;
25
	private JButton jButton1 = null;
26
	
27
	/**
28
	 * This is the default constructor
29
	 */
30
	public FieldSelection() {
31
		super();
32
		initialize();
33
	}
34
	/**
35
	 * This method initializes this
36
	 * 
37
	 * @return void
38
	 */
39
	private  void initialize() {
40
		jLabel = new JLabel();
41
		this.setSize(300, 200);
42
		jLabel.setText(PluginServices.getText(this, "seleccion_de_campos") + ":");
43
		jLabel.setPreferredSize(new java.awt.Dimension(352,15));
44
		jLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
45
		this.add(jLabel, null);
46
		this.add(getJScrollPane(), null);
47
		this.add(getJPanel(), null);
48
	}
49

  
50
	/**
51
	 * DOCUMENT ME!
52
	 *
53
	 * @param fields DOCUMENT ME!
54
	 */
55
	public void setFields(String[] fields) {
56
		lstFieldsModel = new DefaultListModel();
57

  
58
		for (int i = 0; i < fields.length; i++) {
59
			lstFieldsModel.addElement(fields[i]);
60
		}
61

  
62
		getLstCampos().setModel(lstFieldsModel);
63
	}
64

  
65
	/**
66
	 * DOCUMENT ME!
67
	 *
68
	 * @return DOCUMENT ME!
69
	 */
70
	public String[] getFields() {
71
		Object[] selection = getLstCampos().getSelectedValues();
72
		String[] ret = new String[selection.length];
73
		for (int i = 0; i < selection.length; i++) {
74
			ret[i] = (String) selection[i];
75
		}
76
			
77
		return ret;
78
	}
79
	
80
	/**
81
	 * This method initializes jScrollPane	
82
	 * 	
83
	 * @return javax.swing.JScrollPane	
84
	 */    
85
	private JScrollPane getJScrollPane() {
86
		if (jScrollPane == null) {
87
			jScrollPane = new JScrollPane();
88
			jScrollPane.setPreferredSize(new java.awt.Dimension(200,140));
89
			jScrollPane.setViewportView(getLstCampos());
90
		}
91
		return jScrollPane;
92
	}
93
	/**
94
	 * This method initializes lstCampos	
95
	 * 	
96
	 * @return javax.swing.JList	
97
	 */    
98
	private JList getLstCampos() {
99
		if (lstCampos == null) {
100
			lstCampos = new JList();
101
		}
102
		return lstCampos;
103
	}
104
	/**
105
	 * @see com.iver.utiles.swing.wizard.Step#init(com.iver.utiles.swing.wizard.WizardControl)
106
	 */
107
	public void init(WizardControl w) {
108
	}
109
	/**
110
	 * This method initializes jPanel	
111
	 * 	
112
	 * @return javax.swing.JPanel	
113
	 */    
114
	private JPanel getJPanel() {
115
		if (jPanel == null) {
116
			jPanel = new JPanel();
117
			jPanel.setPreferredSize(new java.awt.Dimension(350,25));
118
			jPanel.add(getJButton(), null);
119
			jPanel.add(getJButton1(), null);
120
		}
121
		return jPanel;
122
	}
123
	/**
124
	 * This method initializes jButton	
125
	 * 	
126
	 * @return javax.swing.JButton	
127
	 */    
128
	private JButton getJButton() {
129
		if (jButton == null) {
130
			jButton = new JButton();
131
			jButton.setText(PluginServices.getText(this, "select_all")+ ":");
132
			jButton.setPreferredSize(new java.awt.Dimension(93,18));
133
			jButton.addActionListener(new java.awt.event.ActionListener() { 
134
				public void actionPerformed(java.awt.event.ActionEvent e) {
135
					int[] indices = new int[lstCampos.getModel().getSize()];
136
					for (int i = 0; i < indices.length; i++) {
137
						indices[i] = i;
138
					}
139
					lstCampos.setSelectedIndices(indices);
140
				}
141
			});
142
		}
143
		return jButton;
144
	}
145
	/**
146
	 * This method initializes jButton1	
147
	 * 	
148
	 * @return javax.swing.JButton	
149
	 */    
150
	private JButton getJButton1() {
151
		if (jButton1 == null) {
152
			jButton1 = new JButton();
153
			jButton1.setText(PluginServices.getText(this, "select_none")+ ":");
154
			jButton1.setPreferredSize(new java.awt.Dimension(108,18));
155
			jButton1.addActionListener(new java.awt.event.ActionListener() { 
156
				public void actionPerformed(java.awt.event.ActionEvent e) {    
157
					lstCampos.setSelectedIndices(new int[0]);
158
				}
159
			});
160
		}
161
		return jButton1;
162
	}
163
	/**
164
	 * @return
165
	 */
166
	public boolean done() {
167
		return getLstCampos().getSelectedIndex() != -1;
168
	}
169
}
0 170

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/DBLayerDefinition.java
1
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard;
2

  
3
import com.iver.andami.PluginServices;
4
import com.iver.andami.ui.mdiManager.View;
5
import com.iver.utiles.swing.wizard.Step;
6
import com.iver.utiles.swing.wizard.WizardControl;
7

  
8
import java.awt.event.ActionEvent;
9
import java.awt.event.ActionListener;
10
import java.awt.geom.Rectangle2D;
11

  
12
import javax.swing.ButtonGroup;
13
import javax.swing.DefaultListModel;
14
import javax.swing.JLabel;
15
import javax.swing.JList;
16
import javax.swing.JPanel;
17
import javax.swing.JRadioButton;
18
import javax.swing.JScrollPane;
19
import javax.swing.JTextField;
20

  
21

  
22
import javax.swing.JButton;
23
/**
24
 * DOCUMENT ME!
25
 *
26
 * @author Fernando Gonz?lez Cort?s
27
 */
28
public class DBLayerDefinition extends JPanel implements Step {
29
    private JList lstTables = null;
30
    private JLabel jLabel = null;
31
    private JPanel pnlExtent = null;
32
    private JLabel jLabel1 = null;
33
    private JTextField txtMinX = null;
34
    private JLabel jLabel2 = null;
35
    private JTextField txtMaxX = null;
36
    private JLabel jLabel3 = null;
37
    private JTextField txtMinY = null;
38
    private JLabel jLabel4 = null;
39
    private JTextField txtMaxY = null;
40
    private DefaultListModel lstTablesModel = new DefaultListModel();
41
    private JRadioButton radFullTable = null;
42
    private JRadioButton radWorkingArea = null;
43
    private boolean advanced = false;
44
    private JScrollPane jScrollPane = null;
45
    private JPanel jPanel = null;
46
    private JTextField txtLayerName = null;
47
    private JPanel jPanel1 = null;
48
    private JLabel jLabel5 = null;
49

  
50
	private JButton jButton = null;
51
    /**
52
     * This is the default constructor
53
     */
54
    public DBLayerDefinition() {
55
        super();
56
        initialize();
57
    }
58

  
59
    /**
60
     * This method initializes this
61
     */
62
    private void initialize() {
63
        jLabel = new JLabel();
64
        this.setSize(509, 375);
65
        this.setPreferredSize(new java.awt.Dimension(1260, 180));
66
        jLabel.setText(PluginServices.getText(this, "seleccione_tabla") + ":");
67
        jLabel.setPreferredSize(new java.awt.Dimension(330, 15));
68
        jLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
69
        this.add(jLabel, null);
70
        this.add(getJScrollPane(), null);
71
        this.add(getJPanel(), null);
72
        this.add(getPnlExtent(), null);
73
        this.add(getJButton(), null);
74
        this.add(getJPanel1(), null);
75

  
76
        ButtonGroup bt = new ButtonGroup();
77
        bt.add(getRadFullTable());
78
        bt.add(getRadWorkingArea());
79
        enableExtent(false);
80
    }
81

  
82
    /**
83
     * This method initializes lstTables
84
     *
85
     * @return javax.swing.JList
86
     */
87
    private JList getLstTables() {
88
        if (lstTables == null) {
89
            lstTables = new JList();
90
            lstTables.setModel(lstTablesModel);
91
            lstTables.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
92
        }
93

  
94
        return lstTables;
95
    }
96

  
97
    /**
98
     * This method initializes pnlExtent
99
     *
100
     * @return javax.swing.JPanel
101
     */
102
    private JPanel getPnlExtent() {
103
        if (pnlExtent == null) {
104
            jLabel4 = new JLabel();
105
            jLabel3 = new JLabel();
106
            jLabel2 = new JLabel();
107
            jLabel1 = new JLabel();
108
            pnlExtent = new JPanel();
109
            pnlExtent.setPreferredSize(new java.awt.Dimension(400,60));
110
            jLabel1.setText("MinX:");
111
            jLabel2.setText("MaxX:");
112
            jLabel3.setText("MinY:");
113
            jLabel4.setText("MaxY:");
114
            pnlExtent.add(jLabel1, null);
115
            pnlExtent.add(getTxtMinX(), null);
116
            pnlExtent.add(jLabel2, null);
117
            pnlExtent.add(getTxtMaxX(), null);
118
            pnlExtent.add(jLabel3, null);
119
            pnlExtent.add(getTxtMinY(), null);
120
            pnlExtent.add(jLabel4, null);
121
            pnlExtent.add(getTxtMaxY(), null);
122
        }
123

  
124
        return pnlExtent;
125
    }
126

  
127
    /**
128
     * This method initializes txtMinX
129
     *
130
     * @return javax.swing.JTextField
131
     */
132
    private JTextField getTxtMinX() {
133
        if (txtMinX == null) {
134
            txtMinX = new JTextField();
135
            txtMinX.setPreferredSize(new java.awt.Dimension(100, 19));
136
        }
137

  
138
        return txtMinX;
139
    }
140

  
141
    /**
142
     * This method initializes txtMaxX
143
     *
144
     * @return javax.swing.JTextField
145
     */
146
    private JTextField getTxtMaxX() {
147
        if (txtMaxX == null) {
148
            txtMaxX = new JTextField();
149
            txtMaxX.setPreferredSize(new java.awt.Dimension(100, 19));
150
        }
151

  
152
        return txtMaxX;
153
    }
154

  
155
    /**
156
     * This method initializes txtMinY
157
     *
158
     * @return javax.swing.JTextField
159
     */
160
    private JTextField getTxtMinY() {
161
        if (txtMinY == null) {
162
            txtMinY = new JTextField();
163
            txtMinY.setPreferredSize(new java.awt.Dimension(100, 19));
164
        }
165

  
166
        return txtMinY;
167
    }
168

  
169
    /**
170
     * This method initializes txtMaxY
171
     *
172
     * @return javax.swing.JTextField
173
     */
174
    private JTextField getTxtMaxY() {
175
        if (txtMaxY == null) {
176
            txtMaxY = new JTextField();
177
            txtMaxY.setPreferredSize(new java.awt.Dimension(100, 19));
178
        }
179

  
180
        return txtMaxY;
181
    }
182

  
183
    /**
184
     * DOCUMENT ME!
185
     *
186
     * @param tables DOCUMENT ME!
187
     */
188
    public void setTables(String[] tables) {
189
        lstTablesModel = new DefaultListModel();
190

  
191
        for (int i = 0; i < tables.length; i++) {
192
            lstTablesModel.addElement(tables[i]);
193
        }
194

  
195
        getLstTables().setModel(lstTablesModel);
196
    }
197

  
198
    /**
199
     * DOCUMENT ME!
200
     *
201
     * @param rect DOCUMENT ME!
202
     */
203
    public void setExtent(Rectangle2D rect) {
204
        getTxtMinX().setText(String.valueOf(rect.getMinX()));
205
        getTxtMinY().setText(String.valueOf(rect.getMinY()));
206
        getTxtMaxX().setText(String.valueOf(rect.getMaxX()));
207
        getTxtMaxY().setText(String.valueOf(rect.getMaxY()));
208
    }
209

  
210
    /**
211
     * DOCUMENT ME!
212
     *
213
     * @return DOCUMENT ME!
214
     */
215
    public Rectangle2D getExtent() {
216
        if (getRadFullTable().isSelected()) {
217
            return null;
218
        } else {
219
            return new Rectangle2D.Double(Double.parseDouble(
220
                    getTxtMinX().getText()),
221
                Double.parseDouble(getTxtMinY().getText()),
222
                Double.parseDouble(getTxtMaxX().getText()) -
223
                Double.parseDouble(getTxtMinX().getText()),
224
                Double.parseDouble(getTxtMaxY().getText()) -
225
                Double.parseDouble(getTxtMinY().getText()));
226
        }
227
    }
228

  
229
    /**
230
     * DOCUMENT ME!
231
     *
232
     * @return DOCUMENT ME!
233
     */
234
    public boolean done() {
235
        boolean done = (getTable() != null) && (!getLayerName().trim().equals(""));
236

  
237
        if (getRadWorkingArea().isSelected()) {
238
            done = done && (getTxtMaxX().getText().length() > 0) &&
239
                (getTxtMaxY().getText().length() > 0) &&
240
                (getTxtMinX().getText().length() > 0) &&
241
                (getTxtMinY().getText().length() > 0);
242
        }
243

  
244
        return done;
245
    }
246

  
247
    /**
248
     * DOCUMENT ME!
249
     *
250
     * @return DOCUMENT ME!
251
     */
252
    public String getTable() {
253
        return (String) getLstTables().getSelectedValue();
254
    }
255

  
256
    /**
257
     * DOCUMENT ME!
258
     *
259
     * @return DOCUMENT ME!
260
     */
261
    public String getLayerName() {
262
        return (String) getTxtLayerName().getText();
263
    }
264
    
265
    public String getWhere(){
266
        throw new UnsupportedOperationException();
267
    }
268

  
269
    /**
270
     * This method initializes radFullTable
271
     *
272
     * @return javax.swing.JRadioButton
273
     */
274
    private JRadioButton getRadFullTable() {
275
        if (radFullTable == null) {
276
            radFullTable = new JRadioButton();
277
            radFullTable.setText(PluginServices.getText(this, "toda_la_tabla")+":");
278
            radFullTable.setSelected(true);
279
            radFullTable.addActionListener(new ActionListener() {
280
                    public void actionPerformed(ActionEvent e) {
281
                        enableExtent(radWorkingArea.isSelected());
282
                    }
283
                });
284
        }
285

  
286
        return radFullTable;
287
    }
288

  
289
    /**
290
     * DOCUMENT ME!
291
     *
292
     * @param enable DOCUMENT ME!
293
     */
294
    private void enableExtent(boolean enable) {
295
        for (int i = 0; i < pnlExtent.getComponentCount(); i++) {
296
            pnlExtent.getComponent(i).setEnabled(enable);
297
        }
298
    }
299

  
300
    /**
301
     * This method initializes radWorkingArea
302
     *
303
     * @return javax.swing.JRadioButton
304
     */
305
    private JRadioButton getRadWorkingArea() {
306
        if (radWorkingArea == null) {
307
            radWorkingArea = new JRadioButton();
308
            radWorkingArea.setText(PluginServices.getText(this, "area_trabajo")+":");
309
            radWorkingArea.addActionListener(new ActionListener() {
310
                    public void actionPerformed(ActionEvent e) {
311
                        enableExtent(radWorkingArea.isSelected());
312
                    }
313
                });
314
        }
315

  
316
        return radWorkingArea;
317
    }
318

  
319
    /**
320
     * This method initializes jScrollPane
321
     *
322
     * @return javax.swing.JScrollPane
323
     */
324
    private JScrollPane getJScrollPane() {
325
        if (jScrollPane == null) {
326
            jScrollPane = new JScrollPane();
327
            jScrollPane.setViewportView(getLstTables());
328
            jScrollPane.setPreferredSize(new java.awt.Dimension(270, 110));
329
        }
330

  
331
        return jScrollPane;
332
    }
333

  
334
    /**
335
     * @see com.iver.utiles.swing.wizard.Step#init(com.iver.utiles.swing.wizard.WizardControl)
336
     */
337
    public void init(WizardControl w) {
338
    }
339

  
340
    /**
341
     * This method initializes jPanel
342
     *
343
     * @return javax.swing.JPanel
344
     */
345
    private JPanel getJPanel() {
346
        if (jPanel == null) {
347
            jPanel = new JPanel();
348
            jPanel.add(getRadFullTable(), null);
349
            jPanel.add(getRadWorkingArea(), null);
350
        }
351

  
352
        return jPanel;
353
    }
354

  
355
    /**
356
     * This method initializes jTextField
357
     *
358
     * @return javax.swing.JTextField
359
     */
360
    private JTextField getTxtLayerName() {
361
        if (txtLayerName == null) {
362
            txtLayerName = new JTextField();
363
            txtLayerName.setPreferredSize(new java.awt.Dimension(100, 19));
364
        }
365

  
366
        return txtLayerName;
367
    }
368

  
369
    /**
370
     * This method initializes jPanel1
371
     *
372
     * @return javax.swing.JPanel
373
     */
374
    private JPanel getJPanel1() {
375
        if (jPanel1 == null) {
376
            jLabel5 = new JLabel();
377
            jPanel1 = new JPanel();
378
            jLabel5.setText(PluginServices.getText(this, "nombre_capa")+":");
379
            jPanel1.setPreferredSize(new java.awt.Dimension(383,29));
380
            jPanel1.add(jLabel5, null);
381
            jPanel1.add(getTxtLayerName(), null);
382
        }
383

  
384
        return jPanel1;
385
    }
386

  
387
    /**
388
     * @return
389
     */
390
    public Rectangle2D getWorkingArea() {
391
        if (getRadWorkingArea().isSelected()) {
392
            return new Rectangle2D.Double(
393
                    Double.parseDouble(getTxtMinX().getText()),
394
                    Double.parseDouble(getTxtMinY().getText()),
395
                    Double.parseDouble(getTxtMaxX().getText()) - Double.parseDouble(getTxtMinX().getText()),
396
                    Double.parseDouble(getTxtMaxY().getText()) - Double.parseDouble(getTxtMinY().getText())
397
                    );
398
        }else{
399
            return null;
400
        }
401
    }
402
	/**
403
	 * This method initializes jButton	
404
	 * 	
405
	 * @return javax.swing.JButton	
406
	 */    
407
	private JButton getJButton() {
408
		if (jButton == null) {
409
			jButton = new JButton();
410
			jButton.setText(PluginServices.getText(this, "importar_extent")+":");
411
			jButton.addActionListener(new ActionListener() {
412
                public void actionPerformed(ActionEvent e) {
413
                    View v = PluginServices.getMDIManager().getActiveView();
414
                    com.iver.cit.gvsig.gui.View vista = (com.iver.cit.gvsig.gui.View) v;
415
                    Rectangle2D r = vista.getModel().getMapContext().getViewPort().getAdjustedExtent();
416
                    getTxtMinX().setText(Double.toString(r.getMinX()));
417
                    getTxtMinY().setText(Double.toString(r.getMinY()));
418
                    getTxtMaxX().setText(Double.toString(r.getMaxX()));
419
                    getTxtMaxY().setText(Double.toString(r.getMaxY()));
420
                }
421
            });
422
		}
423
		return jButton;
424
	}
425
 } //  @jve:decl-index=0:visual-constraint="10,10"
0 426

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/UserException.java
1
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard;
2

  
3
/**
4
 * @author Fernando Gonz?lez Cort?s
5
 */
6
public class UserException extends Exception {
7

  
8
	/**
9
	 * @param string
10
	 */
11
	public UserException(String string) {
12
		super(string);
13
	}
14

  
15
}
0 16

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/ConnectionPanel.java
1
package com.iver.cit.gvsig.jdbc_spatial.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"
0 416

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/ConnectionSettings.java
1
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard;
2

  
3

  
4
/**
5
 * @author Fernando Gonz?lez Cort?s
6
 */
7
public class ConnectionSettings {
8
    private String host;
9
    private String port;
10
    private String db;
11
    private String driver;
12
    private String user;
13
    private String name;
14
    
15
    public String getDb() {
16
        return db;
17
    }
18
    public void setDb(String db) {
19
        this.db = db;
20
    }
21
    public String getDriver() {
22
        return driver;
23
    }
24
    public void setDriver(String driver) {
25
        this.driver = driver;
26
    }
27
    public String getHost() {
28
        return host;
29
    }
30
    public void setHost(String host) {
31
        this.host = host;
32
    }
33
    public String getPort() {
34
        return port;
35
    }
36
    public void setPort(String port) {
37
        this.port = port;
38
    }
39
    public String getUser() {
40
        return user;
41
    }
42
    public void setUser(String user) {
43
        this.user = user;
44
    }
45
    public void setName(String name) {
46
        this.name = name;
47
    }
48
    public String getName() {
49
        return name;
50
    }
51
    
52
    public String toString(){
53
        return host+","+port+","+db+","+driver+","+user+","+name;
54
    }
55
    
56
    public void setFromString(String str) {
57
        String[] values = str.split(",");
58
        host = values[0];
59
        port = values[1];
60
        db = values[2];
61
        driver = values[3];
62
        user = values[4];
63
        name = values[5];
64
    }
65
}
0 66

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/UniqueFieldSelection.java
1
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard;
2

  
3
import javax.swing.JPanel;
4

  
5
import javax.swing.DefaultListModel;
6
import javax.swing.JLabel;
7
import javax.swing.JScrollPane;
8
import javax.swing.JList;
9

  
10
import com.iver.andami.PluginServices;
11
/**
12
 * @author Fernando Gonz?lez Cort?s
13
 */
14
public class UniqueFieldSelection extends JPanel {
15

  
16
	private JLabel jLabel = null;
17
	private JScrollPane jScrollPane = null;
18
	private JList lstFields = null;
19
	private WizardJDBC w;
20
	/**
21
	 * This is the default constructor
22
	 */
23
	public UniqueFieldSelection() {
24
		super();
25
		initialize();
26
	}
27
	/**
28
	 * This method initializes this
29
	 * 
30
	 * @return void
31
	 */
32
	private  void initialize() {
33
		jLabel = new JLabel();
34
		this.setSize(300,200);
35
		jLabel.setText(PluginServices.getText(this, "select_unique_field")+":");
36
		jLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
37
		jLabel.setPreferredSize(new java.awt.Dimension(315,15));
38
		this.add(jLabel, null);
39
		this.add(getJScrollPane(), null);
40
		this.add(getJScrollPane(), null);
41
	}
42
	/**
43
	 * This method initializes jScrollPane	
44
	 * 	
45
	 * @return javax.swing.JScrollPane	
46
	 */    
47
	private JScrollPane getJScrollPane() {
48
		if (jScrollPane == null) {
49
			jScrollPane = new JScrollPane();
50
			jScrollPane.setViewportView(getLstFields());
51
			jScrollPane.setPreferredSize(new java.awt.Dimension(260,131));
52
		}
53
		return jScrollPane;
54
	}
55
	/**
56
	 * This method initializes jList	
57
	 * 	
58
	 * @return javax.swing.JList	
59
	 */    
60
	private JList getLstFields() {
61
		if (lstFields == null) {
62
			lstFields = new JList();
63
			lstFields.addListSelectionListener(new javax.swing.event.ListSelectionListener() { 
64
				public void valueChanged(javax.swing.event.ListSelectionEvent e) {    
65
					w.callStateChanged(lstFields.getSelectedIndices().length > 0);
66
				}
67
			});
68
		}
69
		return lstFields;
70
	}
71
	public void setWizard(WizardJDBC w) {
72
		this.w = w;
73
	}
74
	
75
	/**
76
	 * @param fields
77
	 */
78
	public void setFields(String[] fields) {
79
		DefaultListModel model = new DefaultListModel();
80
		for (int i = 0; i < fields.length; i++) {
81
			model.addElement(fields[i]);
82
		}
83
		
84
		lstFields.setModel(model);
85
	}
86
	
87
	public String getField(){
88
		return (String) getLstFields().getSelectedValue();
89
	}
90
}
0 91

  
branches/gvSIG_JDBC04/extensions/extJDBC/src/com/iver/cit/gvsig/jdbc_spatial/gui/jdbcwizard/GeomFieldSelection.java
1
package com.iver.cit.gvsig.jdbc_spatial.gui.jdbcwizard;
2

  
3
import javax.swing.JPanel;
4

  
5
import javax.swing.DefaultListModel;
6
import javax.swing.JLabel;
7
import javax.swing.JList;
8
import javax.swing.JScrollPane;
9

  
10
import com.iver.andami.PluginServices;
11
/**
12
 * @author Fernando Gonz?lez Cort?s
13
 */
14
public class GeomFieldSelection extends JPanel {
15

  
16
	private JLabel jLabel = null;
17
	private JList lstFields = null;
18
	private JScrollPane jScrollPane = null;
19
	/**
20
	 * This is the default constructor
21
	 */
22
	public GeomFieldSelection() {
23
		super();
24
		initialize();
25
	}
26
	/**
27
	 * This method initializes this
28
	 * 
29
	 * @return void
30
	 */
31
	private  void initialize() {
32
		jLabel = new JLabel();
33
		this.setSize(300,200);
34
		jLabel.setText(PluginServices.getText(this, "select_geom_field") + ":");
35
		jLabel.setPreferredSize(new java.awt.Dimension(359,15));
36
		jLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
37
		this.add(jLabel, null);
38
		this.add(getJScrollPane(), null);
39
	}
40
	/**
41
	 * This method initializes jList	
42
	 * 	
43
	 * @return javax.swing.JList	
44
	 */    
45
	private JList getLstFields() {
46
		if (lstFields == null) {
47
			lstFields = new JList();
48
			lstFields.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
49
		}
50
		return lstFields;
51
	}
52
	/**
53
	 * This method initializes jScrollPane	
54
	 * 	
55
	 * @return javax.swing.JScrollPane	
56
	 */    
57
	private JScrollPane getJScrollPane() {
58
		if (jScrollPane == null) {
59
			jScrollPane = new JScrollPane();
60
			jScrollPane.setViewportView(getLstFields());
61
			jScrollPane.setPreferredSize(new java.awt.Dimension(260,131));
62
		}
63
		return jScrollPane;
64
	}
65
	
66
	public boolean done() {
67
		return (lstFields.getSelectedIndex() != -1);
68
	}
69
	/**
70
	 * @param fields
71
	 */
72
	public void setFields(String[] fields) {
73
		DefaultListModel model = new DefaultListModel();
74
		for (int i = 0; i < fields.length; i++) {
75
			model.addElement(fields[i]);
76
		}
77
		
78
		lstFields.setModel(model);
79
	}
80
	
81
	public String getField(){
82
		return (String) getLstFields().getSelectedValue();
83
	}
84
  }
0 85

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff