/** * Process the first column checkbox. * * @param context * The context. * @param parentId * The parent id. */ private void processFirstCheckbox(final FacesContext context, final String parentId) { final HtmlAction action = this.resolveFacet(FacetKeys.SELECT_ACTION, HtmlAction.class); if (!CheckUtil.isNull(action)) { // Add first checkbox. final HtmlSelectingCheckbox checkbox = new HtmlSelectingCheckbox(); final ValueExpression targetExpression = action.getTargetExpression(); final Object value = targetExpression.getValue(context.getELContext()); final ValueExpression valueExpression = this.getVariableReference(context); if (value instanceof Collection) { // Multiples. checkbox.setListener(new CollectionState(targetExpression, valueExpression)); } else { // Singles checkbox.setOnChange(String.format("%s.checkSingleRadio();submit()", parentId.replace("_", ""))); checkbox.setListener(new ValueState(targetExpression, valueExpression)); } final HtmlColumn firstColumn = new HtmlColumn(); firstColumn.getChildren().add(checkbox); this.builderGenerated.addColumn(firstColumn); } }
/** {@inheritDoc} */ @Override public void processStrategy(final FacesContext context, final TablePropertyDescriptorRenderStrategy<?, ?> strategy) { Validate.notNull(context, HtmlGeneratedTable.FACES_CONTEXT_NULL); Validate.notNull(strategy, "Strategy may not be null."); final HtmlColumn column = new HtmlColumn(); column.setHeader(strategy.getLabel()); final StyleClassResolver resolver = this.getValueOrDefault(PropertyKeys.STYLECLASS_RESOLVER, context, new PropertyFileStyleClassResolver()); String tableFooter = JsfStyleClasses.TABLE_FOOTER.getDefaultValue(); String tableHeader = JsfStyleClasses.TABLE_HEADER.getDefaultValue(); String tableLink = JsfStyleClasses.TABLE_LINK.getDefaultValue(); if (!CheckUtil.isNull(resolver)) { tableFooter = resolver.resolve(JsfStyleClasses.TABLE_FOOTER); tableHeader = resolver.resolve(JsfStyleClasses.TABLE_HEADER); tableLink = resolver.resolve(JsfStyleClasses.TABLE_LINK); } column.setFooterClass(tableFooter); column.setHeaderClass(tableHeader); if (CheckUtil.isNull(this.actionGenerated)) { column.getChildren().add(strategy.getOutput()); } else { this.processAction(context, strategy, column, tableLink); } this.builderGenerated.addColumn(column); }