Click
  1. Click
  2. CLK-640

Add DataProvider for Table and Select controls

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.0
    • Fix Version/s: 2.2.0
    • Component/s: core
    • Labels:
      None

      Description

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

      });

      1. Table.java.patch
        7 kB
        Bob Schellink

        Activity

        Bob Schellink made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Bob Schellink made changes -
        Attachment Table.java.patch [ 12438678 ]
        Malcolm Edgar made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Malcolm Edgar made changes -
        Field Original Value New Value
        Assignee Malcolm Edgar [ medgar ]
        Malcolm Edgar created issue -

          People

          • Assignee:
            Malcolm Edgar
            Reporter:
            Malcolm Edgar
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development