Statistics
| Revision:

root / trunk / extensions / extTableImport / src / org / gvsig / tableImport / importfields / ui / FieldPanel.java @ 28459

History | View | Annotate | Download (5.94 KB)

1
package org.gvsig.tableImport.importfields.ui;
2

    
3
import java.awt.GridBagConstraints;
4
import java.awt.Insets;
5
import java.awt.event.FocusEvent;
6
import java.awt.event.FocusListener;
7
import java.awt.event.ItemEvent;
8
import java.awt.event.ItemListener;
9
import java.awt.event.KeyEvent;
10
import java.awt.event.KeyListener;
11
import java.beans.PropertyChangeEvent;
12

    
13
import javax.swing.JCheckBox;
14
import javax.swing.JComponent;
15
import javax.swing.JPanel;
16
import javax.swing.JTextField;
17
import javax.swing.event.DocumentEvent;
18
import javax.swing.event.DocumentListener;
19

    
20
public class FieldPanel extends JComponent implements DocumentListener, ItemListener,KeyListener, FocusListener {
21

    
22
        private static final long serialVersionUID = 1L;
23
        private JCheckBox chkImport = null;
24
        private JTextField txtSourceField = null;
25
        private JTextField txtTargetFieldName = null;
26
        private boolean txtTargetFieldName_changed = false;
27

    
28
        private boolean updating=false;
29
        /**
30
         * This is the default constructor
31
         */
32

    
33

    
34
        /**
35
         * This method initializes this
36
         *
37
         * @return void
38
         */
39
        protected void loadIn(JPanel panel) {
40
                GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
41
                gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;
42
//                gridBagConstraints2.gridy = 0;
43
                gridBagConstraints2.weightx = 1.0;
44
                gridBagConstraints2.insets = new Insets(2, 2, 2, 2);
45
                gridBagConstraints2.gridx = 2;
46
                GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
47
                gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL;
48
//                gridBagConstraints1.gridy = 0;
49
                gridBagConstraints1.weightx = 1.0D;
50
                gridBagConstraints1.anchor = GridBagConstraints.CENTER;
51
                gridBagConstraints1.gridwidth = 1;
52
                gridBagConstraints1.insets = new Insets(2, 2, 2, 2);
53
                gridBagConstraints1.gridx = 1;
54
                GridBagConstraints gridBagConstraints = new GridBagConstraints();
55
                gridBagConstraints.gridx = 0;
56
                gridBagConstraints.anchor = GridBagConstraints.CENTER;
57
                //gridBagConstraints.gridy = 0;
58
                //this.setSize(350, 28);
59
                //this.setLayout(new GridBagLayout());
60
                //this.setPreferredSize(new Dimension(350, 28));
61
                panel.add(getChkImport(), gridBagConstraints);
62
                panel.add(getTxtSourceField(), gridBagConstraints1);
63
                panel.add(getTxtTargetFieldName(), gridBagConstraints2);
64
        }
65

    
66
        protected void removeFrom(JPanel panel) {
67
                panel.remove(getChkImport());
68
                panel.remove(getTxtSourceField());
69
                panel.remove(getTxtTargetFieldName());
70
        }
71

    
72
        /**
73
         * This method initializes chkImport
74
         *
75
         * @return javax.swing.JCheckBox
76
         */
77
        private JCheckBox getChkImport() {
78
                if (chkImport == null) {
79
                        chkImport = new JCheckBox();
80
                        chkImport.setName("import");
81
                        chkImport.addItemListener(this);
82
                }
83
                return chkImport;
84
        }
85

    
86
        /**
87
         * This method initializes txtSourceField
88
         *
89
         * @return javax.swing.JTextField
90
         */
91
        private JTextField getTxtSourceField() {
92
                if (txtSourceField == null) {
93
                        txtSourceField = new JTextField();
94
                        txtSourceField.setName("sourceField");
95
                        txtSourceField.setEditable(false);
96
                }
97
                return txtSourceField;
98
        }
99

    
100
        /**
101
         * This method initializes txtTargetFieldName
102
         *
103
         * @return javax.swing.JTextField
104
         */
105
        private JTextField getTxtTargetFieldName() {
106
                if (txtTargetFieldName == null) {
107
                        txtTargetFieldName = new JTextField();
108
                        txtTargetFieldName.getDocument().addDocumentListener(this);
109
                        txtTargetFieldName.addFocusListener(this);
110
                        txtTargetFieldName.addKeyListener(this);
111
                }
112
                return txtTargetFieldName;
113
        }
114

    
115
        public boolean isToImport(){
116
                return this.getChkImport().isSelected();
117
        }
118

    
119
        public void setToImpor(boolean value){
120
                this.updating=true;
121
                this.getChkImport().setSelected(value);
122
                this.updating=false;
123
        }
124

    
125
        public String getSourceField(){
126
                return this.getTxtSourceField().getText();
127
        }
128

    
129
        public void setSourceField(String fieldName){
130
                this.updating=true;
131
                this.getTxtSourceField().setText(fieldName);
132
                this.updating=false;
133
        }
134

    
135
        public String getTargetFieldName(){
136
                return this.getTxtTargetFieldName().getText();
137
        }
138

    
139
        public void setTargetFieldName(String fieldName){
140
                this.updating=true;
141
                this.getTxtTargetFieldName().setText(fieldName);
142
                this.updating=false;
143
        }
144
        public void propertyChange(PropertyChangeEvent evt) {
145
                if (evt.getSource().equals(this.getTxtTargetFieldName())){
146
                        firePropertyChange("targetFieldName", evt.getOldValue(), evt.getNewValue());
147
                }
148
        }
149

    
150
        public void itemStateChanged(ItemEvent e) {
151
                boolean isSelected =e.getStateChange() == ItemEvent.SELECTED;
152

    
153
                if (e.getSource().equals(this.getChkImport())){
154
                        firePropertyChange("toImport", !isSelected, isSelected);
155
                }
156

    
157
        }
158
        public void changedUpdate(DocumentEvent e) {
159
                // FIXME: Peta porque antes de que termine el evento se hace un setText
160
//                firePropertyChange("targetFieldName", null, this.getTargetFieldName());
161
                if (this.updating) return;
162
                this.txtTargetFieldName_changed=true;
163
        }
164

    
165
        public void insertUpdate(DocumentEvent e) {
166
                // FIXME: Peta porque antes de que termine el evento se hace un setText
167
//                firePropertyChange("targetFieldName", null, this.getTargetFieldName());
168
                if (this.updating) return;
169
                this.txtTargetFieldName_changed=true;
170

    
171
        }
172
        public void removeUpdate(DocumentEvent e) {
173
                // FIXME: Peta porque antes de que termine el evento se hace un setText
174
//                firePropertyChange("targetFieldName", null, this.getTargetFieldName());
175
                if (this.updating) return;
176
                this.txtTargetFieldName_changed=true;
177
        }
178

    
179
        public void keyPressed(KeyEvent e) {
180
                // TODO Auto-generated method stub
181
        }
182
        public void keyReleased(KeyEvent e) {
183
                if (this.txtTargetFieldName_changed){
184
                        firePropertyChange("targetFieldName", null, this.getTargetFieldName());
185
                        this.txtTargetFieldName_changed=false;
186
                }
187
        }
188
        public void keyTyped(KeyEvent e) {
189
                if (this.txtTargetFieldName_changed){
190
                        firePropertyChange("targetFieldName", null, this.getTargetFieldName());
191
                        this.txtTargetFieldName_changed=false;
192
                }
193

    
194
        }
195
        public void focusGained(FocusEvent e) {
196
                // TODO Auto-generated method stub
197

    
198
        }
199
        public void focusLost(FocusEvent e) {
200
                if (this.txtTargetFieldName_changed){
201
                        firePropertyChange("targetFieldName", null, this.getTargetFieldName());
202
                        this.txtTargetFieldName_changed=false;
203
                }
204
        }
205

    
206
}