Oracle Fusion Middleware Java API Reference for Oracle Data Visualization Components
11g Release 2 (11.1.2.1.0)

E17492-02

oracle.adf.view.faces.bi.component.pivotTable
Class UIDataCell

java.lang.Object
  extended by javax.faces.component.UIComponent
      extended by org.apache.myfaces.trinidad.component.UIXComponent
          extended by org.apache.myfaces.trinidad.component.UIXComponentBase
              extended by oracle.adf.view.faces.bi.component.pivotTable.UIDataCell
All Implemented Interfaces:
java.util.EventListener, javax.faces.component.NamingContainer, javax.faces.component.PartialStateHolder, javax.faces.component.StateHolder, javax.faces.event.ComponentSystemEventListener, javax.faces.event.FacesListener, javax.faces.event.SystemEventListenerHolder

public class UIDataCell
extends org.apache.myfaces.trinidad.component.UIXComponentBase
implements javax.faces.component.NamingContainer

Each immediate child of a Pivot Table component must either be a <dvt:headerCell> or <dvt:dataCell> component. The Pivot Table should contain at most one headerCell component and at most one dataCell component. These components make it possible to customize the cell content via stamping. For example, each dataCell can contain non-editable content or editable content.

Data Cell Features

Stamping

Rather than having a separate child component for each cell in the pivot table, the child component of the dataCell component is repeatedly rendered (stamped) once per data cell. Because of this stamping behavior, only certain types of components are supported as children inside a Data Cell. Supported components include all components with no behavior and most components that implement the EditableValueHolder or ActionSource interfaces.

As the dataCell content is stamped, the data for the current cell is copied into an EL reachable property. The name of this property is defined by the var property on the Pivot Table. Once the Pivot Table has completed rendering, this property is removed (or reverted back to its previous value). In the following example, the data for each cell is placed under the EL property "cellData". Each data cell displays its content by getting further properties from the "cellData" property:

      
                      <dvt:pivotTable id="goodPT" var="cellData">
                          <dvt:dataCell id="dc1">
                              <af:outputText id="ot1" value="#{cellData.dataValue}" />
                          </dvt:dataCell>                   
                      </dvt:pivotTable>
      
      

Customized Cell Content and Style

For customizing data cell content, use DataFormat. DataFormat attribute returns instances of oracle.dss.adf.view.faces.bi.component.pivotTable.CellFormat. CellFormat instances allow specification of the following:

Data Cell content can be specified by using a logical component such as <af:switcher>.

The following example shows how Data Cell supports alternative cell content using <af:switcher> based on the stamping property. In other words, the stamping content is customized on a cell by cell basis depending on a variable value ("#{richPivotTableModel.stampFacet}"). The example also shows custom CSS styling using inlineStyle and contentStyle attributes of outputText and inputText respectively.

      
              <dvt:pivotTable id="goodPT"
                         value="#{richPivotTableModel.dataModel}"
                         var="cellData"
                         varStatus="cellStatus">             
      
                <dvt:dataCell id="dc1"> 
                  <af:switcher id="sw1" facetName="#{richPivotTableModel.stampFacet}">
                    <f:facet name="outputText">           
                      <af:outputText id="ot1" value="#{cellData.dataValue}" inlineStyle="#{cellStatus.cellFormat.textStyle}"/>    
                    </f:facet>  
                    <f:facet name="inputText">  
                      <af:inputText id="ot2" value="#{cellData.dataValue}" contentStyle="#{cellStatus.cellFormat.textStyle}" />   
                    </f:facet>
                  </af:switcher>
                </dvt:dataCell>
              </dvt:pivotTable>
      
      

