package org.molgenis.mutation.ui;
import java.util.List;
import org.apache.log4j.Logger;
public class LimitOffsetPager<E>
{
private List<E> entities;
private int limit = 20;
private int offset = 0;
public LimitOffsetPager()
{
}
public LimitOffsetPager(List<E> entities, int limit, int offset)
{
this.entities = entities;
this.limit = limit;
this.offset = offset;
}
public List<E> getEntities()
{
return entities;
}
public void setEntities(List<E> entities)
{
this.entities = entities;
}
public int getLimit()
{
return limit;
}
public void setLimit(int limit)
{
this.limit = limit;
}
public int getOffset()
{
return offset;
}
public void setOffset(int offset)
{
this.offset = offset;
}
public List<E> getPage()
{
if (this.offset + this.limit < this.entities.size()) return this.entities.subList(this.offset, this.offset
+ this.limit);
else
return this.entities.subList(this.offset, this.entities.size());
}
public List<E> first()
{
this.offset = 0;
return this.getPage();
}
public List<E> prev()
{
if (this.offset - this.limit >= 0) this.offset = this.offset - this.limit;
return this.getPage();
}
public List<E> next()
{
if (this.offset + this.limit < this.entities.size()) this.offset = this.offset + this.limit;
return this.getPage();
}
public List<E> last()
{
this.offset = this.entities.size() - this.limit;
return this.getPage();
}
public int getCount()
{
return this.entities.size();
}
public String getLabel()
{
int start = this.offset + 1;
int end = (this.offset + this.limit < this.entities.size() ? this.offset + this.limit : this.entities.size());
return start + "-" + end + " of " + this.entities.size();
}
}