Esempio n. 1
0
  private List<Integer> getBodyRows(UIData data) {

    List<Integer> result = null;
    String bodyRows = (String) data.getAttributes().get("bodyrows");
    if (bodyRows != null) {
      String[] rows = Util.split(bodyRows, ",");
      if (rows != null) {
        result = new ArrayList<Integer>(rows.length);
        for (String curRow : rows) {
          result.add(Integer.valueOf(curRow));
        }
      }
    }

    return result;
  }
Esempio n. 2
0
  /**
   * Return an array of stylesheet classes to be applied to each row in the table, in the order
   * specified. Every row may or may not have a stylesheet.
   *
   * @param data {@link UIData}component being rendered
   */
  private String[] getRowClasses(UIData data) {

    String values = (String) data.getAttributes().get("rowClasses");
    if (values == null) {
      return (new String[0]);
    }
    values = values.trim();
    ArrayList list = new ArrayList();
    while (values.length() > 0) {
      int comma = values.indexOf(",");
      if (comma >= 0) {
        list.add(values.substring(0, comma).trim());
        values = values.substring(comma + 1);
      } else {
        list.add(values.trim());
        values = "";
      }
    }
    String results[] = new String[list.size()];
    return ((String[]) list.toArray(results));
  }
Esempio n. 3
0
  public void encodeBegin(FacesContext context, UIComponent component) throws IOException {

    if ((context == null) || (component == null)) {
      throw new NullPointerException(
          Util.getExceptionMessageString(Util.NULL_PARAMETERS_ERROR_MESSAGE_ID));
    }
    if (log.isTraceEnabled()) {
      log.trace("Begin encoding component " + component.getId());
    }

    // suppress rendering if "rendered" property on the component is
    // false.
    if (!component.isRendered()) {
      if (log.isTraceEnabled()) {
        log.trace(
            "No encoding necessary "
                + component.getId()
                + " since "
                + "rendered attribute is set to false ");
      }
      return;
    }
    UIData data = (UIData) component;
    data.setRowIndex(-1);

    // Render the beginning of the table
    ResponseWriter writer = context.getResponseWriter();
    writer.startElement("table", data);
    writeIdAttributeIfNecessary(context, writer, component);
    String styleClass = (String) data.getAttributes().get("styleClass");
    if (styleClass != null) {
      writer.writeAttribute("class", styleClass, "styleClass");
    }
    Util.renderPassThruAttributes(writer, component, new String[] {"rows"});
    writer.writeText("\n", null);

    // Render the header facets (if any)
    UIComponent header = getFacet(data, "header");
    int headerFacets = getFacetCount(data, "header");
    String headerClass = (String) data.getAttributes().get("headerClass");
    if ((header != null) || (headerFacets > 0)) {
      writer.startElement("thead", data);
      writer.writeText("\n", null);
    }
    if (header != null) {
      writer.startElement("tr", header);
      writer.startElement("th", header);
      if (headerClass != null) {
        writer.writeAttribute("class", headerClass, "headerClass");
      }
      writer.writeAttribute("colspan", "" + getColumnCount(data), null);
      writer.writeAttribute("scope", "colgroup", null);
      encodeRecursive(context, header);
      writer.endElement("th");
      writer.endElement("tr");
      writer.writeText("\n", null);
    }
    if (headerFacets > 0) {
      writer.startElement("tr", data);
      writer.writeText("\n", null);
      Iterator columns = getColumns(data);
      while (columns.hasNext()) {
        UIColumn column = (UIColumn) columns.next();
        writer.startElement("th", column);
        if (headerClass != null) {
          writer.writeAttribute("class", headerClass, "headerClass");
        }
        writer.writeAttribute("scope", "col", null);
        UIComponent facet = getFacet(column, "header");
        if (facet != null) {
          encodeRecursive(context, facet);
        }
        writer.endElement("th");
        writer.writeText("\n", null);
      }
      writer.endElement("tr");
      writer.writeText("\n", null);
    }
    if ((header != null) || (headerFacets > 0)) {
      writer.endElement("thead");
      writer.writeText("\n", null);
    }

    // Render the footer facets (if any)
    UIComponent footer = getFacet(data, "footer");
    int footerFacets = getFacetCount(data, "footer");
    String footerClass = (String) data.getAttributes().get("footerClass");
    if ((footer != null) || (footerFacets > 0)) {
      writer.startElement("tfoot", data);
      writer.writeText("\n", null);
    }
    if (footer != null) {
      writer.startElement("tr", footer);
      writer.startElement("td", footer);
      if (footerClass != null) {
        writer.writeAttribute("class", footerClass, "footerClass");
      }
      writer.writeAttribute("colspan", "" + getColumnCount(data), null);
      encodeRecursive(context, footer);
      writer.endElement("td");
      writer.endElement("tr");
      writer.writeText("\n", null);
    }
    if (footerFacets > 0) {
      writer.startElement("tr", data);
      writer.writeText("\n", null);
      Iterator columns = getColumns(data);
      while (columns.hasNext()) {
        UIColumn column = (UIColumn) columns.next();
        writer.startElement("td", column);
        if (footerClass != null) {
          writer.writeAttribute("class", footerClass, "footerClass");
        }
        UIComponent facet = getFacet(column, "footer");
        if (facet != null) {
          encodeRecursive(context, facet);
        }
        writer.endElement("td");
        writer.writeText("\n", null);
      }
      writer.endElement("tr");
      writer.writeText("\n", null);
    }
    if ((footer != null) || (footerFacets > 0)) {
      writer.endElement("tfoot");
      writer.writeText("\n", null);
    }
  }