public DataVisitResult process(FacesContext facesContext, Object rowKey, Object argument) { RowHolderBase holder = (RowHolderBase) argument; Row row = holder.getRow(); row.setRowKey(facesContext, rowKey); try { ResponseWriter writer = facesContext.getResponseWriter(); encodeRow(writer, facesContext, holder); } catch (IOException e) { throw new FacesException(e); } holder.nextCell(); return DataVisitResult.CONTINUE; }
@Override protected void doCleanup(FacesContext context, RowHolderBase rowHolder) throws IOException { ResponseWriter writer = context.getResponseWriter(); AbstractDataGrid dataGrid = (AbstractDataGrid) rowHolder.getRow(); int cell = rowHolder.getProcessCell(); int columns = dataGrid.getColumns(); int rest = columns - cell; for (int i = 0; i < rest; i++) { writer.startElement(HtmlConstants.TD_ELEM, dataGrid); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-dg-c", null); writer.endElement(HtmlConstants.TD_ELEM); } writer.endElement(HtmlConstants.TR_ELEMENT); }
@Override public void encodeFakeRow(FacesContext facesContext, RowHolderBase rowHolder) throws IOException { UIComponent component = (UIComponent) rowHolder.getRow(); ResponseWriter writer = facesContext.getResponseWriter(); writer.startElement(HtmlConstants.TR_ELEMENT, component); writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, "display:none", null); writer.startElement(HtmlConstants.TD_ELEM, component); writer.endElement(HtmlConstants.TD_ELEM); writer.endElement(HtmlConstants.TR_ELEMENT); }
@Override public void encodeRow(ResponseWriter writer, FacesContext facesContext, RowHolderBase rowHolder) throws IOException { AbstractDataGrid dataGrid = (AbstractDataGrid) rowHolder.getRow(); int columns = dataGrid.getColumns(); int processCell = rowHolder.getProcessCell(); if (columns > 0 && (processCell % columns == 0)) { if (processCell != 0) { writer.endElement(HtmlConstants.TR_ELEMENT); rowHolder.resetProcessCell(); } writer.startElement(HtmlConstants.TR_ELEMENT, dataGrid); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-dg-r", null); rowHolder.nextRow(); } writer.startElement(HtmlConstants.TD_ELEM, dataGrid); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, "rf-dg-c", null); renderChildren(facesContext, dataGrid); writer.endElement(HtmlConstants.TD_ELEM); }