How to use the form table without Cayenne.

I am using a form table, the user can then change the values... and click
save.
But when trying to save the changes the rowlist in empty...



private JSIFormTable optionFormTable = new JSIFormTable("optionFormTable");
 public EditProduct() {
try {
buildOptionFormTable();
} catch (NumberFormatException e) {
logger.error(e.getMessage(), e);
setRedirect(com.farheap.jsi.dashboard.pages.errors.Error.class);
return;
}
}

@Override
public void onInit() {
ClickUtils.bind(form);
super.onInit();
}

@SuppressWarnings("unchecked")
private void init(final Long productId) throws SystemException {
productOptionDataProvider = new PagingDataProvider() {
@Override
public int size() {
Integer size = 0;
try {
size =
Integer.parseInt(dashboardSBBeanLocal.getProductOptionCount(productId).toString());
} catch (SystemException e) {
logger.error(e.getMessage(), e);
setRedirect(com.farheap.jsi.dashboard.pages.errors.Error.class);
}
return size;
}

@Override
public List<ProductOptionEnt> getData() {
List<ProductOptionEnt> productOptions = null;
int start = optionFormTable.getFirstRow();
int count = optionFormTable.getPageSize();
String sortColumn = optionFormTable.getSortedColumn();
if (StringUtils.isBlank(sortColumn)) {
sortColumn = "id";
}
boolean ascending = optionFormTable.isSortedAscending();
try {
//Long id =
Long.parseLong(optionFormTable.getControlLink().getParameter("productId"));
productOptions = dashboardSBBeanLocal.getProductOptions(productId, start,
count, sortColumn, ascending);
} catch (SystemException e) {
logger.error(e.getMessage(), e);
setRedirect(com.farheap.jsi.dashboard.pages.errors.Error.class);
}
return productOptions;
}
};
optionFormTable.setDataProvider(productOptionDataProvider);

}

public boolean onSaveOptionFormTable() throws SystemException {
if (optionFormTable.getForm().isValid()) {
List<ProductOptionEnt> productOptions = optionFormTable.getRowList();
dashboardSBBeanLocal.saveProductOptions(productOptions);
}
Long id = Long.parseLong(idField2.getValue());
HashMap<String, String> m = new HashMap<String, String>();
m.put("productId", "" + id);
setRedirect(CopyOfEditProduct.class, m);
return true;
}

private void buildOptionFormTable() {
optionFormTable.getForm().setButtonAlign(Form.ALIGN_RIGHT);
optionFormTable.setClass(Table.CLASS_ITS);
optionFormTable.setPageSize(Constants.MAX_PAGE_SIZE);
optionFormTable.setSortable(true);
optionFormTable.addStyleClass("dash_table80center");
optionFormTable.addColumn(new Column("id", "id"));
optionFormTable.addColumn(new Column("optionType", "Options"));

JSIOptionValueSelect select = new JSIOptionValueSelect();
select.setDependentFieldName("optionType");
Column column = new FieldColumn("value", "Value", select);
optionFormTable.addColumn(column);

RegexField basePrice = new RegexField();
basePrice.setPattern(PRICE_REGEX);
basePrice.setTextAlign("right");
column = new FieldColumn("basePrice", basePrice);
//column.setTextAlign("right");
optionFormTable.addColumn(column);

RegexField unitPrice = new RegexField();
unitPrice.setPattern(PRICE_REGEX);
unitPrice.setTextAlign("right");
column = new FieldColumn("unitPrice", unitPrice);
optionFormTable.addColumn(column);

optionFormTable.setPaginator(new TableInlinePaginator(optionFormTable));
optionFormTable.setPaginatorAttachment(Table.PAGINATOR_INLINE);

optionFormTable.setTableButtonClass("jsi_form_table_buttons");
Button button = new Submit("save", "Save", this, "onSaveOptionFormTable");
button.addStyleClass("btn btn-primary");
optionFormTable.getForm().add(button);
optionFormTable.getForm().add(idField2);

Label label = new Label("label", "Product Options");
label.addStyleClass("");
addControl(optionFormTable);

}

Reply via email to