package com.akjava.gwt.lib.client.widget.cell;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.cellview.client.SimplePager;
public class NaturalPager extends SimplePager{
public NaturalPager(){
//it is natural that there are firstPage.
super(TextLocation.CENTER,getDefaultResources(),false,1000,true);
}
private static Resources DEFAULT_RESOURCES;
private static Resources getDefaultResources() {
if (DEFAULT_RESOURCES == null) {
DEFAULT_RESOURCES = GWT.create(Resources.class);
}
return DEFAULT_RESOURCES;
}
private RangeOrRowCountChangeListener listener;
public RangeOrRowCountChangeListener getListener() {
return listener;
}
public void setListener(RangeOrRowCountChangeListener listener) {
this.listener = listener;
}
@Override
protected void onRangeOrRowCountChanged() {
super.onRangeOrRowCountChanged();
if(listener!=null){
listener.changed(this.getPageStart(),this.getPageSize());
}
}
protected String createText() {
if(getDisplay().getRowCount()==0){
return "0 of 0";
}else{
return super.createText();
}
}
@Override
public void nextPage() {
super.setPage(getPage()+1);
}
@Override
public void previousPage() {
super.setPage(getPage()-1);
}
public interface RangeOrRowCountChangeListener{
public void changed(int start,int size);
}
}