click-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Schellink (JIRA)" <>
Subject [jira] Commented: (CLK-527) FormTable sort fields are not populated for render
Date Sun, 26 Apr 2009 20:51:30 GMT


Bob Schellink commented on CLK-527:

Thanks Ben.

Regarding the setSorted(false) calls, why is that needed? Did you run into issues if this
was not set?

kind regards


> FormTable sort fields are not populated for render
> --------------------------------------------------
>                 Key: CLK-527
>                 URL:
>             Project: Click
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.5
>            Reporter: Ben Warner
> On an instance of FormTable we have the capability to set the sorted column, sorted ascending,
and page number values. These methods are inherited from the Table class but no overridden
methods are provided in Form Table.
> When the form table is rendered there are hidden form fields defined which are intended
to store the values of these properties but the values of these hidden fields don't ever seem
to be set. These hidden fields get rendered in the startTag() method of the internal form...
>             buffer.append(getForm().startTag());
> Because these fields are not populated, the submit function is not aware of any sorting
that has been applied to the table and the values are often populated into the wrong underlying
objects if the default sorting of the table is not the same as the explicit sorting of the
> I've resolved this for my application by subclassing FormTable and overriding the 3 relevant
methods as follows:
>     public void setSortedColumn(String columnName) {
>         Field field = (Field)getForm().getFields().get(COLUMN);
>         if(field != null){
>             field.setValue(columnName);
>         }
>         setSorted(false);
>         super.setSortedColumn(columnName);
>     }
>     public void setSortedAscending(boolean ascending) {
>         Field field = (Field)getForm().getFields().get(ASCENDING);
>         if(field != null){
>             field.setValue("" + ascending);
>         }
>         setSorted(false);
>         super.setSortedAscending(ascending);
>     }
>     public void setPageNumber(int pageNumber) {
>         Field field = (Field)getForm().getFields().get(PAGE);
>         if(field != null){
>             field.setValue("" + pageNumber);
>         }
>         super.setPageNumber(pageNumber);
>     }
> These overridden methods should be in FormTable to resolve this bug. I have been working
with version 1.5 so it may already be resolved in a later version.
> Note also that I am calling setSorted(false) in the first 2 methods.
> BW.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message