/*******************************************************************************
* 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.log4j.Logger;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.navigation.paging.IPageable;
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigation;
/**
* @author idobre
* @since 11/25/14
*/
public class AjaxBootstrapNavigator extends AjaxPagingNavigator {
protected static Logger logger = Logger.getLogger(AjaxBootstrapNavigator.class);
private static final long serialVersionUID = -5572869834775798502L;
private boolean hideFastPagination;
private Component first;
private Component next;
private Component prev;
private Component last;
public AjaxBootstrapNavigator(final String id, final IPageable pageable) {
this(id, pageable, null);
}
public AjaxBootstrapNavigator(final String id, final IPageable pageable, final boolean hideFastPagination) {
this(id, pageable, null, hideFastPagination);
}
public AjaxBootstrapNavigator(final String id, final IPageable pageable, final IPagingLabelProvider labelProvider,
final boolean hideFastPagination) {
this(id, pageable, labelProvider);
this.hideFastPagination = hideFastPagination;
}
public AjaxBootstrapNavigator(final String id, final IPageable pageable, final IPagingLabelProvider labelProvider) {
super(id, pageable, labelProvider);
}
@Override
protected void onInitialize() {
super.onInitialize();
// hide the first/next/prev/last links
if (hideFastPagination) {
first = get("first");
first.setVisibilityAllowed(false);
next = get("next");
next.setVisibilityAllowed(false);
prev = get("prev");
prev.setVisibilityAllowed(false);
last = get("last");
last.setVisibilityAllowed(false);
}
}
@Override
protected PagingNavigation newNavigation(final String id, final IPageable pageable,
final IPagingLabelProvider labelProvider) {
return new BootstrapPagingNavigation(id, pageable, labelProvider);
}
@Override
protected AbstractLink newPagingNavigationIncrementLink(final String id, final IPageable pageable,
final int increment) {
AbstractLink link = super.newPagingNavigationIncrementLink(id, pageable, increment);
// TODO:disable link
return link;
}
@Override
protected AbstractLink newPagingNavigationLink(final String id, final IPageable pageable, final int pageNumber) {
AbstractLink link = super.newPagingNavigationLink(id, pageable, pageNumber);
// TODO:disable link
return link;
}
}