Exemple #1
0
  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, "&nbsp;&nbsp;");
    ListTagUtil.renderPaginationLinks(pageContext, PAGINATION_NAMES, manip.getPaginationLinks());
    ListTagUtil.write(pageContext, "</td>");
    ListTagUtil.write(pageContext, "</tr>");
    ListTagUtil.write(pageContext, "</table></div>");
  }
Exemple #2
0
  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>");
    }
  }
Exemple #3
0
  /** @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);
  }
Exemple #4
0
  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, "\" ");
      }
    }
  }
Exemple #5
0
  /** ${@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;
  }