@SuppressWarnings("unchecked")
private GenericTablePanel(String id, List<? extends IColumn<K, String>> columns,
ISortableDataProvider<K, String> provider, int rowsPerRange, boolean filtered) {
super(id);
Args.notNull(columns, "columns");
Args.notNull(provider, "provider");
setOutputMarkupPlaceholderTag(true);
dataTable = new OrienteerDataTable<>("table", columns, provider, rowsPerRange);
if (filtered) {
FilterForm<OQueryModel<K>> filterForm = createFilterForm("form", (IFilterStateLocator<OQueryModel<K>>) provider);
filterForm.setOutputMarkupPlaceholderTag(true);
dataTable.addFilterForm(filterForm);
filterForm.add(dataTable);
AjaxFallbackButton button = new AjaxFallbackButton("submit", filterForm) {};
filterForm.setDefaultButton(button);
filterForm.enableFocusTracking(button);
filterForm.add(button);
filterForm.add(dataTable);
add(filterForm);
} else {
Form form = new Form("form");
form.add(dataTable);
form.add(new AjaxFallbackButton("submit", form) {}.setVisible(false));
add(form);
}
add(new EmptyPanel("error").setVisible(false));
}