/** * @see org.esupportail.commons.web.component.UIAbstractPaginatorStyle#makeDivPages( * javax.faces.application.Application) */ @SuppressWarnings("unchecked") @Override protected Div makeDivPages(final Application a) { if (logger.isDebugEnabled()) { logger.debug("entering makeDivPagination(" + a + ")"); } Div divPages = (Div) a.createComponent(Div.COMPONENT_TYPE); divPages.setParent(this); divPages.setStyleClass(NAVIGATION_BLOCK); // if there are more than one page on display pagination if (getPaginator().getFirstPageNumber() != getPaginator().getLastPageNumber()) { HtmlTag ul1 = (HtmlTag) a.createComponent(HtmlTag.COMPONENT_TYPE); ul1.setValue(HTML.UL_ELEM); ul1.setParent(divPages); // PREVIOUS BUTTON if (getPaginator().getCurrentPage() != getPaginator().getFirstPageNumber()) { ul1.getChildren() .add( makeLiGroup( a, getStringsVar() + "['" + PREVIOUS_BUTTON_I18N_KEY + "']", null, true, PaginatorUtils.GOTO_PREVIOUS, null, null)); } // BODY of Paginator divPages = makePages(divPages, getPaginator(), ul1, a); } return divPages; }
/** * @param divPagination * @param pagi * @param ul1 * @param a * @return Div */ @SuppressWarnings("unchecked") private Div makePages( final Div divPagination, final Paginator pagi, final HtmlTag ul1, final Application a) { Div divTemp = divPagination; if (!pagi.getFirstPagesNumber().isEmpty()) { for (Object o : pagi.getFirstPagesNumber()) { Integer page = (Integer) o; if (page != pagi.getCurrentPage()) { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); } else { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, PaginatorUtils.CURRENT_PAGE)); } } ul1.getChildren().add(makeLiText(a)); String nameValueButton = getPaginatorELExpression() + "." + PaginatorUtils.LAST_PAGE_NUMBER + "+1"; ul1.getChildren() .add( makeLiGroup( a, nameValueButton, PaginatorUtils.LAST_PAGE_NUMBER, true, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); } else if (!pagi.getLastPagesNumber().isEmpty()) { String nameValueButton = getPaginatorELExpression() + "." + PaginatorUtils.FIRST_PAGE_NUMBER + "+1"; ul1.getChildren() .add( makeLiGroup( a, nameValueButton, PaginatorUtils.FIRST_PAGE_NUMBER, true, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); ul1.getChildren().add(makeLiText(a)); for (Object o : pagi.getLastPagesNumber()) { Integer page = (Integer) o; if (page != pagi.getCurrentPage()) { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); } else { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, PaginatorUtils.CURRENT_PAGE)); } } } else if (!pagi.getMiddlePagesNumber().isEmpty()) { String nameValueButton = getPaginatorELExpression() + "." + PaginatorUtils.FIRST_PAGE_NUMBER + "+1"; ul1.getChildren() .add( makeLiGroup( a, nameValueButton, PaginatorUtils.FIRST_PAGE_NUMBER, true, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); ul1.getChildren().add(makeLiText(a)); for (Object o : pagi.getMiddlePagesNumber()) { Integer page = (Integer) o; if (page != pagi.getCurrentPage()) { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); } else { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, PaginatorUtils.CURRENT_PAGE)); } } ul1.getChildren().add(makeLiText(a)); nameValueButton = getPaginatorELExpression() + "." + PaginatorUtils.LAST_PAGE_NUMBER + "+1"; ul1.getChildren() .add( makeLiGroup( a, nameValueButton, PaginatorUtils.LAST_PAGE_NUMBER, true, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); } else { // in the case of a paginator with very little page for (Object o : pagi.getNearPages()) { Integer page = (Integer) o; if (page != pagi.getCurrentPage()) { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, null)); } else { ul1.getChildren() .add( makeLiGroup( a, "" + (page + 1), "" + page, false, PaginatorUtils.RELOAD_DATA, PaginatorUtils.CURRENT_PAGE, PaginatorUtils.CURRENT_PAGE)); } } } if (getPaginator().getCurrentPage() != getPaginator().getLastPageNumber()) { ul1.getChildren() .add( makeLiGroup( a, getStringsVar() + "['" + NEXT_BUTTON_I18N_KEY + "']", null, true, PaginatorUtils.GOTO_NEXT, null, null)); } divTemp.getChildren().add(ul1); return divTemp; }