Statistics
| Revision:

root / trunk / applications / appgvSIG / src / com / iver / cit / gvsig / gui / jdbcwizard / DBLayerDefinition.java @ 2183

History | View | Annotate | Download (12.1 KB)

1
package com.iver.cit.gvsig.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"