package kornell.gui.client.presentation.admin.courseversion.courseversion.wizard.edit;
import com.github.gwtbootstrap.client.ui.NavLink;
import com.github.gwtbootstrap.client.ui.Pagination;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
public class WizardSlideItemQuizQuestionNavigator extends Pagination{
private int maxPaginationTabs = 10;
public WizardSlideItemQuizQuestionNavigator() {
}
public void updatePagination(int pageSize, int pageNumber, int totalRowCount) {
clear();
int navLinkCount = (totalRowCount+pageSize-1)/pageSize;
setVisible(navLinkCount > 1);
setAlignment("centered");
if(navLinkCount < maxPaginationTabs){
for(int i = 1; i <= navLinkCount; i++){
add(createNavLink(i, i==pageNumber));
}
} else if(pageNumber <= (maxPaginationTabs / 2)){
for(int i = 1; i <= maxPaginationTabs; i++){
add(createNavLink(i, i==pageNumber));
}
add(createNavLink(">", navLinkCount));
} else if(pageNumber > navLinkCount - (maxPaginationTabs / 2)){
add(createNavLink("<", 1));
for(int i = (navLinkCount - maxPaginationTabs) + 1; i <= navLinkCount; i++){
add(createNavLink(i, i==pageNumber));
}
} else {
add(createNavLink("<", 1));
for(int i = pageNumber - (maxPaginationTabs / 2); i <= pageNumber + (maxPaginationTabs / 2); i++){
add(createNavLink(i, i==pageNumber));
}
add(createNavLink(">", navLinkCount));
}
}
private NavLink createNavLink(int i, boolean active) {
return createNavLink(""+i, i, active);
}
private NavLink createNavLink(String text, int pageNumber) {
return createNavLink(text, pageNumber, false);
}
private NavLink createNavLink(String text, int pageNumber, boolean active) {
NavLink navLink = new NavLink();
navLink.setText(text);
navLink.setName(""+pageNumber);
navLink.setActive(active);
if(pageNumber > 0){
navLink.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//@TODO
//set pageNumber and change the question
//IconAnchor thisThing = (IconAnchor) event.getSource();
//thisThing.getName().trim()
}
});
}
return navLink;
}
}