[ 
https://issues.apache.org/jira/browse/CLK-640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Malcolm Edgar reassigned CLK-640:
---------------------------------

    Assignee: Malcolm Edgar

> Add DataProvider for Table and Select controls
> ----------------------------------------------
>
>                 Key: CLK-640
>                 URL: https://issues.apache.org/jira/browse/CLK-640
>             Project: Click
>          Issue Type: New Feature
>          Components: core
>    Affects Versions: 2.1.0
>            Reporter: Malcolm Edgar
>            Assignee: Malcolm Edgar
>             Fix For: 2.2.0
>
>
> One reoccurring problem we see with people using Click is the inappropriate 
> use of the Page#onRender() method. Typically its used to set data into the 
> Table control, but then people will often use this Page method to set data in 
> other controls such as the FormTable or Select controls, which breaks their 
> usage contract.
> What I would like to see is that data controls such as the Table, Select and 
> FormTable are able to load the data when they need it, rather than having to 
> rely on the developer injecting the data at the correct point in the pages 
> life cycle.  This will provide an improve programming model where developers 
> simply create their controls in the Page constructor or onInit() method, 
> configure data providers when necessary, and write up control event handlers 
> to the appropriate methods.  
> The DataProvider interface would be very simple:
> public interface DataProvider {
>      public List getData();
> }
> Developers would then implement this interface when creating their controls:
> Table table = new Table();
> table.addColumn()
> ...
> table.setDataProvider(new DataProvider() {
>     public List getData() {
>          return customerDao.getCustomerList();
>     }
> });

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

Reply via email to