+1 - good change, this is an awful pattern.

On Fri, Jan 22, 2010 at 6:01 PM,  <[email protected]> wrote:
> Author: sabob
> Date: Fri Jan 22 07:01:14 2010
> New Revision: 902012
>
> URL: http://svn.apache.org/viewvc?rev=902012&view=rev
> Log:
> removed the confusing pattern of binding a HiddenField to both a Page and 
> adding it to a Form
>
> Modified:
>    
> incubator/click/trunk/click/examples/src/org/apache/click/examples/page/EditCustomer.java
>
> Modified: 
> incubator/click/trunk/click/examples/src/org/apache/click/examples/page/EditCustomer.java
> URL: 
> http://svn.apache.org/viewvc/incubator/click/trunk/click/examples/src/org/apache/click/examples/page/EditCustomer.java?rev=902012&r1=902011&r2=902012&view=diff
> ==============================================================================
> --- 
> incubator/click/trunk/click/examples/src/org/apache/click/examples/page/EditCustomer.java
>  (original)
> +++ 
> incubator/click/trunk/click/examples/src/org/apache/click/examples/page/EditCustomer.java
>  Fri Jan 22 07:01:14 2010
> @@ -41,28 +41,28 @@
>  * Provides an edit Customer Form example. The Customer business object
>  * is initially passed to this Page as a request attribute.
>  * <p/>
> - * Note the public visibility "referrer" HiddenField and the "id" field
> - * have their value automatically set with any identically named request
> - * parameters after the page is created.
> - *
> - * @author Malcolm Edgar
> + * Note the bindable "id" and "referrer" fields have their values 
> automatically
> + * set with any identically named request parameters after the page is 
> created.
> + * These fields will be used to populate the similarly named HiddenFields
> + * on GET requests. See the onGet method below.
>  */
> �...@component
>  public class EditCustomer extends BorderPage {
>
> -    // Public controls are automatically added to the page
> -   �...@bindable protected Form form = new Form("form");
> -   �...@bindable protected HiddenField referrerField = new 
> HiddenField("referrer", String.class);
> +    private Form form = new Form("form");
> +    private HiddenField referrerField = new HiddenField("referrer", 
> String.class);
> +    private HiddenField idField = new HiddenField("id", Integer.class);
>
> -    // Public variables can automatically have their value set by request 
> parameters
> +    // Bindable variables can automatically have their value set by request 
> parameters
>     @Bindable protected Integer id;
> -
> -    private HiddenField idField = new HiddenField("id", Integer.class);
> +   �...@bindable protected String referrer;
>
>     @Resource(name="customerService")
>     private CustomerService customerService;
>
>     public EditCustomer() {
> +        addControl(form);
> +
>         form.add(referrerField);
>
>         form.add(idField);
> @@ -106,9 +106,16 @@
>             Customer customer = customerService.getCustomerForID(id);
>
>             if (customer != null) {
> +                // Copy customer data to form. The idField value will be set 
> by
> +                // this call
>                 form.copyFrom(customer);
>             }
>         }
> +
> +        if (referrer != null) {
> +            // Set HiddenField to bound referrer field
> +            referrerField.setValue(referrer);
> +        }
>     }
>
>     public boolean onOkClick() {
>
>
>

Reply via email to