Skip to content

DB SQL DataTable

Socheat KHAUV edited this page Oct 24, 2017 · 2 revisions

HTML Code

<form wicket:id="dataFilterForm">
    <table wicket:id="dataTable" />
</form>

Java Code

protected FilterForm<Map<String, String>> {logic}FilterForm;
protected JdbcProvider {logic}Provider;
protected DataTable<Map<String, Object>, String> {logic}Table;
protected List<IColumn<Map<String, Object>, String>> {logic}Column;

protected void init{Logic}Table() {
    this.{logic}Provider = new JdbcProvider("table");
    this.{logic}Provider.boardField("{column}", "{column}", {Type}.class);
    this.{logic}Column = new ArrayList<>();
    this.{logic}Column.add(new TextFilterColumn(this.{logic}Provider, ItemClass.{Type}, Model.of("{column}"), "{column}", "{column}", this::{logic}Column));
    this.{logic}Column.add(new ActionFilterColumn<>(Model.of("Action"), this::{logic}Action, this::{logic}Click));

    this.{logic}FilterForm = new FilterForm<>("{logic}FilterForm", this.{logic}Provider);
    add(this.{logic}FilterForm);

    this.{logic}Table = new DefaultDataTable<>("{logic}Table", this.{logic}Column, this.{logic}Provider, 20);
    this.{logic}Table.addTopToolbar(new FilterToolbar(this.{logic}Table, this.{logic}FilterForm));
    this.{logic}FilterForm.add(this.{logic}Table);
}

protected void {logic}Click(String column, Map<String, Object> model, AjaxRequestTarget target) {
}

protected List<ActionItem> {logic}Action(String column, Map<String, Object> model) {
    List<ActionItem> actions = Lists.newArrayList();
    actions.add(new ActionItem("delete", Model.of("Delete"), ItemCss.DANGER));
    return actions;
}

protected ItemPanel {logic}Column(String column, IModel<String> display, Map<String, Object> model) {
    // {Type} value = {Type} model.get(column);
    // return new TextCell(value);
    throw new WicketRuntimeException("Unknown " + column);
}

Clone this wiki locally