class searchpage extends webpage {
private string keywords;
private class provider implements idataprovider {
iterator(...) { return service.search(keywords).iterator(); }
}
public searchpage() {
form f=new form(...);
f.add(new textfield("keywords", new propertymodel(this, "keywords")));
}
}
-igor
On Fri, Feb 11, 2011 at 2:23 PM, Joe Eckard <[email protected]> wrote:
> 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]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]