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
             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