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
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