Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app.document.table.app / org.gvsig.app.document.table.app.mainplugin / src / main / java / org / gvsig / app / project / documents / table / gui / CreateNewAttributePanel.java @ 43981

History | View | Annotate | Download (22.5 KB)

1 40558 jjdelcerro
/**
2
 * gvSIG. Desktop Geographic Information System.
3 40435 jjdelcerro
 *
4 40558 jjdelcerro
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6 40435 jjdelcerro
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8 40558 jjdelcerro
 * as published by the Free Software Foundation; either version 3
9 40435 jjdelcerro
 * of the License, or (at your option) any later version.
10 40558 jjdelcerro
 *
11 40435 jjdelcerro
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15 40558 jjdelcerro
 *
16 40435 jjdelcerro
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18 40558 jjdelcerro
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 40435 jjdelcerro
 * MA  02110-1301, USA.
20 40558 jjdelcerro
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23 40435 jjdelcerro
 */
24
package org.gvsig.app.project.documents.table.gui;
25
26
import java.awt.BorderLayout;
27 43978 omartinez
import java.awt.GridBagConstraints;
28
import java.awt.GridBagLayout;
29 40435 jjdelcerro
import java.awt.GridLayout;
30
import java.awt.LayoutManager;
31 43978 omartinez
import java.awt.event.ActionEvent;
32 40435 jjdelcerro
import java.awt.event.ActionListener;
33
import java.awt.event.KeyEvent;
34
import java.awt.event.KeyListener;
35
import java.text.ParseException;
36 43978 omartinez
import javax.swing.ButtonGroup;
37
import javax.swing.JButton;
38 40435 jjdelcerro
39
import javax.swing.JComboBox;
40
import javax.swing.JLabel;
41 40729 jldominguez
import javax.swing.JOptionPane;
42 40435 jjdelcerro
import javax.swing.JPanel;
43 43978 omartinez
import javax.swing.JRadioButton;
44 40435 jjdelcerro
import javax.swing.JTextField;
45
46
import org.gvsig.andami.PluginServices;
47
import org.gvsig.andami.messages.NotificationManager;
48
import org.gvsig.andami.ui.mdiManager.IWindow;
49
import org.gvsig.andami.ui.mdiManager.WindowInfo;
50 43981 omartinez
import org.gvsig.app.ApplicationLocator;
51
import org.gvsig.app.ApplicationManager;
52 40435 jjdelcerro
import org.gvsig.fmap.dal.DataTypes;
53
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
54
import org.gvsig.fmap.dal.feature.EditableFeatureType;
55 43978 omartinez
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
56
import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator;
57 40435 jjdelcerro
import org.gvsig.gui.beans.AcceptCancelPanel;
58 40729 jldominguez
import org.gvsig.i18n.Messages;
59 40435 jjdelcerro
import org.gvsig.tools.ToolsLocator;
60
import org.gvsig.tools.dataTypes.DataTypesManager;
61 43981 omartinez
import org.gvsig.tools.i18n.I18nManager;
62 40435 jjdelcerro
63
/**
64
 * To create new FeatureAttributeDescriptor from the interface.
65 42533 dmartinezizquierdo
 *
66 40435 jjdelcerro
 * @author Vicente Caballero Navarro
67 42533 dmartinezizquierdo
 *
68 40435 jjdelcerro
 */
