Statistics
| Revision:

root / trunk / extensions / extJDBC / src / com / iver / cit / gvsig / jdbc_spatial / gui / jdbcwizard / DBLayerDefinitionPanel.java @ 6703

History | View | Annotate | Download (14.2 KB)

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

    
3
import java.awt.event.ActionEvent;
4
import java.awt.event.ActionListener;
5
import java.awt.geom.Rectangle2D;
6

    
7
import javax.swing.ButtonGroup;
8
import javax.swing.DefaultListModel;
9
import javax.swing.JLabel;
10
import javax.swing.JList;
11
import javax.swing.JOptionPane;
12
import javax.swing.JPanel;
13
import javax.swing.JRadioButton;
14
import javax.swing.JScrollPane;
15
import javax.swing.JTextField;
16

    
17
import org.gvsig.gui.beans.swing.JButton;
18

    
19
import com.iver.andami.PluginServices;
20
import com.iver.andami.ui.mdiManager.View;
21
import com.iver.utiles.swing.wizard.Step;
22
import com.iver.utiles.swing.wizard.WizardControl;
23
/**
24
 * DOCUMENT ME!
25
 *
26
 * @author Fernando Gonz?lez Cort?s
27
 */
28
public class DBLayerDefinitionPanel 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 DBLayerDefinitionPanel() {
55
        super();
56
        initialize();
57
    }
58

    
59
    /**
60
     * This method initializes this
61
     */
62
    private void initialize() {
63
        jLabel = new JLabel();
64
        this.setLayout(null);
65
        this.setSize(509, 271);
66
        this.setPreferredSize(new java.awt.Dimension(1260, 180));
67
        jLabel.setText(PluginServices.getText(this, "seleccione_tabla") + ":");
68
        //jLabel.setPreferredSize(new java.awt.Dimension(330, 15));
69
        jLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
70
        jLabel.setBounds(20, 8, 460, 15);
71
        jLabel.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
72
        this.add(getJPanel1(), null);
73
        this.add(getJButton(), null);
74
        this.add(getPnlExtent(), null);
75
        this.add(getJPanel(), null);
76
        this.add(getJScrollPane(), null);
77
        this.add(jLabel, null);
78
        ButtonGroup bt = new ButtonGroup();
79
        bt.add(getRadFullTable());
80
        bt.add(getRadWorkingArea());
81
        enableExtent(false);
82
    }
83

    
84
    /**
85
     * This method initializes lstTables
86
     *
87
     * @return javax.swing.JList
88
     */
89
    private JList getLstTables() {
90
        if (lstTables == null) {
91
            lstTables = new JList();
92
            lstTables.setModel(lstTablesModel);
93
            lstTables.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
94
            lstTables.addListSelectionListener(new javax.swing.event.ListSelectionListener() { 
95
                    public void valueChanged(javax.swing.event.ListSelectionEvent e) {    
96
                    String aux = (String) lstTables.getSelectedValue();
97
                    getTxtLayerName().setText(aux);
98
                    }
99
            });
100
        }
101

    
102
        return lstTables;
103
    }
104

    
105
    /**
106
     * This method initializes pnlExtent
107
     *
108
     * @return javax.swing.JPanel
109
     */
