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);
>
> }
>
>
>
>
>
>

Reply via email to