protected void doDecode(FacesContext context, UIComponent component) { decodeSortingFiltering(context, component); }
protected void encodeHiddens(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase, Object[] params) throws IOException { EncodeStrategy encodeStrategy = getHiddenContainerStrategy(dataTableBase); if (encodeStrategy != null) { encodeStrategy.begin(writer, facesContext, dataTableBase, params); encodeClientScript(writer, facesContext, dataTableBase); encodeHiddenInput(writer, facesContext, dataTableBase); encodeStrategy.end(writer, facesContext, dataTableBase, params); } }
public void encodeMetaComponent(FacesContext context, UIComponent component, String metaComponentId) throws IOException { UIDataTableBase table = (UIDataTableBase) component; if (UIDataTableBase.HEADER.equals(metaComponentId)) { encodeHeaderFacet(context.getResponseWriter(), context, table, true); } else if (UIDataTableBase.FOOTER.equals(metaComponentId)) { encodeFooterFacet(context.getResponseWriter(), context, table, true); } else if (UIDataTableBase.BODY.equals(metaComponentId)) { encodeTableRows(context.getResponseWriter(), context, table, true); } else { throw new IllegalArgumentException("Unsupported metaComponentIdentifier: " + metaComponentId); } }
boolean isEncodeHeaders = isEncodeHeaders(dataTable); boolean encodeThead = containsThead(); partialStart(facesContext, headerClientId); setCellElement(facesContext, id, HtmlConstants.TH_ELEM); int columns = getColumnsCount(dataTable.columns()); String rowClass = getHeaderSkinClass(); String cellClass = getHeaderCellSkinClass(); String firstClass = getHeaderFirstSkinClass(); rowClass = mergeStyleClasses("headerClass", rowClass, dataTable); cellClass = mergeStyleClasses("headerCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("headerFirstClass", firstClass, dataTable); saveRowStyles(facesContext, clientId, firstClass, rowClass, cellClass); encodeTableFacet(facesContext, writer, clientId, columns, header, UIDataTableBase.HEADER, rowClass, cellClass, encodePartialUpdateForChildren); String rowClass = getColumnHeaderSkinClass(); String cellClass = getColumnHeaderCellSkinClass(); String firstClass = getColumnHeaderFirstSkinClass(); rowClass = mergeStyleClasses("columnHeaderClass", rowClass, dataTable); cellClass = mergeStyleClasses("columnHeaderCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("columnHeaderFirstClass", firstClass, dataTable);
boolean encodeTfoot = containsThead(); if (encodeTfoot) { String footerClientId = clientId + ":tf"; partialStart(facesContext, footerClientId); int columns = getColumnsCount(dataTable.columns()); String rowClass = getColumnFooterSkinClass(); String cellClass = getColumnFooterCellSkinClass(); String firstClass = getColumnFooterFirstSkinClass(); rowClass = mergeStyleClasses("columnFooterClass", rowClass, dataTable); cellClass = mergeStyleClasses("columnFooterCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("firstColumnFooterClass", firstClass, dataTable); saveRowStyles(facesContext, clientId, firstClass, rowClass, cellClass); partialStart(facesContext, targetId); encodeStyleClass(writer, facesContext, dataTable, null, rowClass); encodeColumnFacet(facesContext, writer, dataTable, UIDataTableBase.FOOTER, columns, cellClass); writer.endElement(HtmlConstants.TR_ELEMENT); partialEnd(facesContext); String rowClass = getFooterSkinClass(); String cellClass = getFooterCellSkinClass(); String firstClass = getFooterFirstSkinClass();
public void encodeTableRows(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase, boolean encodePartialUpdate) throws IOException { int rowCount = dataTableBase.getRowCount(); Object key = dataTableBase.getRowKey(); dataTableBase.captureOrigValue(facesContext); dataTableBase.setRowKey(facesContext, null); boolean encodeParentTBody = encodeParentTBody(dataTableBase); encodeBeforeRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate); if (rowCount > 0) { processRows(writer, facesContext, dataTableBase, new Object[] { encodePartialUpdate, encodeParentTBody }); } else { encodeNoDataFacetOrLabel(writer, facesContext, dataTableBase); } encodeAfterRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate); if (encodePartialUpdate) { String id = dataTableBase.getClientId(facesContext) + HIDDEN_CONTAINER_ID; partialStart(facesContext, id); } encodeHiddens(writer, facesContext, dataTableBase, new Object[] { encodeParentTBody }); if (encodePartialUpdate) { partialEnd(facesContext); } dataTableBase.setRowKey(facesContext, key); dataTableBase.restoreOrigValue(facesContext); }
public void encodeNoDataFacetOrLabel(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase) throws IOException { int columns = getColumnsCount(dataTableBase.columns()); UIComponent noDataFacet = dataTableBase.getNoData(); String noDataLabel = dataTableBase.getNoDataLabel(); writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase); String styleClass = (String) dataTableBase.getAttributes().get("noDataStyleClass"); styleClass = concatClasses(getNoDataClass(), styleClass); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null); writer.startElement(HtmlConstants.TD_ELEM, dataTableBase); writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null); String cellStyleClass = (String) dataTableBase.getAttributes().get("noDataCellStyleClass"); cellStyleClass = concatClasses(getNoDataCellClass(), cellStyleClass); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null); if (noDataFacet != null && noDataFacet.isRendered()) { noDataFacet.encodeAll(facesContext); } else if (noDataLabel != null && noDataLabel.length() > 0) { writer.writeText(noDataLabel, "noDataLabel"); } else { writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, "display: none;", null); } writer.endElement(HtmlConstants.TD_ELEM); writer.endElement(HtmlConstants.TR_ELEMENT); }
public void encodeTableFacets(ResponseWriter writer, FacesContext context, UIDataTableBase dataTable) throws IOException { Object key = dataTable.getRowKey(); dataTable.captureOrigValue(context); dataTable.setRowKey(context, null); encodeTableStructure(writer, context, dataTable); encodeHeaderFacet(writer, context, dataTable, false); encodeFooterFacet(writer, context, dataTable, false); dataTable.setRowKey(context, key); dataTable.restoreOrigValue(context); }
protected void doDecode(FacesContext context, final UIComponent component) { super.doDecode(context, component); if ((null == context) || (null == component)) { throw new NullPointerException(); } if (component instanceof ClientBehaviorHolder) { final Map<String, List<ClientBehavior>> behaviors = ((ClientBehaviorHolder) component).getClientBehaviors(); if (behaviors == null || behaviors.isEmpty()) { return; } Map<String, String> parametersMap = context.getExternalContext().getRequestParameterMap(); final String behaviorEvent = parametersMap.get(BEHAVIOR_EVENT_NAME); if (behaviorEvent == null || !behaviorEvent.startsWith(ROW)) { return; } String behaviorSourceId = RenderKitUtils.getBehaviorSourceId(context); ((UIDataAdaptor) component).invokeOnRow(context, behaviorSourceId, new ContextCallback() { public void invokeContextCallback(FacesContext context, UIComponent target) { if (target.equals(component)) { List<ClientBehavior> behaviorsForEvent = behaviors.get(behaviorEvent); if (behaviorsForEvent != null && !behaviorsForEvent.isEmpty()) { for (ClientBehavior behavior : behaviorsForEvent) { behavior.decode(context, component); } } } } }); } }
boolean isEncodeHeaders = isEncodeHeaders(dataTable); boolean encodeThead = containsThead(); partialStart(facesContext, headerClientId); setCellElement(facesContext, id, HtmlConstants.TH_ELEM); int columns = getColumnsCount(dataTable.columns()); String rowClass = getHeaderSkinClass(); String cellClass = getHeaderCellSkinClass(); String firstClass = getHeaderFirstSkinClass(); rowClass = mergeStyleClasses("headerClass", rowClass, dataTable); cellClass = mergeStyleClasses("headerCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("headerFirstClass", firstClass, dataTable); saveRowStyles(facesContext, clientId, firstClass, rowClass, cellClass); encodeTableFacet(facesContext, writer, clientId, columns, header, UIDataTableBase.HEADER, rowClass, cellClass, encodePartialUpdateForChildren); String rowClass = getColumnHeaderSkinClass(); String cellClass = getColumnHeaderCellSkinClass(); String firstClass = getColumnHeaderFirstSkinClass(); rowClass = mergeStyleClasses("columnHeaderClass", rowClass, dataTable); cellClass = mergeStyleClasses("columnHeaderCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("columnHeaderFirstClass", firstClass, dataTable);
boolean encodeTfoot = containsThead(); if (encodeTfoot) { String footerClientId = clientId + ":tf"; partialStart(facesContext, footerClientId); int columns = getColumnsCount(dataTable.columns()); String rowClass = getColumnFooterSkinClass(); String cellClass = getColumnFooterCellSkinClass(); String firstClass = getColumnFooterFirstSkinClass(); rowClass = mergeStyleClasses("columnFooterClass", rowClass, dataTable); cellClass = mergeStyleClasses("columnFooterCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("firstColumnFooterClass", firstClass, dataTable); saveRowStyles(facesContext, clientId, firstClass, rowClass, cellClass); partialStart(facesContext, targetId); encodeStyleClass(writer, facesContext, dataTable, null, rowClass); encodeColumnFacet(facesContext, writer, dataTable, UIDataTableBase.FOOTER, columns, cellClass); writer.endElement(HtmlConstants.TR_ELEMENT); partialEnd(facesContext); String rowClass = getFooterSkinClass(); String cellClass = getFooterCellSkinClass(); String firstClass = getFooterFirstSkinClass();
public void encodeTableRows(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase, boolean encodePartialUpdate) throws IOException { int rowCount = dataTableBase.getRowCount(); Object key = dataTableBase.getRowKey(); dataTableBase.captureOrigValue(facesContext); dataTableBase.setRowKey(facesContext, null); boolean encodeParentTBody = encodeParentTBody(dataTableBase); encodeBeforeRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate); if (rowCount > 0) { processRows(writer, facesContext, dataTableBase, new Object[] { encodePartialUpdate, encodeParentTBody }); } else { encodeNoDataFacetOrLabel(writer, facesContext, dataTableBase); } encodeAfterRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate); if (encodePartialUpdate) { String id = dataTableBase.getClientId(facesContext) + HIDDEN_CONTAINER_ID; partialStart(facesContext, id); } encodeHiddens(writer, facesContext, dataTableBase, new Object[] { encodeParentTBody }); if (encodePartialUpdate) { partialEnd(facesContext); } dataTableBase.setRowKey(facesContext, key); dataTableBase.restoreOrigValue(facesContext); }
public void encodeNoDataFacetOrLabel(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase) throws IOException { int columns = getColumnsCount(dataTableBase.columns()); UIComponent noDataFacet = dataTableBase.getNoData(); String noDataLabel = dataTableBase.getNoDataLabel(); writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase); String styleClass = (String) dataTableBase.getAttributes().get("noDataStyleClass"); styleClass = concatClasses(getNoDataClass(), styleClass); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null); writer.startElement(HtmlConstants.TD_ELEM, dataTableBase); writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null); String cellStyleClass = (String) dataTableBase.getAttributes().get("noDataCellStyleClass"); cellStyleClass = concatClasses(getNoDataCellClass(), cellStyleClass); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null); if (noDataFacet != null && noDataFacet.isRendered()) { noDataFacet.encodeAll(facesContext); } else if (noDataLabel != null && noDataLabel.length() > 0) { writer.writeText(noDataLabel, "noDataLabel"); } else { writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, "display: none;", null); } writer.endElement(HtmlConstants.TD_ELEM); writer.endElement(HtmlConstants.TR_ELEMENT); }
public void encodeTableFacets(ResponseWriter writer, FacesContext context, UIDataTableBase dataTable) throws IOException { Object key = dataTable.getRowKey(); dataTable.captureOrigValue(context); dataTable.setRowKey(context, null); encodeTableStructure(writer, context, dataTable); encodeHeaderFacet(writer, context, dataTable, false); encodeFooterFacet(writer, context, dataTable, false); dataTable.setRowKey(context, key); dataTable.restoreOrigValue(context); }
protected void doDecode(FacesContext context, final UIComponent component) { super.doDecode(context, component); if ((null == context) || (null == component)) { throw new NullPointerException(); } if (component instanceof ClientBehaviorHolder) { final Map<String, List<ClientBehavior>> behaviors = ((ClientBehaviorHolder) component).getClientBehaviors(); if (behaviors == null || behaviors.isEmpty()) { return; } Map<String, String> parametersMap = context.getExternalContext().getRequestParameterMap(); final String behaviorEvent = parametersMap.get(BEHAVIOR_EVENT_NAME); if (behaviorEvent == null || !behaviorEvent.startsWith(ROW)) { return; } String behaviorSourceId = RenderKitUtils.getBehaviorSourceId(context); ((UIDataAdaptor) component).invokeOnRow(context, behaviorSourceId, new ContextCallback() { public void invokeContextCallback(FacesContext context, UIComponent target) { if (target.equals(component)) { List<ClientBehavior> behaviorsForEvent = behaviors.get(behaviorEvent); if (behaviorsForEvent != null && !behaviorsForEvent.isEmpty()) { for (ClientBehavior behavior : behaviorsForEvent) { behavior.decode(context, component); } } } } }); } }
boolean isEncodeHeaders = isEncodeHeaders(dataTable); boolean encodeThead = containsThead(); partialStart(facesContext, headerClientId); setCellElement(facesContext, id, HtmlConstants.TH_ELEM); int columns = getColumnsCount(dataTable.columns()); String rowClass = getHeaderSkinClass(); String cellClass = getHeaderCellSkinClass(); String firstClass = getHeaderFirstSkinClass(); rowClass = mergeStyleClasses("headerClass", rowClass, dataTable); cellClass = mergeStyleClasses("headerCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("headerFirstClass", firstClass, dataTable); saveRowStyles(facesContext, clientId, firstClass, rowClass, cellClass); encodeTableFacet(facesContext, writer, clientId, columns, header, UIDataTableBase.HEADER, rowClass, cellClass, encodePartialUpdateForChildren); String rowClass = getColumnHeaderSkinClass(); String cellClass = getColumnHeaderCellSkinClass(); String firstClass = getColumnHeaderFirstSkinClass(); rowClass = mergeStyleClasses("columnHeaderClass", rowClass, dataTable); cellClass = mergeStyleClasses("columnHeaderCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("columnHeaderFirstClass", firstClass, dataTable);
boolean encodeTfoot = containsThead(); if (encodeTfoot) { String footerClientId = clientId + ":tf"; partialStart(facesContext, footerClientId); int columns = getColumnsCount(dataTable.columns()); String rowClass = getColumnFooterSkinClass(); String cellClass = getColumnFooterCellSkinClass(); String firstClass = getColumnFooterFirstSkinClass(); rowClass = mergeStyleClasses("columnFooterClass", rowClass, dataTable); cellClass = mergeStyleClasses("columnFooterCellClass", cellClass, dataTable); firstClass = mergeStyleClasses("firstColumnFooterClass", firstClass, dataTable); saveRowStyles(facesContext, clientId, firstClass, rowClass, cellClass); partialStart(facesContext, targetId); encodeStyleClass(writer, facesContext, dataTable, null, rowClass); encodeColumnFacet(facesContext, writer, dataTable, UIDataTableBase.FOOTER, columns, cellClass); writer.endElement(HtmlConstants.TR_ELEMENT); partialEnd(facesContext); String rowClass = getFooterSkinClass(); String cellClass = getFooterCellSkinClass(); String firstClass = getFooterFirstSkinClass();
public void encodeTableRows(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase, boolean encodePartialUpdate) throws IOException { int rowCount = dataTableBase.getRowCount(); Object key = dataTableBase.getRowKey(); dataTableBase.captureOrigValue(facesContext); dataTableBase.setRowKey(facesContext, null); boolean encodeParentTBody = encodeParentTBody(dataTableBase); encodeBeforeRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate); if (rowCount > 0) { processRows(writer, facesContext, dataTableBase, new Object[] { encodePartialUpdate, encodeParentTBody }); } else { encodeNoDataFacetOrLabel(writer, facesContext, dataTableBase); } encodeAfterRows(writer, facesContext, dataTableBase, encodeParentTBody, encodePartialUpdate); if (encodePartialUpdate) { String id = dataTableBase.getClientId(facesContext) + HIDDEN_CONTAINER_ID; partialStart(facesContext, id); } encodeHiddens(writer, facesContext, dataTableBase, new Object[] { encodeParentTBody }); if (encodePartialUpdate) { partialEnd(facesContext); } dataTableBase.setRowKey(facesContext, key); dataTableBase.restoreOrigValue(facesContext); }
public void encodeNoDataFacetOrLabel(ResponseWriter writer, FacesContext facesContext, UIDataTableBase dataTableBase) throws IOException { int columns = getColumnsCount(dataTableBase.columns()); UIComponent noDataFacet = dataTableBase.getNoData(); String noDataLabel = dataTableBase.getNoDataLabel(); writer.startElement(HtmlConstants.TR_ELEMENT, dataTableBase); String styleClass = (String) dataTableBase.getAttributes().get("noDataStyleClass"); styleClass = concatClasses(getNoDataClass(), styleClass); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, styleClass, null); writer.startElement(HtmlConstants.TD_ELEM, dataTableBase); writer.writeAttribute(HtmlConstants.COLSPAN_ATTRIBUTE, columns, null); String cellStyleClass = (String) dataTableBase.getAttributes().get("noDataCellStyleClass"); cellStyleClass = concatClasses(getNoDataCellClass(), cellStyleClass); writer.writeAttribute(HtmlConstants.CLASS_ATTRIBUTE, cellStyleClass, null); if (noDataFacet != null && noDataFacet.isRendered()) { noDataFacet.encodeAll(facesContext); } else if (noDataLabel != null && noDataLabel.length() > 0) { writer.writeText(noDataLabel, "noDataLabel"); } else { writer.writeAttribute(HtmlConstants.STYLE_ATTRIBUTE, "display: none;", null); } writer.endElement(HtmlConstants.TD_ELEM); writer.endElement(HtmlConstants.TR_ELEMENT); }
public void encodeTableFacets(ResponseWriter writer, FacesContext context, UIDataTableBase dataTable) throws IOException { Object key = dataTable.getRowKey(); dataTable.captureOrigValue(context); dataTable.setRowKey(context, null); encodeTableStructure(writer, context, dataTable); encodeHeaderFacet(writer, context, dataTable, false); encodeFooterFacet(writer, context, dataTable, false); dataTable.setRowKey(context, key); dataTable.restoreOrigValue(context); }