69 43978 omartinez
public class CreateNewAttributePanel extends JPanel implements IWindow, ActionListener {
70 40435 jjdelcerro
71
    /**
72 42533 dmartinezizquierdo
         *
73 40435 jjdelcerro
         */
74
    private static final long serialVersionUID = 6447641307779709964L;
75
    private static final String DEFAULT_FIELD_LENGTH = "50";
76
    private JLabel jLblFieldName = null;
77
    private JTextField jTxtFieldName = null;
78
    private JLabel jLblFieldType = null;
79
    private JComboBox jCboFieldType = null;
80
    private JLabel jLblFieldLength = null;
81
    private JTextField jTxtFieldLength = null;
82
    private JLabel jLblFieldPrecision = null;
83
    private JTextField jTxtFieldPrecision = null;
84
    private JLabel jLblDefaultValue = null;
85
    private JTextField jTxtDefaultValue = null;
86 43978 omartinez
    private JLabel jLblExpression = null;
87
    private JTextField jTxtExpression = null;
88
    private JRadioButton jRdbFieldReal = null;
89
    private JRadioButton jRdbFieldVirtual = null;
90
    private JButton jBtnExpression = null;
91 40435 jjdelcerro
    private WindowInfo viewInfo;
92
    private JPanel jPanel = null;
93
    private AcceptCancelPanel jPanelOkCancel = null;
94
    private JPanel jPnlFields = null;
95 42533 dmartinezizquierdo
    private int maxAttributeNameSize=-1;
96 40435 jjdelcerro
    private KeyListener checkInt = new KeyListener() {
97
98
        public void keyPressed(KeyEvent e) {
99
            // do nothing
100
        }
101
102
        public void keyReleased(KeyEvent e) {
103
            JTextField component = (JTextField) e.getComponent();
104
105
            try {
106
                component.setText(String.valueOf(Integer.parseInt(component
107
                    .getText())));
108
109
            } catch (Exception ex) {
110
                String text = component.getText();
111
                text =
112
                    (text.length() <= 1) ? "0" : text.substring(0,
113
                        text.length() - 1);
114
                component.setText(text);
115
            }
116
        }
117
118
        public void keyTyped(KeyEvent e) {
119
            // do nothing
120
        }
121
    };
122
    private String[] currentFieldNames;
123
124
    public CreateNewAttributePanel() {
125
        super();
126
        initialize();
127
    }
128
129
    public CreateNewAttributePanel(boolean isDoubleBuffered) {
130
        super(isDoubleBuffered);
131
        initialize();
132
    }
133
134
    public CreateNewAttributePanel(LayoutManager layout) {
135
        super(layout);
136
        initialize();
137
    }
138
139
    public CreateNewAttributePanel(LayoutManager layout,
140
        boolean isDoubleBuffered) {
141
        super(layout, isDoubleBuffered);
142
        initialize();
143
    }
144
145
    public WindowInfo getWindowInfo() {
146
        if (viewInfo == null) {
147
            viewInfo = new WindowInfo(WindowInfo.MODALDIALOG);
148
            viewInfo.setWidth(this.getWidth() + 8);
149
            viewInfo.setHeight(this.getHeight());
150
            viewInfo.setTitle(PluginServices.getText(this,
151
                "new_field_properties"));
152
        }
153
        return viewInfo;
154
    }
155
156
    /**
157
     * This method initializes this
158 42533 dmartinezizquierdo
     *
159 40435 jjdelcerro
     * @return void
160
     */
161
    private void initialize() {
162
        this.setLayout(new BorderLayout());
163 43978 omartinez
        this.setSize(300, 310);
164
        this.setPreferredSize(new java.awt.Dimension(300, 310));
165 40435 jjdelcerro
        this.add(getJPanel(), java.awt.BorderLayout.CENTER);
166
        this.add(getJPanelOkCancel(), java.awt.BorderLayout.SOUTH);
167
    }
168
169
    /**
170
     * This method initializes jTxtFieldName
171 42533 dmartinezizquierdo
     *
172 40435 jjdelcerro
     * @return javax.swing.JTextField
173
     */
174
    private JTextField getJTxtFieldName() {
175
        if (jTxtFieldName == null) {
176
            jTxtFieldName = new JTextField();
177
            jTxtFieldName.setBounds(new java.awt.Rectangle(147, 15, 138, 22));
178
        }
179
        return jTxtFieldName;
180
    }
181
182
    /**
183
     * This method initializes jCboFieldType
184 42533 dmartinezizquierdo
     *
185 40435 jjdelcerro
     * @return javax.swing.JComboBox
186
     */
187
    private JComboBox getJCboFieldType() {
188
        DataTypesManager manager = ToolsLocator.getDataTypesManager();
189
        if (jCboFieldType == null) {
190
            jCboFieldType = new JComboBox();
191
            jCboFieldType.setBounds(new java.awt.Rectangle(147, 52, 138, 22));
192
            jCboFieldType.addItem(manager.getTypeName(DataTypes.BOOLEAN));
193
            jCboFieldType.addItem(manager.getTypeName(DataTypes.DATE));
194
            jCboFieldType.addItem(manager.getTypeName(DataTypes.INT));
195
            jCboFieldType.addItem(manager.getTypeName(DataTypes.DOUBLE));
196
            jCboFieldType.addItem(manager.getTypeName(DataTypes.STRING));
197
198
            jCboFieldType.setSelectedIndex(4);
199
            jCboFieldType
200
                .addActionListener(new java.awt.event.ActionListener() {
201
202
                    public void actionPerformed(java.awt.event.ActionEvent e) {
203
                        DataTypesManager manager =
204
                            ToolsLocator.getDataTypesManager();
205
                        String strType =
206
                            (String) getJCboFieldType().getModel()
207
                                .getSelectedItem();
208 40943 jldominguez
                        if (strType == manager.getTypeName(DataTypes.DOUBLE)) {
209 40435 jjdelcerro
                            getJTxtFieldPrecision().setEnabled(true);
210
                            if (getJTxtFieldPrecision().getText().equals("")) {
211
                                getJTxtFieldPrecision().setText("3");
212
                            } else {
213
                                try {
214
                                    Integer.parseInt(getJTxtFieldPrecision()
215
                                        .getText());
216
                                } catch (NumberFormatException e1) {
217
                                    getJTxtFieldPrecision().setText("3");
218
                                }
219
                            }
220
                        } else {
221
                            getJTxtFieldPrecision().setEnabled(false);
222
                        }
223
                        if (strType == manager.getTypeName(DataTypes.BOOLEAN)) {
224
                            getJTxtFieldLength().setText("0");
225
                            getJTxtFieldLength().setEnabled(false);
226
                        } else {
227
                            getJTxtFieldLength().setEnabled(true);
228
                        }
229
230
                    }
231
                });
232
233
        }
234
        return jCboFieldType;
235
    }
236
237
    /**
238
     * This method initializes jTxtFieldLength
239 42533 dmartinezizquierdo
     *
240 40435 jjdelcerro
     * @return javax.swing.JTextField
241
     */
242
    private JTextField getJTxtFieldLength() {
243
        if (jTxtFieldLength == null) {
244
            jTxtFieldLength = new JTextField();
245
            jTxtFieldLength.setBounds(new java.awt.Rectangle(147, 89, 138, 22));
246
            jTxtFieldLength.setText(DEFAULT_FIELD_LENGTH);
247
            jTxtFieldLength.addKeyListener(checkInt);
248
        }
249
        return jTxtFieldLength;
250
    }
251
252
    /**
253
     * This method initializes jTxtFieldPrecision
254 42533 dmartinezizquierdo
     *
255 40435 jjdelcerro
     * @return javax.swing.JTextField
256
     */
257
    private JTextField getJTxtFieldPrecision() {
258
        if (jTxtFieldPrecision == null) {
259
            jTxtFieldPrecision = new JTextField();
260
            jTxtFieldPrecision.setBounds(new java.awt.Rectangle(147, 126, 138,
261
                22));
262
            jTxtFieldPrecision.setEnabled(false);
263
            jTxtFieldPrecision.addKeyListener(checkInt);
264
        }
265
        return jTxtFieldPrecision;
266
    }
267
268
    /**
269
     * This method initializes jTxtDefaultValue
270 42533 dmartinezizquierdo
     *
271 40435 jjdelcerro
     * @return javax.swing.JTextField
272
     */
273
    private JTextField getJTxtDefaultValue() {
274
        if (jTxtDefaultValue == null) {
275
            jTxtDefaultValue = new JTextField();
276
            jTxtDefaultValue
277 43978 omartinez
                .setBounds(new java.awt.Rectangle(147, 200, 138, 22));
278 40435 jjdelcerro
        }
279
        return jTxtDefaultValue;
280
    }
281
282
    public EditableFeatureAttributeDescriptor loadFieldDescription(
283
        EditableFeatureType featureType) throws ParseException {
284
        String nameAttr = "";
285
        int typeAttr = DataTypes.STRING;
286
        int sizeAttr = 0;
287
        int precisionAttr = 0;
288
        Object defaultValueAttr = "";
289
290
        nameAttr = getJTxtFieldName().getText();
291 42533 dmartinezizquierdo
292 40729 jldominguez
        if (nameAttr == null || nameAttr.length() == 0) {
293 42533 dmartinezizquierdo
294 40729 jldominguez
            JOptionPane.showMessageDialog(
295
                    this,
296
                    Messages.getText("_No_input_name"),
297
                    Messages.getText("_Rename_column"),
298
                    JOptionPane.ERROR_MESSAGE);
299
            return null;
300
        }
301 42533 dmartinezizquierdo
302
        if (maxAttributeNameSize>0){
303
            if (nameAttr.length()>maxAttributeNameSize){
304
                JOptionPane.showMessageDialog(
305
                    this,
306
                    Messages.getText("_Name_too_long"),
307
                    Messages.getText("_Rename_column"),
308
                    JOptionPane.ERROR_MESSAGE);
309
            return null;
310
            }
311
        }
312
313 40435 jjdelcerro
        String strType =
314
            (String) getJCboFieldType().getModel().getSelectedItem();
315
        typeAttr = ToolsLocator.getDataTypesManager().getType(strType);
316
        try {
317
            int fieldLength = Integer.parseInt(getJTxtFieldLength().getText());
318
            sizeAttr = fieldLength;
319
        } catch (Exception e) {
320
            throw new ParseException(e.getMessage(), 0);
321
        }
322
323
        if (typeAttr == DataTypes.DOUBLE) {
324
            try {
325
                precisionAttr =
326
                    Integer.parseInt(getJTxtFieldPrecision().getText());
327
            } catch (NumberFormatException e) {
328
                precisionAttr = 3;
329
            }
330
        }
331 43978 omartinez
332 40435 jjdelcerro
        if (featureType.getIndex(nameAttr) != -1) {
333
            NotificationManager.showMessageInfo(
334
                PluginServices.getText(this, "field_already_exists"), null);
335
            return null;
336
        }
337 43981 omartinez
        EditableFeatureAttributeDescriptor ead = null;
338 43978 omartinez
        if (getJRdbFieldVirtual().isSelected()) {
339
            String code = getJTxtExpression().getText();
340 43981 omartinez
            EmulatedFieldExpression myEmulated =
341 43978 omartinez
                    new EmulatedFieldExpression(
342 43981 omartinez
                            featureType,
343 43978 omartinez
                            code);
344 43981 omartinez
            if (!myEmulated.isValid()) {
345
                I18nManager i18n = ToolsLocator.getI18nManager();
346
                ApplicationManager application = ApplicationLocator.getManager();
347
                int x = application.confirmDialog(
348
                        "The expression used in this field is not valid."+
349
                                "\n\n"+
350
                                myEmulated.getErrorMessage()+
351
                                "\n\n"+
352
                                "Do you want add this field anyway?",
353
                        "Add invalid field",
354
                        JOptionPane.YES_NO_OPTION,
355
                        JOptionPane.QUESTION_MESSAGE,
356
                        "_AddingInvalidField.DoYouWantAddAnyway");
357
                if (x==JOptionPane.YES_OPTION) {
358
                    ead = featureType.add(nameAttr, typeAttr, myEmulated)
359
                    .setSize(sizeAttr);
360
                }
361
            } else {
362 43978 omartinez
            ead = featureType.add(nameAttr, typeAttr, myEmulated)
363
                    .setSize(sizeAttr);
364 43981 omartinez
            }
365 43978 omartinez
        } else {
366
            defaultValueAttr = getJTxtDefaultValue().getText();
367
            if (defaultValueAttr.equals("")) {
368
                defaultValueAttr = null;
369
            }
370
            ead = featureType.add(nameAttr, typeAttr, sizeAttr);
371
            ead.setPrecision(precisionAttr);
372
            ead.setDefaultValue(defaultValueAttr);
373
        }
374
375 40435 jjdelcerro
        return ead;
376
    }
377
378
    public void setOkAction(ActionListener okAction) {
379
        getJPanelOkCancel().setOkButtonActionListener(okAction);
380
381
    }
382
383
    /**
384
     * This method initializes jPanel
385 42533 dmartinezizquierdo
     *
386 40435 jjdelcerro
     * @return javax.swing.JPanel
387
     */
388
    private JPanel getJPanel() {
389
        if (jPanel == null) {
390
            jPanel = new JPanel();
391
            jPanel.setLayout(null);
392
393
            jPanel.add(getJPnlFields(), null);
394
        }
395
        return jPanel;
396
    }
397
398
    /**
399
     * This method initializes jPanelOkCancel
400 42533 dmartinezizquierdo
     *
401 40435 jjdelcerro
     * @return javax.swing.JPanel
402
     */
403
    private AcceptCancelPanel getJPanelOkCancel() {
404
        if (jPanelOkCancel == null) {
405
            jPanelOkCancel = new AcceptCancelPanel();
406
            jPanelOkCancel.setCancelButtonActionListener(new ActionListener() {
407
408
                public void actionPerformed(java.awt.event.ActionEvent e) {
409
                    PluginServices.getMDIManager().closeWindow(
410
                        CreateNewAttributePanel.this);
411
                }
412
            });
413
            jPanelOkCancel.setPreferredSize(new java.awt.Dimension(10, 50));
414
        }
415
        return jPanelOkCancel;
416
    }
417
418
    /**
419
     * This method initializes jPnlFields
420 42533 dmartinezizquierdo
     *
421 40435 jjdelcerro
     * @return javax.swing.JPanel
422
     */
423
    private JPanel getJPnlFields() {
424
        if (jPnlFields == null) {
425
            GridLayout gridLayout = new GridLayout();
426 43978 omartinez
            gridLayout.setRows(8);
427 40435 jjdelcerro
            gridLayout.setVgap(3);
428
            gridLayout.setHgap(5);
429
            gridLayout.setColumns(2);
430
            jPnlFields = new JPanel();
431
            jPnlFields.setLayout(gridLayout);
432 43978 omartinez
            jPnlFields.setBounds(new java.awt.Rectangle(5, 12, 290, 200));
433
//            jLblFieldReal  = new JLabel();
434
//            jLblFieldReal.setBounds(14, 237, 125, 22);
435
//            jLblFieldReal.setText(PluginServices.getText(this,
436
//                "default_value"));
437
//            jLblEmulated = new JLabel();
438
//            jLblEmulated
439
//                .setBounds(new java.awt.Rectangle(14, 200, 125, 22));
440
//            jLblEmulated.setText(PluginServices.getText(this,
441
//                "emulated"));
442
            jLblExpression = new JLabel();
443
            jLblExpression
444
                .setBounds(new java.awt.Rectangle(14, 272, 125, 22));
445
            jLblExpression.setText(PluginServices.getText(this,
446
                "expression"));
447 40435 jjdelcerro
            jLblDefaultValue = new JLabel();
448
            jLblDefaultValue
449 43978 omartinez
                .setBounds(new java.awt.Rectangle(14, 200, 125, 22));
450 40435 jjdelcerro
            jLblDefaultValue.setText(PluginServices.getText(this,
451
                "default_value"));
452
            jLblFieldPrecision = new JLabel();
453
            jLblFieldPrecision.setBounds(new java.awt.Rectangle(14, 126, 112,
454
                22));
455
            jLblFieldPrecision.setText(PluginServices
456
                .getText(this, "precision"));
457
            jLblFieldLength = new JLabel();
458
            jLblFieldLength.setBounds(new java.awt.Rectangle(14, 89, 99, 22));
459
            jLblFieldLength.setText(PluginServices
460
                .getText(this, "field_length"));
461
            jLblFieldType = new JLabel();
462
            jLblFieldType.setBounds(new java.awt.Rectangle(14, 52, 94, 22));
463
            jLblFieldType.setText(PluginServices.getText(this, "field_type"));
464
            jLblFieldName = new JLabel();
465
            jLblFieldName.setText(PluginServices.getText(this, "field_name"));
466
            jLblFieldName.setBounds(new java.awt.Rectangle(14, 15, 99, 22));
467
            jPnlFields.add(jLblFieldName, null);
468
            jPnlFields.add(getJTxtFieldName(), null);
469
            jPnlFields.add(jLblFieldType, null);
470
            jPnlFields.add(getJCboFieldType(), null);
471
            jPnlFields.add(jLblFieldLength, null);
472
            jPnlFields.add(getJTxtFieldLength(), null);
473
            jPnlFields.add(jLblFieldPrecision, null);
474
            jPnlFields.add(getJTxtFieldPrecision(), null);
475 43978 omartinez
476
477
478
            jPnlFields.add(getJRdbFieldReal(), null);
479
            jRdbFieldReal.addActionListener(this);
480
            jPnlFields.add(new JLabel(), null);
481
            //JPanel panelReal = new JPanel();
482 40435 jjdelcerro
            jPnlFields.add(jLblDefaultValue, null);
483 43975 omartinez
            jPnlFields.add(getJTxtDefaultValue(), null);
484 43978 omartinez
            //jPnlFields.add(panelReal);
485
486
            jPnlFields.add(getJRdbFieldVirtual(), null);
487
            jRdbFieldVirtual.addActionListener(this);
488
489
            jPnlFields.add(new JLabel(), null);
490
            jPnlFields.add(jLblExpression, null);
491
            JPanel panelVirtual = new JPanel();
492
//            panelVirtual.setLayout(new GridLayout(1, 2));
493
            GridBagLayout grid = new GridBagLayout();
494
            GridBagConstraints gbc = new GridBagConstraints();
495
            gbc.gridx = 0;
496
            gbc.gridy = 0;
497
            gbc.gridwidth = 3;
498
            gbc.gridheight = 1;
499
            gbc.weightx = 1.0;
500
            gbc.fill = GridBagConstraints.HORIZONTAL;
501
            panelVirtual.setLayout(grid);
502
503
            panelVirtual.add(getJTxtExpression(), gbc);
504
            gbc.gridx = 4;
505
            gbc.gridy = 0;
506
            gbc.gridwidth = 1;
507
            gbc.gridheight = 1;
508
            gbc.weightx = 0.0;
509
            gbc.weighty = 0.0;
510
            gbc.fill = GridBagConstraints.NONE;
511
            panelVirtual.add(getJBtnExpression(), gbc);
512
            jPnlFields.add(panelVirtual);
513
514
            //jPnlFields.add(jLblFieldVirtual, null);
515
            ButtonGroup defaultGroup = new ButtonGroup();
516
            defaultGroup.add(jRdbFieldReal);
517
            defaultGroup.add(jRdbFieldVirtual);
518
519
            // init visible
520
            jLblDefaultValue.setEnabled(true);
521
            jTxtDefaultValue.setEnabled(true);
522
            jLblExpression.setEnabled(false);
523
            jTxtExpression.setEnabled(false);
524
            jBtnExpression.setEnabled(false);
525
526 40435 jjdelcerro
        }
527
        return jPnlFields;
528
    }
529
530
    public void setCurrentFieldNames(String[] fieldNames) {
531
        currentFieldNames = fieldNames;
532
        String newField =
533
            PluginServices.getText(this, "field").replaceAll(" +", "_");
534
        int index = 0;
535
        for (int i = 0; i < currentFieldNames.length; i++) {
536
            if (currentFieldNames[i].startsWith(newField)) {
537
                try {
538
                    index =
539
                        Integer.parseInt(currentFieldNames[i].replaceAll(
540
                            newField, ""));
541
                } catch (Exception e) { /* we don't care */
542
                }
543
            }
544
        }
545
        jTxtFieldName.setText(newField + (++index));
546
    }
547
548
    public Object getWindowProfile() {
549
        return WindowInfo.DIALOG_PROFILE;
550
    }
551
552 42533 dmartinezizquierdo
    public void setMaxAttributeNameSize(int maxAttributeNameSize) {
553
        this.maxAttributeNameSize = maxAttributeNameSize;
554
    }
555
556 43978 omartinez
    private JTextField getJTxtExpression() {
557
        if (jTxtExpression == null) {
558
            jTxtExpression = new JTextField();
559
            jTxtExpression.setBounds(new java.awt.Rectangle(147, 200, 125, 22));
560
            jTxtExpression.setColumns(4);
561 43975 omartinez
        }
562 43978 omartinez
        return jTxtExpression;
563 43975 omartinez
    }
564 43978 omartinez
565
    private JRadioButton getJRdbFieldReal() {
566
        if (jRdbFieldReal == null) {
567
            jRdbFieldReal = new JRadioButton(PluginServices.getText(this, "_Real_field")); //"real_value"));
568
            jRdbFieldReal.setBounds(new java.awt.Rectangle(14, 163, 125, 22));
569
            jRdbFieldReal.setSelected(true);
570
        }
571
        return jRdbFieldReal;
572
    }
573
    private JRadioButton getJRdbFieldVirtual() {
574
        if (jRdbFieldVirtual == null) {
575
            jRdbFieldVirtual = new JRadioButton(PluginServices.getText(this, "_Virtual_field"));//"virtual_value"));
576
            jRdbFieldVirtual.setBounds(new java.awt.Rectangle(14, 237, 125, 22));
577
        }
578
        return jRdbFieldVirtual;
579
    }
580
581
    private JButton getJBtnExpression() {
582
        if (jBtnExpression == null) {
583
            jBtnExpression = new JButton();
584
            jBtnExpression.setText("...");
585
            //jBtnExpression.setBounds(new java.awt.Rectangle(147, 200, 125, 22));
586
            //jBtnExpression.setColumns(4);
587
        }
588
        return jBtnExpression;
589
    }
590
    @Override
591
    public void actionPerformed(ActionEvent e) {
592
        if (e.getSource()==jRdbFieldReal) {
593
            jLblDefaultValue.setEnabled(true);
594
            jTxtDefaultValue.setEnabled(true);
595
            jLblExpression.setEnabled(false);
596
            jTxtExpression.setEnabled(false);
597
            jBtnExpression.setEnabled(false);
598
599
        } else if (e.getSource()==jRdbFieldVirtual) {
600
            jLblDefaultValue.setEnabled(false);
601
            jTxtDefaultValue.setEnabled(false);
602
            jLblExpression.setEnabled(true);
603
            jTxtExpression.setEnabled(true);
604
            jBtnExpression.setEnabled(true);
605
606
        }
607
    }
608
609 40435 jjdelcerro
}