通过ComboBox填充TwinColSelect

时间:2013-09-03 14:37:07

标签: java vaadin

我有以下麻烦。我有一个包含区域列表的ComboBox,现在当comboBox的值发生变化时,我还必须更改TwinColSelect左列的值,但右列必须保持不变。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我的建议是扩展TwinColSelect并在其中自行设置containerDataSourcesetValue

示例:

public class MyTwinColSelect
    extends TwinColSelect {

   public MyTwinColSelect(List<T> dataSource, List<T> value) {
      setContainerDataSource(new BeanItemContainer<T>(dataSource));
      setValue(value);
   }

   public updateDataSource(List<T> newDataSource) {
      setContainerDataSource(new BeanItemContainer<T>(newDataSource));
   }
}

对于ComboBox:

comboBox.addValueChangeListener(new ValueChangeListener() {

   private static final long serialVersionUID = 1L;

   @Override
   public void valueChange(ValueChangeEvent event) {
      twincolselect.updateDataSource(newDataSource);
   }
});