Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   * JBoss, Home of Professional Open Source
   * Copyright ${year}, Red Hat, Inc. and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * Lesser General Public License for more details.
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site:
 package org.richfaces.component;
 import  javax.faces.context.FacesContext;
 import  javax.faces.event.AbortProcessingException;
 import  javax.faces.event.FacesEvent;
 import  org.richfaces.event.CollapsibleSubTableToggleEvent;
 import  org.richfaces.event.CollapsibleSubTableToggleListener;

The <rich:collapsibleSubTable> component acts as a child element to a <rich:dataTable> component. The <rich:collapsibleSubTable> component iterates through the child collections in the currently iterated object to create master-detail tables.

Anton Belevich
 @JsfComponent(type = ., family = ., generate = "org.richfaces.component.UICollapsibleSubTable", renderer = @JsfRenderer(type = "org.richfaces.CollapsibleSubTableRenderer"), tag = @Tag(name = "collapsibleSubTable", handler = "org.richfaces.taglib.CollapsibleSubTableHandler", type = .), attributes = {
         "style-prop.xml""iteration-props.xml""rows-prop.xml""sequence-props.xml""events-row-props.xml" })
 public abstract class AbstractCollapsibleSubTable extends UIDataTableBase implements Column, Expandable {
     public static final String COMPONENT_TYPE = "org.richfaces.CollapsibleSubTable";
     public static final String COMPONENT_FAMILY = .;
     public static final String MODE_AJAX = "ajax";
     public static final String MODE_SERVER = "server";
     public static final String MODE_CLIENT = "client";
     public static final int EXPANDED_STATE = 1;
     public static final int COLLAPSED_STATE = 0;
     enum PropertyKeys {

Determines the state of sub table: true (expanded), false (collapsed)
     public boolean isExpanded() {
         return (BooleangetStateHelper().eval(.true);
     public void setExpanded(boolean expanded) {

Specifies what mode will be used to expand the sub table: client (default), ajax, server, none (can't be expanded)
     public abstract String getExpandMode();
     public void broadcast(FacesEvent eventthrows AbortProcessingException {
         if (event instanceof CollapsibleSubTableToggleEvent) {
             CollapsibleSubTableToggleEvent toggleEvent = (CollapsibleSubTableToggleEvent) event;
             boolean newValue = toggleEvent.isExpanded();
             FacesContext facesContext = getFacesContext();
             ELContext elContext = facesContext.getELContext();
             ValueExpression valueExpression = getValueExpression(..toString());
             if (valueExpression != null && !valueExpression.isReadOnly(elContext)) {
             if (getFacesContext().getPartialViewContext().isAjaxRequest()) {
                 String render = resolveClientId(facesContextthis);
                 String togglerId = toggleEvent.getTogglerId();
                if (togglerId != null) {
    public boolean isBreakBefore() {
        return true;
    public void setBreakBefore(boolean newBreakBefore) {
        throw new IllegalStateException("Property 'breakBefore' for subtable is read-only");
    public String getSortExpression() {
        // SubTable is not sortable element.
        return null;
    public void setSortExpression(String sortExpression) {
        throw new IllegalArgumentException("subtable is not sortable element");
    public void addCollapsibleSubTableToggleListener(CollapsibleSubTableToggleListener listener) {
    public void removeCollapsibleSubTableToggleListener(CollapsibleSubTableToggleListener listener) {
    public CollapsibleSubTableToggleListener[] getCollapsibleSubTableToggleListener() {
        return (CollapsibleSubTableToggleListener[]) getFacesListeners(CollapsibleSubTableToggleListener.class);
    public void setIterationState(Object stateObject) {
        StateHolderArray stateHolderList = (StateHolderArraystateObject;
        if (stateHolderList != null && !stateHolderList.isEmpty()) {
            getStateHelper().put(., (BooleanstateHolderList.get(1));
        } else {
    public Object getIterationState() {
        StateHolderArray holderList = new StateHolderArray();
        return holderList;
New to GrepCode? Check out our FAQ X