Revision 45776 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultAttributeDescriptorPickerController.java

View differences:

DefaultAttributeDescriptorPickerController.java
2 2

  
3 3
import java.awt.event.ActionEvent;
4 4
import java.awt.event.ActionListener;
5
import org.gvsig.fmap.dal.swing.featuretype.AttributeDescriptorPickerController;
6 5
import java.awt.event.ItemEvent;
7 6
import java.awt.event.ItemListener;
8 7
import java.util.ArrayList;
......
16 15
import javax.swing.JList;
17 16
import javax.swing.event.ListSelectionEvent;
18 17
import javax.swing.event.ListSelectionListener;
18
import org.apache.commons.lang3.StringUtils;
19 19
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
20 20
import org.gvsig.fmap.dal.feature.FeatureType;
21
import org.gvsig.fmap.dal.swing.featuretype.AttributeDescriptorPickerController;
21 22
import org.gvsig.tools.swing.api.Component;
22 23
import org.gvsig.tools.swing.api.ListElement;
24
import org.gvsig.tools.swing.api.ToolsSwingLocator;
25
import org.gvsig.tools.swing.api.ToolsSwingManager;
23 26
import org.gvsig.tools.swing.api.pickercontroller.AbstractPickerController;
24 27

  
25 28
/**
......
129 132
            }
130 133
        }
131 134
        
135
        public void setEditable(boolean editable){
136
            if( this.combo != null ) {
137
                ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
138
                if(editable){
139
                    this.combo.setEditable(editable);
140
                    toolsSwingManager.addClearButton(this.combo, (ActionEvent e) -> {
141
                        this.combo.setSelectedIndex(-1);
142
                    });
143
                    toolsSwingManager.setDefaultPopupMenu(this.combo);
144
                } else {
145
                    toolsSwingManager.removeClearButton(this.combo);
146
                    this.combo.setEditable(editable);
147
                }
148
            }
149
        }
150
        
132 151
        public void setSelectedValue(T value) {
133 152
            if( this.combo == null ) {
134 153
                ListElement.setSelected(this.list, value);
......
155 174

  
156 175
    public DefaultAttributeDescriptorPickerController(JComboBox combo, Predicate<FeatureAttributeDescriptor> filter) {
157 176
        this(new ComboOrList(combo), filter);
177
        combo.setRenderer(new FeatureAttributeListCellRendererImpl());
158 178
    }
159
    
179

  
160 180
    public DefaultAttributeDescriptorPickerController(JList list, Predicate<FeatureAttributeDescriptor> filter) {
161 181
        this(new ComboOrList(list), filter);
182
        list.setCellRenderer(new FeatureAttributeListCellRendererImpl());
162 183
    }
163 184
    
164 185
    private DefaultAttributeDescriptorPickerController(ComboOrList combo, Predicate<FeatureAttributeDescriptor> filter) {
......
192 213
            }
193 214
        });
194 215
        for (FeatureAttributeDescriptor descriptor : attributes) {
195
            String nameDescription = descriptor.getName() + " [" + descriptor.getDataTypeName() + "]";
216
            String nameDescription = descriptor.getName();// + " [" + descriptor.getDataTypeName() + "]";
196 217
            this.combo.add(nameDescription, descriptor);
197 218
        }
198 219
        if( this.combo.getSize()>0 ) {
......
241 262

  
242 263
    @Override
243 264
    public String getName() {
244
        FeatureAttributeDescriptor descriptor = this.get();
245
        if( descriptor==null ) {
265
        Object selected = this.combo.getSelectedValue();
266
        if( selected == null ) {
246 267
            return null;
247 268
        }
269
        if(selected instanceof String){
270
            String name = (String)selected;
271
            if(StringUtils.isBlank(name)){
272
                return null;
273
            }
274
            return name;
275
        }
276

  
277
        FeatureAttributeDescriptor descriptor = (FeatureAttributeDescriptor) selected;
248 278
        return descriptor.getName();
249 279
    }
250 280

  
......
253 283
        this.combo.setSelectedIndex(-1);
254 284
    }
255 285

  
286
    @Override
287
    public void setEditable(boolean editable) {
288
        super.setEditable(editable);
289
        this.combo.setEditable(editable);
290
    }
256 291
    
257 292
}

Also available in: Unified diff