添加一個通用的「所有」的價值我有一個通用的GXT3的ComboBox這對於枚舉顯示所有可用值:如何GXT組合框
public static <T extends Enum<T>> ComboBox<T> buildEnumCombo(Class<T> t){
ListStore<T> listStore=new ListStore<T>(new EnumModelKeyProvider<T>());
for(T e:t.getEnumConstants()){
listStore.add(e);
}
ComboBox<T> combo= new ComboBox<T>(listStore, new EnumLabelProvider<T>());
combo.setTriggerAction(ComboBoxCell.TriggerAction.ALL);
return combo;
}
這個組合工作得很好。
我需要的是:我希望能夠添加「全部」值。
我試圖在商店中添加「null」並自定義LabelProvider以顯示「All」這個特殊情況,但它不能按預期工作:組合包含預期的行,但它顯示的是空文本而不是「全部「,並且該行沒有正確的大小。
這裏是我的枚舉
public class EnumModelKeyProvider<T extends Enum> implements ModelKeyProvider<T> {
@Override
public String getKey(T item) {
if(item==null){
return null;
}else{
return item.name();
}
}
通用ModelKeyProvider而我一般LabelProvider:
public class EnumLabelProvider<T extends Enum<T>> implements LabelProvider<T> {
@Override
public String getLabel(T item) {
if(item==null){
return "All";
}else{
return I18nEnum.i18nEnum(item);
}
}
}
你有沒有找到解決方案(上GXT 2.2.5測試)? – 2015-04-28 06:53:03