/*******************************************************************************
* Copyright (c) 2015 Development Gateway, Inc and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the MIT License (MIT)
* which accompanies this distribution, and is available at
* https://opensource.org/licenses/MIT
*
* Contributors:
* Development Gateway - initial API and implementation
*******************************************************************************/
package org.devgateway.toolkit.forms.wicket.components.table;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractToolbar;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
import org.apache.wicket.model.AbstractReadOnlyModel;
/**
* @author idobre
* @since 11/25/14
*/
public class AjaxBootstrapNavigationToolbar extends AbstractToolbar {
private static final long serialVersionUID = 230663553625059960L;
public AjaxBootstrapNavigationToolbar(final DataTable<?, ?> table) {
super(table);
WebMarkupContainer span = new WebMarkupContainer("span");
this.add(span);
span.add(AttributeModifier.replace("colspan", new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;
@Override
public String getObject() {
return String.valueOf(table.getColumns().size());
}
}));
span.add(new Component[] { this.newPagingNavigator("navigator", table) });
}
protected PagingNavigator newPagingNavigator(final String navigatorId, final DataTable<?, ?> table) {
return new AjaxBootstrapNavigator(navigatorId, table) {
private static final long serialVersionUID = 1L;
@Override
protected void onAjaxEvent(final AjaxRequestTarget target) {
target.add(table);
}
};
}
@Override
protected void onConfigure() {
super.onConfigure();
this.setVisible(this.getTable().getPageCount() > 1L);
}
}