Doesn't this example use FormTable and Cayenne? http://click.avoka.com/click-examples/table/edit-form-table.htm
Perhaps you can find some ideas there on how to make FormTables work. regards Bob On Thu, Aug 15, 2013 at 1:25 AM, Kristian Lind <[email protected]> wrote: > 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); > > } > > > > > >