The following example uses <af:switcher> to vary the type of stamped component by measure (i.e. different content for Sales, Weight, etc.). The example also shows different components that can be used as child tag of <dvt:dataCell>

      

        <dvt:pivotTable id="goodPT" var="cellData">
          <dvt:dataCell>                    
            <af:switcher id="sw" facetName="#{cellStatus.members.MeasDim.value}" defaultFacet="Other">
              <f:facet name="Sales">
                <af:inputText id="idinputtext1" value="#{cellData.dataValue}"   />  
              </f:facet>
              <f:facet name="Units">
                <af:inputText id="idinputtext2" value="#{cellData.dataValue}"   >      
                  <af:validateLength maximum="6" minimum="2" />
                </af:inputText>
              </f:facet>
              <f:facet name="Weight">
                <af:outputText id="idoutputtext1" value="#{cellData.dataValue}" />
              </f:facet>
              <f:facet name="Color">
                <af:selectOneChoice id="idselectonechoice"
                                    value="#{cellData.dataValue}" label="Color">
                  <af:selectItem label="red" value="red" shortDesc="shortDesc sample"/>                                
                  <af:selectItem label="coffee" value="coffee" shortDesc="Sample shortDesc text"/>                            
                  <af:selectItem label="milk" value="milk" shortDesc="Another shortDesc sample"/>                            
                </af:selectOneChoice>
              </f:facet>
              <f:facet name="Available">
                <af:selectBooleanCheckbox id="idselectbooleancheckbox" label="Availability" text="Item Available"
                                          autoSubmit="true" value="#{cellData.dataValue}"/>                    
              </f:facet>
              <f:facet name="Supply Date">
                <af:inputDate id="idinputdate1" value="#{cellData.dataValue}"
                               label="Change Date:" simple="true" >                        
                  <af:validateDateTimeRange maximum="2020-12-31" minimum="1980-12-31" />
                </af:inputDate>
              </f:facet>
              <f:facet name="Link">
                <af:commandLink text="#{cellData.dataValue}" immediate="true" action="guide" id="idcommandlink"/>
              </f:facet>
              <f:facet name="Size">
                <af:inputComboboxListOfValues label="Size" id="idInputComboboxListOfValues"                                       
                           value="#{cellData.dataValue}"  searchDesc="Search Size"                                        
                           model="#{pivotTableEditBean.listOfValuesModel}"                            
                           columns="3"   />
              </f:facet>
              <f:facet name="Other">
                <af:outputText id="idoutputtext2" value="#{cellData.dataValue}"   />  
              </f:facet>
            </af:switcher>
          </dvt:dataCell>
        </dvt:pivotTable>

      
      

Supported Child Tags

Examples of components that are supported by <dvt:dataCell> include but are not limited to the following:

The dataCell should have only one child component. If multiple children are desired, they should be wrapped in another component. If no layout is desired, <af:group> can be used, which simply renders its children without adding layout, and is consequently lightweight. If layout is desired, a layout component like <af:panelGroupLayout> can be used instead. If multiple children are present without being wrapped, the current behavior is to vertically stack the components, but no guarantees or support are provided for this usage. To achieve vertical stacking, consider <panelGroupLayout layout="vertical">.

Example

The following example shows a way to use stamping

      
              <dvt:pivotTable id="goodPT"
                    value="#{pivotTableEdit.dataModel}"                                         
                    var="cellData"
                    varStatus="cellStatus">
                <dvt:dataCell id="dc1">                    
                  <af:outputText id="ot1" value="#{cellData.dataValue}"   />  
                </dvt:dataCell>
              </dvt:pivotTable>
      
      

Since:
release specific (what release of product did this appear in)

Field Summary
static java.lang.String COMPONENT_FAMILY
           
static java.lang.String COMPONENT_TYPE
           
static org.apache.myfaces.trinidad.bean.PropertyKey CUSTOMIZATION_ID_KEY
           
static org.apache.myfaces.trinidad.bean.PropertyKey DATA_ATTRIBUTE_KEY
          Deprecated. An <af:switcher> should be used instead of this attribute.
static org.apache.myfaces.trinidad.bean.FacesBean.Type TYPE
           
 
Fields inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase
BINDING_KEY, ID_KEY, RENDERED_KEY, RENDERER_TYPE_KEY, TRANSIENT_KEY
 
Fields inherited from class javax.faces.component.UIComponent
BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, VIEW_LOCATION_KEY
 
Fields inherited from interface javax.faces.component.NamingContainer
SEPARATOR_CHAR
 
Constructor Summary
UIDataCell()
          Constructs a new UIDataCell.
 
