Hi! Everyone!
I have a question about refresh datasource of table setted by BeanItemContainer.
I want to refresh container after click ‘Refresh’ button or add new entity bean.
How can I do?
Refresh :
#CompanyList.java
Table table = new Table();
table.setContainerDataSource(mySessionBean.getContainer()); //getContainer() returns a BeanItemContainer;
mainLayout.addComponent(table);
Button btnRefresh = new Button("Refresh");
btnRefresh.addListener(new Button.ClickListener(){
@Override
public void buttonClick(ClickEvent event) {
//What code do I insert?
}
});
mainLayout.addComponent(btnRefresh);
Add new Item :
#CompanyFormWindow.java
@Override
public void buttonClick(ClickEvent event) { // from 'Save' Button
form.commit();
company = mySessionBean.save(company);
if(isNew) {
BeanItemContainer bic = (BeanItemContainer) (((CompanyList) this.listComponent).table.getContainer);
bic.addBean(company); // <-- This doesn't work.
((CompanyList) this.listComponent).table.addItem(company); // <-- This doesn't work either. I want to refresh.
}
}
and Add one question.
Why doesn’t BeanItemContainer.addBeanItem method call fireItemSetChange method?
removeItem and other remove methods call fireItemSetChange method. I wonder that reason.
Please give me your favor. ^^