I wrote a custom window which allows me to add data to a table…
Problem is that the content of the bean stays empty instead of having the content of the modified fields which I need
to update the database. Does somebody knwos what I 'm doing wrong ?
public class AdvancedAddWindow extends Window {
private static final long serialVersionUID = 7643260931414639242L;
private Object pojo = null;
private TableEnum tableData;
public AdvancedAddWindow(TableEnum table, String caption) {
super();
VerticalLayout content = new VerticalLayout();
FormLayout form = null;
final List<String> dataHead;
tableData = table;
this.setPositionX(200);
this.setPositionY(100);
this.setWidth("500px");
switch (table){
case APPLICATIONS:
dataHead = ContentStep5.APPLICATIONS_HEAD;
form = new FormLayout() {
/**
*
*/
private static final long serialVersionUID = 1416133050899688219L;
TextField tfdApplication = new TextField(dataHead.get(0) + ":");
AdvancedComboBox departmentCombo = new AdvancedComboBox(ComboDataSelectorEnum.DEPARTMENT ,dataHead.get(1) + ":");
ComboBox cbbArchive = new ComboBox(dataHead.get(2) + ":");
TextField tfdActiveDirectory = new TextField(dataHead.get(3) + ":");
{
tfdApplication.setRequired(true);
tfdActiveDirectory.setRequired(true);
cbbArchive.addItem("Y");
cbbArchive.addItem("N");
addComponent(tfdApplication);
addComponent(departmentCombo);
addComponent(cbbArchive);
addComponent(tfdActiveDirectory);
}
};
BeanFieldGroup<ApplicationsPojo> frmAddApp = new BeanFieldGroup<ApplicationsPojo>(ApplicationsPojo.class);
this.setCaption("Add application");
ApplicationsPojo applicationPojo = new ApplicationsPojo();
setPojo(applicationPojo);
BeanItem<ApplicationsPojo> applicationItems = new BeanItem<ApplicationsPojo>(applicationPojo);
frmAddApp.setItemDataSource(applicationItems);
frmAddApp.bindMemberFields(form);
break;
}
HorizontalLayout hloBox = new HorizontalLayout();
hloBox.addComponent(form);
/** END FORM*/
Panel panel = new Panel(caption);
panel.setSizeUndefined();
panel.addStyleName(Runo.PANEL_LIGHT);
panel.setContent(hloBox);
content.addComponent(panel);
Button closeButton = new Button("Cancel");
closeButton.addClickListener(new Button.ClickListener() {
/**
*
*/
private static final long serialVersionUID = 5541314642749571671L;
@Override
public void buttonClick(ClickEvent event) {
close();
}
});
Button addButton = new Button("Save");
addButton.addClickListener(new Button.ClickListener() {
/**
*
*/
private static final long serialVersionUID = -629634525388139084L;
@Override
public void buttonClick(ClickEvent event) {
saveButtonClick();
}
});
HorizontalLayout hloButtonBar = new HorizontalLayout();
hloButtonBar.addComponent(new Spacer("75px", "10px"));
hloButtonBar.addComponent(closeButton);
hloButtonBar.addComponent(new Spacer("10px", "10px"));
hloButtonBar.addComponent(addButton);
content.addComponent(hloButtonBar);
setContent(content);
}
public Object getPojo() {
return pojo;
}
public final void setPojo(Object pojo) {
this.pojo = pojo;
}
public void saveButtonClick() {
// Save data code
....
close();
}
}