110
    private JPanel getPnlExtent() {
111
        if (pnlExtent == null) {
112
            jLabel4 = new JLabel();
113
            jLabel3 = new JLabel();
114
            jLabel2 = new JLabel();
115
            jLabel1 = new JLabel();
116
            pnlExtent = new JPanel();
117
            pnlExtent.setLayout(null);
118
            pnlExtent.setPreferredSize(new java.awt.Dimension(400,60));
119
            jLabel1.setText(PluginServices.getText(this, "minx") + ":");
120
            jLabel1.setBounds(9, 25, 50, 15);
121
            jLabel2.setText(PluginServices.getText(this, "maxx") + ":");
122
            jLabel2.setBounds(9, 80, 50, 15);
123
            jLabel3.setText(PluginServices.getText(this, "miny") + ":");
124
            jLabel3.setBounds(9, 48, 50, 15);
125
            jLabel4.setText(PluginServices.getText(this, "maxy") + ":");
126
            jLabel4.setBounds(9, 103, 50, 15);
127
            pnlExtent.setBounds(20, 320, 194, 131);
128
            String strWorkingArea = PluginServices.getText(this,"area_trabajo");
129
            pnlExtent.setBorder(javax.swing.BorderFactory.createTitledBorder(null, strWorkingArea, javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
130
            pnlExtent.add(getTxtMaxY(), null);
131
            pnlExtent.add(jLabel4, null);
132
            pnlExtent.add(getTxtMinY(), null);
133
            pnlExtent.add(jLabel3, null);
134
            pnlExtent.add(getTxtMaxX(), null);
135
            pnlExtent.add(jLabel2, null);
136
            pnlExtent.add(getTxtMinX(), null);
137
            pnlExtent.add(jLabel1, null);
138
        }
139

    
140
        return pnlExtent;
141
    }
142

    
143
    /**
144
     * This method initializes txtMinX
145
     *
146
     * @return javax.swing.JTextField
147
     */
148
    private JTextField getTxtMinX() {
149
        if (txtMinX == null) {
150
            txtMinX = new JTextField();
151
            txtMinX.setPreferredSize(new java.awt.Dimension(100, 19));
152
            txtMinX.setBounds(65, 21, 118, 19);
153
        }
154

    
155
        return txtMinX;
156
    }
157

    
158
    /**
159
     * This method initializes txtMaxX
160
     *
161
     * @return javax.swing.JTextField
162
     */
163
    private JTextField getTxtMaxX() {
164
        if (txtMaxX == null) {
165
            txtMaxX = new JTextField();
166
            txtMaxX.setPreferredSize(new java.awt.Dimension(100, 19));
167
            txtMaxX.setBounds(65, 76, 118, 19);
168
        }
169

    
170
        return txtMaxX;
171
    }
172

    
173
    /**
174
     * This method initializes txtMinY
175
     *
176
     * @return javax.swing.JTextField
177
     */
178
    private JTextField getTxtMinY() {
179
        if (txtMinY == null) {
180
            txtMinY = new JTextField();
181
            txtMinY.setPreferredSize(new java.awt.Dimension(100, 19));
182
            txtMinY.setBounds(65, 44, 118, 19);
183
        }
184

    
185
        return txtMinY;
186
    }
187

    
188
    /**
189
     * This method initializes txtMaxY
190
     *
191
     * @return javax.swing.JTextField
192
     */
193
    private JTextField getTxtMaxY() {
194
        if (txtMaxY == null) {
195
            txtMaxY = new JTextField();
196
            txtMaxY.setPreferredSize(new java.awt.Dimension(100, 19));
197
            txtMaxY.setBounds(65, 99, 118, 19);
198
        }
199

    
200
        return txtMaxY;
201
    }
202

    
203
    /**
204
     * DOCUMENT ME!
205
     *
206
     * @param tables DOCUMENT ME!
207
     */
208
    public void setTables(String[] tables) {
209
        lstTablesModel = new DefaultListModel();
210

    
211
        for (int i = 0; i < tables.length; i++) {
212
            lstTablesModel.addElement(tables[i]);
213
        }
214

    
215
        getLstTables().setModel(lstTablesModel);
216
    }
217

    
218
    /**
219
     * DOCUMENT ME!
220
     *
221
     * @param rect DOCUMENT ME!
222
     */
223
    public void setExtent(Rectangle2D rect) {
224
        getTxtMinX().setText(String.valueOf(rect.getMinX()));
225
        getTxtMinY().setText(String.valueOf(rect.getMinY()));
226
        getTxtMaxX().setText(String.valueOf(rect.getMaxX()));
227
        getTxtMaxY().setText(String.valueOf(rect.getMaxY()));
228
    }
229

    
230
    /**
231
     * DOCUMENT ME!
232
     *
233
     * @return DOCUMENT ME!
234
     */
235
    public Rectangle2D getExtent() {
236
        if (getRadFullTable().isSelected()) {
237
            return null;
238
        } else {
239
            return new Rectangle2D.Double(Double.parseDouble(
240
                    getTxtMinX().getText()),
241
                Double.parseDouble(getTxtMinY().getText()),
242
                Double.parseDouble(getTxtMaxX().getText()) -
243
                Double.parseDouble(getTxtMinX().getText()),
244
                Double.parseDouble(getTxtMaxY().getText()) -
245
                Double.parseDouble(getTxtMinY().getText()));
246
        }
247
    }
248

    
249
    /**
250
     * DOCUMENT ME!
251
     *
252
     * @return DOCUMENT ME!
253
     */
254
    public boolean done() {
255
        boolean done = (getTable() != null) && (!getLayerName().trim().equals(""));
256

    
257
        if (getRadWorkingArea().isSelected()) {
258
            done = done && (getTxtMaxX().getText().length() > 0) &&
259
                (getTxtMaxY().getText().length() > 0) &&
260
                (getTxtMinX().getText().length() > 0) &&
261
                (getTxtMinY().getText().length() > 0);
262
        }
263

    
264
        return done;
265
    }
266

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

    
276
    /**
277
     * DOCUMENT ME!
278
     *
279
     * @return DOCUMENT ME!
280
     */
281
    public String getLayerName() {
282
        return (String) getTxtLayerName().getText();
283
    }
284
    
285
    public String getWhere(){
286
        throw new UnsupportedOperationException();
287
    }
288

    
289
    /**
290
     * This method initializes radFullTable
291
     *
292
     * @return javax.swing.JRadioButton
293
     */
294
    private JRadioButton getRadFullTable() {
295
        if (radFullTable == null) {
296
            radFullTable = new JRadioButton();
297
            radFullTable.setText(PluginServices.getText(this, "toda_la_tabla")+":");
298
            radFullTable.setSelected(true);
299
            radFullTable.setPreferredSize(new java.awt.Dimension(189,23));
300
            radFullTable.addActionListener(new ActionListener() {
301
                    public void actionPerformed(ActionEvent e) {
302
                        enableExtent(radWorkingArea.isSelected());
303
                    }
304
                });
305
        }
306

    
307
        return radFullTable;
308
    }
309

    
310
    /**
311
     * DOCUMENT ME!
312
     *
313
     * @param enable DOCUMENT ME!
314
     */
315
    private void enableExtent(boolean enable) {
316
        for (int i = 0; i < pnlExtent.getComponentCount(); i++) {
317
            pnlExtent.getComponent(i).setEnabled(enable);
318
        }
319
        getJButton().setEnabled(enable);
320
    }
321

    
322
    /**
323
     * This method initializes radWorkingArea
324
     *
325
     * @return javax.swing.JRadioButton
326
     */
327
    private JRadioButton getRadWorkingArea() {
328
        if (radWorkingArea == null) {
329
            radWorkingArea = new JRadioButton();
330
            radWorkingArea.setText(PluginServices.getText(this, "area_trabajo")+":");
331
            radWorkingArea.setPreferredSize(new java.awt.Dimension(189,23));
332
            radWorkingArea.addActionListener(new ActionListener() {
333
                    public void actionPerformed(ActionEvent e) {
334
                        enableExtent(radWorkingArea.isSelected());
335
                    }
336
                });
337
        }
338

    
339
        return radWorkingArea;
340
    }
341

    
342
    /**
343
     * This method initializes jScrollPane
344
     *
345
     * @return javax.swing.JScrollPane
346
     */
347
    private JScrollPane getJScrollPane() {
348
        if (jScrollPane == null) {
349
            jScrollPane = new JScrollPane();
350
            jScrollPane.setBounds(20, 25, 460, 175);
351
            jScrollPane.setViewportView(getLstTables());
352
            //jScrollPane.setPreferredSize(new java.awt.Dimension(270, 110));
353
        }
354

    
355
        return jScrollPane;
356
    }
357

    
358
    /**
359
     * @see com.iver.utiles.swing.wizard.Step#init(com.iver.utiles.swing.wizard.WizardControl)
360
     */
361
    public void init(WizardControl w) {
362
    }
363

    
364
    /**
365
     * This method initializes jPanel
366
     *
367
     * @return javax.swing.JPanel
368
     */
369
    private JPanel getJPanel() {
370
        if (jPanel == null) {
371
            jPanel = new JPanel();
372
            jPanel.setBounds(20, 230, 200, 55);
373
            jPanel.add(getRadFullTable(), null);
374
            jPanel.add(getRadWorkingArea(), null);
375
            
376
        }
377

    
378
        return jPanel;
379
    }
380

    
381
    /**
382
     * This method initializes jTextField
383
     *
384
     * @return javax.swing.JTextField
385
     */
386
    private JTextField getTxtLayerName() {
387
        if (txtLayerName == null) {
388
            txtLayerName = new JTextField();
389
            //txtLayerName.setPreferredSize(new java.awt.Dimension(100, 19));
390
            txtLayerName.setBounds(230, 5, 230, 19);
391
        }
392

    
393
        return txtLayerName;
394
    }
395

    
396
    /**
397
     * This method initializes jPanel1
398
     *
399
     * @return javax.swing.JPanel
400
     */
401
    private JPanel getJPanel1() {
402
        if (jPanel1 == null) {
403
            jLabel5 = new JLabel();
404
            jPanel1 = new JPanel();
405
            jLabel5.setText(PluginServices.getText(this, "nombre_capa")+":");
406
            jLabel5.setBounds(0, 5, 220, 15);
407
            jPanel1.setLayout(null);
408
            //jPanel1.setPreferredSize(new java.awt.Dimension(383,29));
409
            jPanel1.setBounds(20, 200, 460, 25);
410
            jPanel1.add(getTxtLayerName(), null);
411
            jPanel1.add(jLabel5, null);
412
        }
413

    
414
        return jPanel1;
415
    }
416

    
417
    /**
418
     * @return
419
     */
420
    public Rectangle2D getWorkingArea() {
421
        if (getRadWorkingArea().isSelected()) {
422
            return new Rectangle2D.Double(
423
                    Double.parseDouble(getTxtMinX().getText()),
424
                    Double.parseDouble(getTxtMinY().getText()),
425
                    Double.parseDouble(getTxtMaxX().getText()) - Double.parseDouble(getTxtMinX().getText()),
426
                    Double.parseDouble(getTxtMaxY().getText()) - Double.parseDouble(getTxtMinY().getText())
427
                    );
428
        }else{
429
            return null;
430
        }
431
    }
432
        /**
433
         * This method initializes jButton        
434
         *         
435
         * @return javax.swing.JButton        
436
         */    
437
        private JButton getJButton() {
438
                if (jButton == null) {
439
                        jButton = new JButton();
440
                        jButton.setText(PluginServices.getText(this, "importar_extent")+":");
441
                        jButton.setBounds(20, 290, 300, 27);
442
                        jButton.addActionListener(new ActionListener() {
443
                public void actionPerformed(ActionEvent e) {
444
                    View v = PluginServices.getMDIManager().getActiveView();
445
                    com.iver.cit.gvsig.gui.View vista = (com.iver.cit.gvsig.gui.View) v;
446
                    Rectangle2D r = vista.getModel().getMapContext().getViewPort().getAdjustedExtent();
447
                    if (r == null)
448
                    {
449
                        JOptionPane.showMessageDialog(null,PluginServices.getText(this, "aviso_sin_extent_de_referencia"));
450
                        return;
451
                    }
452
                    
453
                    getTxtMinX().setText(Double.toString(r.getMinX()));
454
                    getTxtMinY().setText(Double.toString(r.getMinY()));
455
                    getTxtMaxX().setText(Double.toString(r.getMaxX()));
456
                    getTxtMaxY().setText(Double.toString(r.getMaxY()));
457
                }
458
            });
459
                }
460
                return jButton;
461
        }
462
 } //  @jve:decl-index=0:visual-constraint="10,10"