Statistics
| Revision:

root / trunk / extensions / extCAD / src / com / iver / cit / gvsig / gui / cad / panels / ChooseGeometryType.java @ 11971

History | View | Annotate | Download (7.78 KB)

1
package com.iver.cit.gvsig.gui.cad.panels;
2

    
3
import javax.swing.ButtonGroup;
4
import javax.swing.JLabel;
5
import javax.swing.JPanel;
6
import javax.swing.JRadioButton;
7
import javax.swing.JTextField;
8
import javax.swing.event.CaretEvent;
9
import javax.swing.event.CaretListener;
10

    
11
import jwizardcomponent.JWizardComponents;
12
import jwizardcomponent.JWizardPanel;
13

    
14
import com.hardcode.driverManager.Driver;
15
import com.iver.andami.PluginServices;
16
import com.iver.cit.gvsig.fmap.core.FShape;
17
import com.iver.cit.gvsig.fmap.edition.ISpatialWriter;
18
import com.iver.cit.gvsig.fmap.edition.IWriteable;
19

    
20
/**
21
 * @author fjp
22
 *
23
 * Panel para que el usuario seleccione el driver que va a utilizar para
24
 * crear un tema desde cero.
25
 *
26
 */
27
public class ChooseGeometryType extends JWizardPanel {
28

    
29
        private JLabel lblSelecGeometryType = null;
30
        private JPanel jPanelGeometryTypeOptions = null;
31
        private JRadioButton jRadioButtonPoint = null;
32
        private JRadioButton jRadioButtonLine = null;
33
        private JRadioButton jRadioButtonPolygon = null;
34
        private JRadioButton jRadioButtonMulti = null;
35
        private JRadioButton jRadioButtonMultiPoint = null;
36
        private JTextField jTextFieldLayerName = null;
37
        private JLabel jLabelLayerName = null;
38
        private String driverName;
39

    
40
        private class MyInputEventListener implements CaretListener
41
        {
42
                public void caretUpdate(CaretEvent arg0) {
43
                        if (jTextFieldLayerName.getText().length() > 0)
44
                                setNextButtonEnabled(true);
45
                        else
46
                                setNextButtonEnabled(false);
47

    
48
                }
49

    
50
        }
51

    
52
        public ChooseGeometryType(JWizardComponents wizardComponents) {
53
                super(wizardComponents);
54
                initialize();
55
                // TODO Auto-generated constructor stub
56
        }
57

    
58
        /**
59
         * This method initializes this
60
         *
61
         */
62
        private void initialize() {
63
        jLabelLayerName = new JLabel();
64
        jLabelLayerName.setBounds(new java.awt.Rectangle(14,9,321,22));
65
        jLabelLayerName.setText(PluginServices.getText(this,"enter_layer_name"));
66
        lblSelecGeometryType = new JLabel();
67
        lblSelecGeometryType.setText(PluginServices.getText(this,"select_geometry_type"));
68
        lblSelecGeometryType.setBounds(new java.awt.Rectangle(13,63,329,15));
69
        this.setLayout(null);
70
        this.setSize(new java.awt.Dimension(358,263));
71
        this.add(lblSelecGeometryType, null);
72
        this.add(getJPanelGeometryTypeOptions(), null);
73
        this.add(getJTextFieldLayerName(), null);
74
        this.add(jLabelLayerName, null);
75

    
76
        }
77

    
78
        /**
79
         * This method initializes jPanelGeometryTypeOptions
80
         *
81
         * @return javax.swing.JPanel
82
         */
83
        private JPanel getJPanelGeometryTypeOptions() {
84
                if (jPanelGeometryTypeOptions == null) {
85
                        jPanelGeometryTypeOptions = new JPanel();
86
                        jPanelGeometryTypeOptions.setLayout(null);
87
                        jPanelGeometryTypeOptions.setBorder(javax.swing.BorderFactory.createTitledBorder(null, PluginServices.getText(this,"Geometry_types"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
88
                        jPanelGeometryTypeOptions.setPreferredSize(new java.awt.Dimension(300,400));
89
                        jPanelGeometryTypeOptions.setBounds(new java.awt.Rectangle(14,82,326,172));
90
                        jPanelGeometryTypeOptions.add(getJRadioButtonPoint(), null);
91
                        jPanelGeometryTypeOptions.add(getJRadioButtonLine(), null);
92
                        jPanelGeometryTypeOptions.add(getJRadioButtonPolygon(), null);
93
                        jPanelGeometryTypeOptions.add(getJRadioButtonMulti(), null);
94
                        jPanelGeometryTypeOptions.add(getJRadioButtonMultiPoint(), null);
95

    
96
                    //Group the radio buttons.
97
                    ButtonGroup group = new ButtonGroup();
98
                    group.add(getJRadioButtonPoint());
99
                    group.add(getJRadioButtonLine());
100
                    group.add(getJRadioButtonPolygon());
101
                    group.add(getJRadioButtonMulti());
102
                    group.add(getJRadioButtonMultiPoint());
103

    
104
                }
105
                return jPanelGeometryTypeOptions;
106
        }
107

    
108
        /**
109
         * This method initializes jRadioButtonPoint
110
         *
111
         * @return javax.swing.JRadioButton
112
         */
113
        private JRadioButton getJRadioButtonPoint() {
114
                if (jRadioButtonPoint == null) {
115
                        jRadioButtonPoint = new JRadioButton();
116
                        jRadioButtonPoint.setText(PluginServices.getText(this,"point_type"));
117
                        jRadioButtonPoint.setBounds(new java.awt.Rectangle(19,31,297,23));
118
                }
119
                return jRadioButtonPoint;
120
        }
121

    
122
        /**
123
         * This method initializes jRadioButtonLine
124
         *
125
         * @return javax.swing.JRadioButton
126
         */
127
        private JRadioButton getJRadioButtonLine() {
128
                if (jRadioButtonLine == null) {
129
                        jRadioButtonLine = new JRadioButton();
130
                        jRadioButtonLine.setText(PluginServices.getText(this,"line_type"));
131
                        jRadioButtonLine.setSelected(true);
132
                        jRadioButtonLine.setBounds(new java.awt.Rectangle(19,81,297,23));
133
                }
134
                return jRadioButtonLine;
135
        }
136

    
137
        /**
138
         * This method initializes jRadioButtonPolygon
139
         *
140
         * @return javax.swing.JRadioButton
141
         */
142
        private JRadioButton getJRadioButtonPolygon() {
143
                if (jRadioButtonPolygon == null) {
144
                        jRadioButtonPolygon = new JRadioButton();
145
                        jRadioButtonPolygon.setText(PluginServices.getText(this,"polygon_type"));
146
                        jRadioButtonPolygon.setBounds(new java.awt.Rectangle(19,106,297,23));
147
                }
148
                return jRadioButtonPolygon;
149
        }
150

    
151
        /**
152
         * This method initializes jRadioButtonMulti
153
         *
154
         * @return javax.swing.JRadioButton
155
         */
156
        private JRadioButton getJRadioButtonMulti() {
157
                if (jRadioButtonMulti == null) {
158
                        jRadioButtonMulti = new JRadioButton();
159
                        jRadioButtonMulti.setText(PluginServices.getText(this,"multi_type"));
160
                        jRadioButtonMulti.setBounds(new java.awt.Rectangle(19,131,297,23));
161
                }
162
                return jRadioButtonMulti;
163
        }
164

    
165
        /**
166
         * This method initializes jRadioButton
167
         *
168
         * @return javax.swing.JRadioButton
169
         */
170
        private JRadioButton getJRadioButtonMultiPoint() {
171
                if (jRadioButtonMultiPoint == null) {
172
                        jRadioButtonMultiPoint = new JRadioButton();
173
                        jRadioButtonMultiPoint.setText(PluginServices.getText(this,"multipoint_type"));
174
                        jRadioButtonMultiPoint.setBounds(new java.awt.Rectangle(19,56,297,23));
175
                }
176
                return jRadioButtonMultiPoint;
177
        }
178

    
179
        /**
180
         * En funci?n de qu? tipo de driver sea, habilitamos o deshabilitamos
181
         * las opciones. Por ejemplo, si es de tipo shp, deshabilitamos
182
         * multi_type
183
         * @param writer
184
         */
185
        public void setDriver(Driver driver) {
186
                // En funci?n de qu? tipo de driver sea, habilitamos o deshabilitamos
187
                // las opciones. Por ejemplo, si es de tipo shp, deshabilitamos
188
                // multi_type
189
                IWriteable aux = (IWriteable) driver;
190
                ISpatialWriter writer = (ISpatialWriter) aux.getWriter(); 
191
                System.out.println("Writer seleccionado:" + writer.getName());
192
                driverName = driver.getName();
193
                getJRadioButtonPoint().setEnabled(writer.canWriteGeometry(FShape.POINT));
194
                getJRadioButtonMultiPoint().setEnabled(writer.canWriteGeometry(FShape.MULTIPOINT));
195
                getJRadioButtonLine().setEnabled(writer.canWriteGeometry(FShape.LINE));
196
                getJRadioButtonPolygon().setEnabled(writer.canWriteGeometry(FShape.POLYGON));
197
                getJRadioButtonMulti().setEnabled(writer.canWriteGeometry(FShape.MULTI));
198
        }
199

    
200
        public int getSelectedGeometryType()
201
        {
202
                if (getJRadioButtonPoint().isSelected())
203
                        return FShape.POINT;
204
                if (getJRadioButtonMultiPoint().isSelected())
205
                        return FShape.MULTIPOINT;
206
                if (getJRadioButtonLine().isSelected())
207
                        return FShape.LINE;
208
                if (getJRadioButtonPolygon().isSelected())
209
                        return FShape.POLYGON;
210
                if (getJRadioButtonMulti().isSelected())
211
                        return FShape.MULTI;
212

    
213
                return -1;
214
        }
215

    
216
        /**
217
         * This method initializes jTextLayerName
218
         *
219
         * @return javax.swing.JTextField
220
         */
221
        private JTextField getJTextFieldLayerName() {
222
                if (jTextFieldLayerName == null) {
223
                        jTextFieldLayerName = new JTextField();
224
                        jTextFieldLayerName.setBounds(new java.awt.Rectangle(13,36,323,20));
225
                        jTextFieldLayerName.setText("layer1"); //PluginServices.getText(this,"new_layer"));
226
                        jTextFieldLayerName.setHorizontalAlignment(javax.swing.JTextField.LEFT);
227
                        jTextFieldLayerName.addCaretListener(new MyInputEventListener());
228
                }
229
                return jTextFieldLayerName;
230
        }
231

    
232
        public String getLayerName() {
233
                return getJTextFieldLayerName().getText();
234
        }
235

    
236
        public String getSelectedDriver() {
237
                return driverName;
238
        }
239

    
240

    
241

    
242
}  //  @jve:decl-index=0:visual-constraint="10,10"