Method Summary
protected  org.apache.myfaces.trinidad.bean.FacesBean.Type getBeanType()
           
 java.lang.String getCustomizationId()
          Deprecated. The id attribute should be used when applying persistent customizations. This attribute will be removed in the next release.
 java.lang.String getDataAttribute()
          Deprecated. An <af:switcher> should be used instead of this attribute.
 java.lang.String getFamily()
           
 void setCustomizationId(java.lang.String customizationId)
          Deprecated. The id attribute should be used when applying persistent customizations. This attribute will be removed in the next release.
 void setDataAttribute(java.lang.String dataAttribute)
          Deprecated. An <af:switcher> should be used instead of this attribute.
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase
adaptMethodBinding, addAttributeChange, addAttributeChangeListener, addClientBehavior, addFacesListener, broadcast, broadcastToMethodBinding, broadcastToMethodExpression, clearInitialState, createFacesBean, decode, decodeChildren, decodeChildrenImpl, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributeChangeListener, getAttributeChangeListeners, getAttributes, getBooleanProperty, getChildCount, getChildren, getClientBehaviors, getClientId, getContainerClientId, getDefaultEventName, getFacesBean, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacetNames, getFacets, getFacetsAndChildren, getId, getIntProperty, getLifecycleRenderer, getListenersForEventClass, getParent, getProperty, getPropertyKey, getRenderedFacetsAndChildren, getRenderer, getRendererType, getRendersChildren, getValueBinding, getValueExpression, initialStateMarked, invokeOnChildrenComponents, invokeOnComponent, invokeOnNamingContainerComponent, isRendered, isTransient, markInitialState, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, queueEvent, removeAttributeChangeListener, removeFacesListener, restoreState, satisfiesPartialTrigger, saveState, setAttributeChangeListener, setAttributeChangeListener, setBooleanProperty, setId, setIntProperty, setParent, setProperty, setRendered, setRendererType, setTransient, setValueBinding, setValueExpression, subscribeToEvent, toString, unsubscribeFromEvent, updateChildren, updateChildrenImpl, validateChildren, validateChildrenImpl
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponent
addPartialTarget, clearCachedClientIds, clearCachedClientIds, encodeFlattenedChild, encodeFlattenedChildren, getLogicalParent, getLogicalParent, getStateHelper, getStateHelper, isVisitable, partialEncodeVisit, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, setPartialTarget, setupChildrenEncodingContext, setupChildrenVisitingContext, setupEncodingContext, setUpEncodingContext, setupVisitingContext, tearDownChildrenEncodingContext, tearDownChildrenVisitingContext, tearDownEncodingContext, tearDownVisitingContext, visitAllChildren, visitChildren, visitChildren, visitTree, visitTree
 
Methods inherited from class javax.faces.component.UIComponent
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getResourceBundleMap, isCompositeComponent, isInView, popComponentFromEL, processEvent, pushComponentToEL, setInView
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE

public static final org.apache.myfaces.trinidad.bean.FacesBean.Type TYPE

CUSTOMIZATION_ID_KEY

public static final org.apache.myfaces.trinidad.bean.PropertyKey CUSTOMIZATION_ID_KEY

DATA_ATTRIBUTE_KEY

@Deprecated
public static final org.apache.myfaces.trinidad.bean.PropertyKey DATA_ATTRIBUTE_KEY
Deprecated. An <af:switcher> should be used instead of this attribute.

COMPONENT_FAMILY

public static final java.lang.String COMPONENT_FAMILY
See Also:
Constant Field Values

COMPONENT_TYPE

public static final java.lang.String COMPONENT_TYPE
See Also:
Constant Field Values
Constructor Detail

UIDataCell

public UIDataCell()
Constructs a new UIDataCell.

Method Detail

getCustomizationId

@Deprecated
public final java.lang.String getCustomizationId()
Deprecated. The id attribute should be used when applying persistent customizations. This attribute will be removed in the next release.

Returns:
the customization ID

setCustomizationId

@Deprecated
public final void setCustomizationId(java.lang.String customizationId)
Deprecated. The id attribute should be used when applying persistent customizations. This attribute will be removed in the next release.

Parameters:
customizationId - the new customization ID

getDataAttribute

@Deprecated
public final java.lang.String getDataAttribute()
Deprecated. An <af:switcher> should be used instead of this attribute.

Returns the data attribute ( e.g Sales, Cost, ... ) that has its data cell content determined by this UIDataCell instance.

Returns:
the data attribute

setDataAttribute

@Deprecated
public final void setDataAttribute(java.lang.String dataAttribute)
Deprecated. An <af:switcher> should be used instead of this attribute.

Sets the data attribute ( e.g Sales, Cost, ... ) that has its data cell content determined by this UIDataCell instance.

Parameters:
dataAttribute - the data attribute

getFamily

public java.lang.String getFamily()
Specified by:
getFamily in class org.apache.myfaces.trinidad.component.UIXComponentBase

getBeanType

protected org.apache.myfaces.trinidad.bean.FacesBean.Type getBeanType()
Overrides:
getBeanType in class org.apache.myfaces.trinidad.component.UIXComponentBase

Oracle Fusion Middleware Java API Reference for Oracle Data Visualization Components
11g Release 2 (11.1.2.1.0)

E17492-02

Copyright © 1997, 2011, Oracle. All rights reserved.