com.francetelecom.clara.cloud.presentation.common.AjaxFallbackCustomDataTable.java Source code

Java tutorial

Introduction

Here is the source code for com.francetelecom.clara.cloud.presentation.common.AjaxFallbackCustomDataTable.java

Source

/**
 * Copyright (C) 2015 Orange
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.francetelecom.clara.cloud.presentation.common;

import java.util.List;

import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackHeadersToolbar;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.ISortableDataProvider;
import org.apache.wicket.extensions.markup.html.repeater.data.table.NoRecordsToolbar;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.OddEvenItem;
import org.apache.wicket.model.IModel;

/**
 * Created with IntelliJ IDEA.
 * User: shjn2064
 * Date: 05/09/12
 * Time: 13:56
 * To change this template use File | Settings | File Templates.
 */
public class AjaxFallbackCustomDataTable<T, S> extends DataTable<T, S> {

    private static final long serialVersionUID = -7695265617541424256L;

    /**
      * Constructor
      *
      * @param id           component id
      * @param columns      list of columns
      * @param dataProvider data provider
      * @param rowsPerPage  number of rows per page
      */
    public AjaxFallbackCustomDataTable(String id, List<? extends IColumn<T, S>> columns,
            ISortableDataProvider<T, S> dataProvider, int rowsPerPage) {
        super(id, columns, dataProvider, rowsPerPage);
        setOutputMarkupId(true);
        setVersioned(false);
        addTopToolbar(new AjaxNavigationCustomToolbar(this));
        addTopToolbar(new AjaxFallbackHeadersToolbar<>(this, dataProvider));
        addBottomToolbar(new NoRecordsToolbar(this));
        addBottomToolbar(new AjaxNavigationCustomToolbar(this));
    }

    @Override
    protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) {
        return new OddEvenItem<T>(id, index, model);
    }
}