Hi, I am new to wicket and I'm having trouble determining the correct way to 
implement a generic search page.

I created a page that contains a custom form panel for the search parameter 
input, and a DataTable for displaying the results. The DataTable uses a custom 
DataProvider which takes a condition object that is used to perform the find. 
The condition is initially null, which causes the DataProvider to return all 
objects - this works fine, and so does the navigation toolbar I added to the 
table. (I'm attaching example code below.)

My question is: what is the correct way to update the table's contents? I have 
the form panel's onSubmit() call onFind(), which creates a new condition 
object, but I'm not sure what to do with it.

Should I have the onFind() method add a new DataTable with a new DataProvider? 
Or keep a reference to the table and set a new provider? Am I on the right 
track or way off base?


SearchPage.java
-------------

private EntityCondition condition = null;

SearchPage(String entityName) {

    add(new SearchFormPanel("find", entityName) {

        public void onSubmit(Map<String, Object> searchParameters) {
            onFind(searchParameters);
        }
    });

    IColumn[] columns = ...

    EntityDataProvider entityDataProvider = new EntityDataProvider(entityName, 
condition);

    DataTable table = new DataTable<GenericValue>("results", columns, 
entityDataProvider, 10);

    table.addTopToolbar(new NavigationToolbar(table));
    table.addTopToolbar(new HeadersToolbar(table, null));

    add(table);
}

protected void onFind(Map<String, Object> searchParameters) {

    condition = makeCondition(searchParameters);
}

...

SearchPage.html
-------------

<wicket:extend>

    <div wicket:id="find"></div>

    <table wicket:id="results" class="display"></table>

</wicket:extend>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to