2016-01-22 72 views
0

我想知道是否有指定的选择项枚举的所有值的方式,而不是手动添加them.Currently的每一个我这样做:Vaadin 6组合框枚举链接

ComboBox myBox = new ComboBox(); 
for(SelectValuesEnum enum: SelectValuesEnum.values()){ 
myBox.addItem(enum) 
} 
+0

有'addItems'因为7.2;而IndexedContainer似乎没有方便的捷径。如果你这样做,不要写自己的容器或自己的组合框来帮助解决这个问题。 – cfrick

回答

0

有了这个,你得到一个列表的所有枚举值

new ArrayList<MyEnum>(Arrays.asList(SelectValuesEnum.values())); 

而这,你可以把它转换成一个集合,在接受集合作为参数的组合框构造函数中使用它。

0

您可以使用简单的BeanContainer:

   BeanContainer<Integer, YouEnum> cbContainer = new BeanContainer<Integer, YouEnum>(YouEnum.class); 
       cbContainer.setBeanIdProperty("id"); 
       cbContainer.addAll(EnumSet.allOf(YouEnum.class)); 

       ComboBox cb = new ComboBox(null, cbContainer); 
       cb.setItemCaptionPropertyId("fieldDescription"); 
       cb.setImmediate(true); 

       // return cb; 



public enum YouEnum { 
    VAL_1("value 1"), 
    VAL_2("value 2"); 

    private final String fieldDescription; 

    private YouEnum(String value) { 
     fieldDescription = value; 
    } 

    public String getFieldDescription() { 
     return fieldDescription; 
    } 

    public String getId(){ 
     return String.valueOf(ordinal()); 
    } 
}