private void renderPaginationControls(boolean isFooter) throws JspException { if (isFooter && (isEmpty() || hidePageNums)) { return; } if (isFooter) { ListTagUtil.write(pageContext, "<div>"); ListTagUtil.write(pageContext, "<table "); ListTagUtil.write(pageContext, " cellspacing=\"0\" "); ListTagUtil.write(pageContext, "cellpadding=\"0\" width=\"100%\">"); ListTagUtil.write(pageContext, "<tr>"); ListTagUtil.write(pageContext, "<td align=\"left\">"); for (ListDecorator dec : getDecorators()) { dec.afterList(); } ListTagUtil.write(pageContext, "</td>"); } ListTagUtil.write(pageContext, "<td valign=\"middle\" class=\"list-infotext\">"); if (!isEmpty() && !hidePageNums) { ListTagUtil.write(pageContext, manip.getPaginationMessage()); } if (!manip.isListEmpty()) { for (ListDecorator dec : getDecorators()) { if (isFooter) { dec.afterBottomPagination(); dec.setCurrentList(null); } else { dec.afterTopPagination(); } } } ListTagUtil.write(pageContext, " "); ListTagUtil.renderPaginationLinks(pageContext, PAGINATION_NAMES, manip.getPaginationLinks()); ListTagUtil.write(pageContext, "</td>"); ListTagUtil.write(pageContext, "</tr>"); ListTagUtil.write(pageContext, "</table></div>"); }
private void setupManipulator() throws JspException { manip.setAlphaColumn(alphaBarColumn); manip.filter(filter, pageContext); if (!StringUtils.isBlank(ListTagHelper.getFilterValue(pageContext.getRequest(), uniqueName))) { LocalizationService ls = LocalizationService.getInstance(); ListTagUtil.write(pageContext, "<div class=\"site-info\">"); if (manip.getTotalDataSetSize() != manip.getUnfilteredDataSize()) { if (manip.getAllData().size() == 0) { ListTagUtil.write( pageContext, ls.getMessage( "listtag.filteredmessageempty", new Integer(manip.getTotalDataSetSize()))); } else { ListTagUtil.write( pageContext, ls.getMessage("listtag.filteredmessage", new Integer(manip.getTotalDataSetSize()))); } ListTagUtil.write(pageContext, "<br /><a href=\""); List<String> excludeParams = new ArrayList<String>(); excludeParams.add(ListTagUtil.makeSelectActionName(getUniqueName())); excludeParams.add(ListTagUtil.makeFilterByLabel(getUniqueName())); excludeParams.add(ListTagUtil.makeFilterValueByLabel(getUniqueName())); excludeParams.add(ListTagUtil.makeOldFilterValueByLabel(getUniqueName())); excludeParams.add(ListTagUtil.makeFilterSearchChildLabel(getUniqueName())); excludeParams.add(ListTagUtil.makeFilterSearchParentLabel(getUniqueName())); excludeParams.add(ListTagUtil.makeParentIsAnElementLabel(getUniqueName())); ListTagUtil.write( pageContext, ListTagUtil.makeParamsLink( pageContext.getRequest(), name, Collections.EMPTY_MAP, excludeParams)); ListTagUtil.write(pageContext, "\">" + ls.getMessage("listtag.clearfilter")); ListTagUtil.write( pageContext, ls.getMessage("listtag.seeall", new Integer(manip.getUnfilteredDataSize()))); ListTagUtil.write(pageContext, "</a>"); } else { ListTagUtil.write( pageContext, ls.getMessage( "listtag.all_items_in_filter", ListTagHelper.getFilterValue(pageContext.getRequest(), uniqueName))); } ListTagUtil.write(pageContext, "</div>"); } }
/** @param f the filter to set */ void setColumnFilter(ListFilter f) throws JspException { if (filter != null) { String msg = "Cannot set the column filter - [%s], " + "since the table has been has already assigned a filter - [%s]"; throw new JspException(String.format(msg, String.valueOf(f), String.valueOf(filter))); } filter = f; Context threadContext = Context.getCurrentContext(); filter.prepare(threadContext.getLocale()); manip.filter(filter, pageContext); }
private void renderRowClassAndId() throws JspException { rowCounter++; ListTagUtil.write(pageContext, " class=\""); ListTagUtil.write(pageContext, getRowRenderer().getRowClass(getCurrentObject())); if (rowCounter == manip.findAlphaPosition() % pageSize) { ListTagUtil.write(pageContext, " alphaResult"); } ListTagUtil.write(pageContext, "\" "); if (getCurrentObject() != null) { // if we're rendering a non-item row (e.g. reflink) ListTagUtil.write(pageContext, "id=\""); ListTagUtil.write( pageContext, getRowRenderer().getRowId(getUniqueName(), getCurrentObject())); ListTagUtil.write(pageContext, "\" "); String style = getRowRenderer().getRowStyle(getCurrentObject()); if (!StringUtils.isBlank(style)) { ListTagUtil.write(pageContext, "style=\""); ListTagUtil.write(pageContext, style); ListTagUtil.write(pageContext, "\" "); } } }
/** ${@inheritDoc} */ public int doAfterBody() throws JspException { int retval = BodyTagSupport.EVAL_BODY_AGAIN; ListCommand cmd = ListTagUtil.getCurrentCommand(this, pageContext); boolean haveRenderedColumnHeaderEndTag = false; if (cmd.equals(ListCommand.COL_HEADER)) { ListTagUtil.write(pageContext, "</tr></thead><tbody>"); haveRenderedColumnHeaderEndTag = true; } setState(); if (haveColsEnumerated && !haveTblHeadersRendered) { setupManipulator(); manip.sort(); pageData = manip.getPage(); if (!manip.isListEmpty() && !StringUtils.isBlank(alphaBarColumn)) { AlphaBarHelper.getInstance() .writeAlphaBar(pageContext, manip.getAlphaBarIndex(), getUniqueName()); } for (ListDecorator dec : getDecorators()) { dec.setCurrentList(this); dec.beforeList(); } ListTagUtil.write( pageContext, String.format( HIDDEN_TEXT, ListTagUtil.makeFilterSearchParentLabel(uniqueName), searchParent)); ListTagUtil.write( pageContext, String.format( HIDDEN_TEXT, ListTagUtil.makeFilterSearchChildLabel(uniqueName), searchChild)); ListTagUtil.write( pageContext, String.format( HIDDEN_TEXT, ListTagUtil.makeParentIsAnElementLabel(uniqueName), parentIsElement)); setupFilterUI(); if (filter != null && manip.getUnfilteredDataSize() != 0) { ListTagUtil.renderFilterUI( pageContext, filter, getUniqueName(), width, columnCount, searchParent, searchChild); } if (isSortable()) { String sortByLabel = ListTagUtil.makeSortByLabel(getUniqueName()); String sortDirLabel = ListTagUtil.makeSortDirLabel(getUniqueName()); HtmlTag sortByInputTag = new HtmlTag("input"); sortByInputTag.setAttribute("type", "hidden"); sortByInputTag.setAttribute("name", sortByLabel); sortByInputTag.setAttribute("id", ListTagUtil.makeSortById(getUniqueName())); sortByInputTag.setAttribute( "value", StringUtils.defaultString(pageContext.getRequest().getParameter(sortByLabel))); HtmlTag sortByDirTag = new HtmlTag("input"); sortByDirTag.setAttribute("type", "hidden"); sortByDirTag.setAttribute("name", sortDirLabel); sortByDirTag.setAttribute("id", ListTagUtil.makeSortDirId(getUniqueName())); sortByDirTag.setAttribute( "value", StringUtils.defaultString(pageContext.getRequest().getParameter(sortDirLabel))); ListTagUtil.write(pageContext, sortByInputTag.render()); ListTagUtil.write(pageContext, sortByDirTag.render()); } if (!isEmpty()) { for (ListDecorator dec : getDecorators()) { dec.beforeTopPagination(); } } renderPaginationControls(false); startTable(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); manip.bindPaginationInfo(); request.setAttribute("dataSize", String.valueOf(pageData.size() + 1)); ListTagUtil.setCurrentCommand(pageContext, getUniqueName(), ListCommand.TBL_HEADER); if (pageData != null && pageData.size() > 0) { iterator = pageData.iterator(); } else { iterator = null; } } if (haveColsEnumerated && haveTblHeadersRendered && !haveColHeadersRendered) { ListTagUtil.setCurrentCommand(pageContext, getUniqueName(), ListCommand.COL_HEADER); ListTagUtil.write(pageContext, "<thead><tr>"); if (!StringUtils.isBlank(title)) { HtmlTag th = new HtmlTag("th"); th.setAttribute("colspan", String.valueOf(getColumnCount())); HtmlTag strong = new HtmlTag("strong"); strong.addBody(title); th.addBody(strong.render()); ListTagUtil.write(pageContext, th.render()); ListTagUtil.write(pageContext, "</tr>\n<tr>"); } } if (haveColHeadersRendered && !haveTblFootersRendered) { if (!haveRenderedColumnHeaderEndTag) { ListTagUtil.write(pageContext, "</tr>"); } if (manip.isListEmpty()) { renderEmptyList(); return BodyTagSupport.SKIP_BODY; } else { ListTagUtil.setCurrentCommand(pageContext, getUniqueName(), ListCommand.RENDER); if (iterator.hasNext()) { Object obj = iterator.next(); if (RhnListTagFunctions.isExpandable(obj)) { parentObject = obj; } currentObject = obj; } else { currentObject = null; } if (currentObject == null) { ListTagUtil.write(pageContext, "</tbody>"); ListTagUtil.setCurrentCommand(pageContext, getUniqueName(), ListCommand.TBL_FOOTER); } else { ListTagUtil.write(pageContext, "<tr"); renderRowClassAndId(); ListTagUtil.write(pageContext, ">"); pageContext.setAttribute(rowName, currentObject); } } } else if (haveTblFootersRendered) { retval = BodyTagSupport.SKIP_BODY; } return retval; }