Спасибо за вашу помощь заранее. Я начал использовать vaadin 7 - компонент сетки для отображения данных из немного сложной структуры бина. Я получаю следующее исключение, и я не могу понять, как определить структуру POJO в BeanItemContainer, используя addContainerProperty & addNestedContainerProperty.
Пожалуйста, помогите мне с кодом. Нужно ли мне менять дизайн Pojo's?
java.lang.UnsupportedOperationException: Use
addNestedContainerProperty(String) to add container properties to a
BeanItemContainer
Ниже приведен код, который я пытаюсь,
ConfigProperty configPropertyA = new ConfigProperty();
configPropertyA.setProperty("SERVER1", "vm1");
configPropertyA.setProperty("db.user", "admin");
ConfigProperty configPropertyB = new ConfigProperty();
configPropertyB.setProperty("SERVER2", "vm2");
configPropertyB.setProperty("db.user", "admin1");
Service service = new Service("app.jdbc.driver");
service.addConfigProperty(configPropertyA);
service.addConfigProperty(configPropertyB);
BeanItemContainer<Service> beanItemContainer = new BeanItemContainer<Service>(Service.class);
beanItemContainer.addContainerProperty("id", Service.class, "");
beanItemContainer.addNestedContainerProperty("configPropertyList.map");
Pojos
public class Service {
/**
* @param args
*/
private String id;
private List<ConfigProperty> configPropertyList = new ArrayList<ConfigProperty>();
public Service() {
}
public Service(String id) {
this.id=id;
}
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the configPropertyList
*/
public List<ConfigProperty> getConfigPropertyList() {
return configPropertyList;
}
/**
* @param configPropertyList the configPropertyList to set
*/
public void addConfigProperty(ConfigProperty configProperty) {
this.configPropertyList.add(configProperty);
}
}
public class ConfigProperty {
private Map<String, String> map = new HashMap<String, String>();
/*'***************************************************************************************
* Static/Inner class members
******************************************************************************************/
/*'***************************************************************************************
* Class members
******************************************************************************************/
/**
* @return the map
*/
public Map<String, String> getMap() {
return map;
}
/**
* @param map the map to set
*/
public void setProperty(String key, String value) {
this.map.put(key, value);
}
/**
* @param map the map to remove
*/
public void removeProperty(String key) {
this.map.remove(key);
}
}