wicket FilterToolBar

Here's the HTML:
<html xmlns:wicket>
<wicket:panel>
<form wicket:id="filterform">
<table wicket:id="datatable">
</table>
</form>
</wicket:panel>
</html>

And here's the Java code:

BookListProvider booklistProvider = new BookListProvider();
AjaxFallbackDefaultDataTable<?> table = new AjaxFallbackDefaultDataTable("datatable", createColumns(), booklistProvider, 10);
FilterForm form = new FilterForm("filterform", booklistProvider);
table.addBottomToolbar(new FilterToolbar(table, form, booklistProvider)); add(form);
form.add(table);

private IColumn<?>[] createColumns() {
IColumn<?>[] columns = new IColumn[6];
columns[0] = new PropertyColumn<String>(new Model<String>("ISBN"), "isbn", "isbn");
columns[1] = new PropertyColumn<String>(new Model<String>("Title"), "title", "title");
columns[2] = new PropertyColumn<ArrayList<Author>>(new Model<String>("Author"), "authors");
columns[3] = new ChoiceFilteredPropertyColumn(new Model<String>("Publisher"), "name", "publisher", createPublisherModel());
columns[4] = new PropertyColumn<Subgenre>(new Model<String>("Subgenre"), "subgenre", "subgenre");
columns[5] = new PropertyColumn<Language>(new Model<String>("Language"), "language", "language");
return columns;
}
private IModel<List<Publisher>> createPublisherModel() {
IModel<List<Publisher>> publisherModel = new LoadableDetachableModel<List<Publisher>>() {
private static final long serialVersionUID = 1L;

@Override
protected List<Publisher> load() {
List<Publisher> publishers = null;
DataRetriever dataRetriever = null;
try {
dataRetriever = new DataRetriever();
publishers = dataRetriever.fetchPublishers();
} catch (Exception e) {
error("abbreviated error handling");
}
return publishers;
}
};
return publisherModel;
}

public class BookListProvider extends SortableDataProvider<BookListData> implements IFilterStateLocator {
private final transient List<BookListData> list;
private Publisher publisherFilter = new Publisher();
...
}

你可能感兴趣的:(wicket FilterToolBar)