oracle.adf.view.rich.render

## Class RichRenderer

- java.lang.Object
- - javax.faces.render.Renderer
  - - org.apache.myfaces.trinidad.render.CoreRenderer
    - - oracle.adf.view.rich.render.RichRenderer

- All Implemented Interfaces:
    Cloneable, org.apache.myfaces.trinidad.render.TypedRenderer

      public abstract class RichRenderer
      extends org.apache.myfaces.trinidad.render.CoreRenderer
      implements org.apache.myfaces.trinidad.render.TypedRenderer, Cloneable

  Base class for renderers of Rich Client components.

  ### Overview

  Developers subclassing this will generally need to override four methods:

  - findTypeConstants(): override this to cache PropertyKeys and properly initialize the ClientMetadata
  - decodeInternal(): override to provide any renderer-specific decoding behavior. The standard decode() method is final, and contains generic rich client decoding functionality.
  - encodeAll(): override to perform encoding of the component. Call encodeChild() or encodeAllChildren() to encode children where necessary.
  - getClientConstructor(): provide the name of the client-side object representing this renderer. HINT: if you do not have a client-side object, you should not be subclassing RichRenderer! Subclass the Trinidad CoreRenderer class, or the ordinary JSF Renderer class; these Renderers will work with the Rich Client.

  A variety of other methods may be overridden to affect decoding or encoding behavior. This class extends the Trinidad CoreRenderer API, which contains a number of useful utility methods.

  ### Decoding events

  To decode an event sent by the client, override `decodeInternal(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)` and call `getClientEvent(javax.faces.context.FacesContext, java.lang.String, java.lang.String)` with the type of the event you are expecting. A ClientEvent will contain a Map of objects with all the event-specific properties marshalled by the client.

  ### Interacting with the RichRenderingContext

  RichRenderingContext contains a number of APIs useful for sending information to the client. To retrieve a RichRenderingContext, call `getRichRenderingContext(org.apache.myfaces.trinidad.context.RenderingContext)`.

  Author:
    Adam Winer
  See Also:
    `ClientComponent`, `ClientMetadata`, `RichRenderingContext`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ARIA_CONTROLS_PROPERTY`
    `static String` | `ARIA_DISABLED_PROPERTY`
    `static String` | `ARIA_EXPANDED_PROPERTY`
    `static String` | `ARIA_HASPOPUP_PROPERTY`
    `static String` | `ARIA_LABEL_PROPERTY`
    `static String` | `ARIA_LABELLEDBY_PROPERTY`
    `static String` | `ARIA_ROLE_PROPERTY`
    `static String` | `ARIA_SELECTED_PROPERTY`
    `static String` | `BACKGROUND_IMG_MODE`
    `static String` | `CHILDREN_THEME_PROPERTY`
    `static String` | `ENABLE_THEME_PROPERTY`
    `static String` | `IN_COMPACT_MODE`
    `static String` | `THEME_ATTRIBUTE`

    - ### Fields inherited from class org.apache.myfaces.trinidad.render.CoreRenderer

      `CHAR_UNDEFINED, NO_CHILD_INDEX`

    - ### Fields inherited from class javax.faces.render.Renderer

      `PASSTHROUGH_RENDERER_LOCALNAME_KEY`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `RichRenderer(org.apache.myfaces.trinidad.bean.FacesBean.Type type)` Creates a RichRenderer.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addAttributeChange(javax.faces.component.UIComponent comp, String attrName, Object attrValue)` Adds an attribute change to persist the attribute value using change manager
    `static void` | `applyPropertyDeltas(javax.faces.context.FacesContext facesContext, javax.faces.component.UIComponent component)` Called to apply any property deltas from the client to the given component
    `javax.faces.render.Renderer` | `cloneWithType(org.apache.myfaces.trinidad.bean.FacesBean.Type type)` Clone a Renderer instance with a new Type; part of the TypedRenderer API.
    `ActiveComponentEncoder` | `createActiveComponentEncoder(javax.faces.component.UIComponent component, Collection<String> boundAttributes)` Returns the ActiveCellEncoder instance for a Renderer.
    `static String` | `createClientSubId(String clientId, String name)` Creates an identifier that can be used on the client to locate a piece of the DOM.
    `DragSource` | `createDefaultDragSource(javax.faces.component.UIComponent component, Set<DnDAction> allowedActions, DnDAction defaultAction, String discriminant, javax.el.MethodExpression dragDropEndListener, Map<String,?> properties)` Renderer implementations should override this method to return the DragSource instance specific to the component (for e.g., when it overrides the DefaultDragSourceFactory interface)
    `String` | `createDefaultDragSourceBehavior(javax.faces.component.UIComponent component, DragSource dragSource, Set<DnDAction> allowedActions, DnDAction defaultAction, String discriminant, javax.el.MethodExpression dragDropEndListener, Map<String,?> properties)` Returns the JS clientDragSource initializer.
    `String` | `createSubId(String clientId, String name)` Creates an identifier that can be used on the client to locate a piece of the DOM.
    `protected void` | `decode(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean, String clientId)` Override of decode() to provide default rich client functionality.
    `protected boolean` | `decodeIncompatiblePropertyKey(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, String clientId, org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey pKey, String value)` Subclasses can override this method to decode property keys whose types cannot be coerced by default.
    `void` | `decodeInternal(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, String clientId)` Hook for providing per-component decoding
    `protected void` | `decodeUnknownKey(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean, String name, Object value)` Called when a key whose name is not known to the FacesBean has been synchronized.
    `protected void` | `delegateRenderer(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.render.CoreRenderer renderer)` Delegate to a child Renderer, building attributes into the same client component.
    `protected void` | `delegateRenderer(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent childComponent, org.apache.myfaces.trinidad.render.CoreRenderer renderer)` Delegate to a child Renderer building attributes into the child's ClientComponent.
    `protected void` | `delegateRenderer(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.render.CoreRenderer renderer)` Delegate to a child Renderer without any attributes delivered to a client component.
    `protected abstract void` | `encodeAll(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Hook for implementing renderer-specific rendering.
    `protected void` | `encodeAll(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean)` Base rendering functionality for all rich renderers.
    `protected void` | `encodeAllChildrenInContext(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component)` Convenience method that calls `setupChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`, `CoreRenderer.encodeAllChildren(javax.faces.context.FacesContext, javax.faces.component.UIComponent)` and then `tearDownChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`.
    `protected void` | `encodeChildInContext(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, javax.faces.component.UIComponent childComponent)` Convenience method that calls `setupChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`, `CoreRenderer.encodeChild(javax.faces.context.FacesContext, javax.faces.component.UIComponent)` and then `tearDownChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`.
    `protected void` | `encodeChildrenInContext(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, javax.faces.component.UIComponent... childComponents)` Convenience method that calls `setupChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`, `CoreRenderer.encodeChild(javax.faces.context.FacesContext, javax.faces.component.UIComponent)` on each child that is passed in `tearDownChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`.
    `protected <S> boolean` | `encodeFlattenedComponents(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.component.ComponentProcessingContext cpContext, org.apache.myfaces.trinidad.component.ComponentProcessor<S> childProcessor, S callbackContext, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Encode the flattened components.
    `<S> boolean` | `encodeFlattenedComponents(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.component.ComponentProcessingContext cpContext, org.apache.myfaces.trinidad.component.ComponentProcessor<S> childProcessor, S callbackContext, javax.faces.component.UIComponent component)` Encode the flattened components.
    `protected void` | `encodeStretchedChild(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component, String parentPadding)` Encodes the specified child including the additional styling to enable CSS stretching of the child.
    `protected javax.faces.context.ResponseWriter` | `encodeStretchedChildBegin(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, String parentPadding)` Prepares the FacesContext/ResponseWriter for encoding of a stretched child.
    `protected javax.faces.context.ResponseWriter` | `encodeStretchedChildBegin(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, String parentTopPadding, String parentRightPadding, String parentBottomPadding, String parentLeftPadding)` Prepares the FacesContext/ResponseWriter for encoding of a stretched child.
    `protected void` | `encodeStretchedChildEnd(javax.faces.context.FacesContext context, javax.faces.context.ResponseWriter responseWriter)` Completes the stretched child encoding which was initiated via a call to encodeStretchedChildBegin().
    `protected void` | `enterHeaderContainer(org.apache.myfaces.trinidad.context.RenderingContext rc)` Call to indicate that we have entered a header container.
    `protected void` | `enterHeaderContainer(org.apache.myfaces.trinidad.context.RenderingContext rc, int newLevel)` Call to indicate that we have entered a header container.
    `protected void` | `exitHeaderContainer(org.apache.myfaces.trinidad.context.RenderingContext rc)` Call to indicate that we have exited a header container.
    `protected void` | `findTypeConstants(org.apache.myfaces.trinidad.bean.FacesBean.Type type, ClientMetadata metadata)`
    `protected Set<String>` | `getCheckedUnsecurePropertyNames(org.apache.myfaces.trinidad.bean.FacesBean bean)` Retrieves unsecure property from the bean, also checks that the unsecure key names don't contain properties that are always secure.
    `protected Set<String>` | `getClientAttributes(org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns the set of client attributes.
    `protected ClientComponent.Type` | `getClientComponentType(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean)` Hook to identify the state-dependent type of the client component.
    `protected abstract String` | `getClientConstructor()` Hook to provide the name of the client-side object representing this renderer.
    `protected ClientEvent` | `getClientEvent(javax.faces.context.FacesContext context, String clientId, String type)`
    `protected String` | `getClientId(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, ClientComponent client)` A convenience method to return a clientId, taking advantage of the cached value in the ClientComponent if it is available.
    `static Iterable<String>` | `getClientIdsToDecode(javax.faces.context.FacesContext context)` Deprecated. no longer used. See `DeltaUtils.getRemainingDeltas(FacesContext)`
    `protected ClientListenerSet` | `getClientListeners(org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns the client listeners.
    `protected String` | `getCurrentHeaderElementName(org.apache.myfaces.trinidad.context.RenderingContext rc)` Get the current header element name (H1...H6).
    `protected boolean` | `getDefaultableBooleanProperty(org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey key)` Convenience for retrieving a boolean from a Boolean PropertyKey
    `protected char` | `getDefaultableCharProperty(org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey key)` Convenience for retrieving a char froma a Character or CharSequence PropertyKey
    `protected int` | `getDefaultableIntProperty(org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey key)` Convenience for retrieving an int from a Number PropertyKey
    `protected <S> S` | `getDefaultableProperty(org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey key)` Retrieves the value of the key in the bean, defaulting the value if the key isn't present
    `protected String` | `getDefaultableResourceURIProperty(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey key)` Convenience for retrieving a Resource URI from an arbitrary PropertyKey
    `protected String` | `getDefaultableStringProperty(org.apache.myfaces.trinidad.bean.FacesBean bean, org.apache.myfaces.trinidad.bean.PropertyKey key)` Convenience for retrieving a String from an arbitrary PropertyKey
    `protected ClientComponent.Type` | `getDefaultClientComponentType()` Return the default client component type; this defaults to CREATE_WITH_REQUIRED_ATTRS.
    `protected String` | `getDefaultStyleClass(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, org.apache.myfaces.trinidad.bean.FacesBean bean)` Override to return the default style class for this renderer.
    `String` | `getDefaultStyleClass(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component)` Return the default style class for this renderer.
    `DragSource` | `getDragSource(javax.faces.component.UIComponent component)` Returns the default DragSource for the provided component.
    `String` | `getDragSourceKey()`
    `protected ClientMetadata` | `getEncodeClientMetadata(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, org.apache.myfaces.trinidad.bean.FacesBean bean)` Hook that allows overriding the client metadata used for encoding.
    `protected String` | `getInlineStyle(org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns the value of the "inlineStyle" property.
    `protected String` | `getPrependedInlineStyle(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns null or extra styles to prepend to the inlineStyle.
    `static javax.faces.render.Renderer` | `getRenderer(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)` Given a component, returns its Renderer.
    `static <S> S` | `getRendererAs(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, Class<S> rendererClass)`
    `boolean` | `getRendersChildren()` Overridden to return true; all rich renderers are "renders children".
    `static RichRenderer` | `getRichRenderer(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)`
    `static RichRenderingContext` | `getRichRenderingContext(org.apache.myfaces.trinidad.context.RenderingContext rc)` Return the current RichRenderingContext.
    `protected List<String>` | `getRootStateStyleClasses(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, org.apache.myfaces.trinidad.bean.FacesBean bean)` Deprecated. Use the getRootStateStyleClasses that also takes a UIComponent as a parameter. Also, if you upgrade your code to use the new API, make sure all your superclasses also use the new API. This API is invoked by default implementation of the new overloaded API to address cases where external custom components have not changed to override the new API yet.
    `protected List<String>` | `getRootStateStyleClasses(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, org.apache.myfaces.trinidad.bean.FacesBean bean, javax.faces.component.UIComponent component)` Override to return any state-based (selected, disabled, etc.) CSS style markers.
    `protected String` | `getShortDesc(org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns the value of the "shortDesc" property.
    `protected String` | `getStyleClass(org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns the value of the "styleClass" property.
    `static String` | `getTheme(org.apache.myfaces.trinidad.context.RenderingContext renderingContext)` Get the current theme from the rendering context's theme stack
    `protected Set<String>` | `getUnsecurePropertyNames(org.apache.myfaces.trinidad.bean.FacesBean bean)` Retrieves unsecure property from the bean
    `protected boolean` | `getVisible(org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns the visibility of the component.
    `protected String` | `getVisualRootStretchingStyles(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns null or extra styles (that would stretch a DOM element, assuming it supports stretching) to prepend to the inlineStyle if the specified component client ID is for a component that was determined to be the visual root component.
    `boolean` | `hasDragSource(javax.faces.component.UIComponent component)` Whether the component has a DragSource set.
    `RichRenderer` | `initialize()` Called by the Trinidad RendererFactory to initialize Renderers that NeedsPostConstructionInitialization.
    `protected static boolean` | `isChildVisible(javax.faces.component.UIComponent child)` Returns true if a child is "visible"
    `protected boolean` | `isInlineSvgMode(javax.faces.component.UIComponent component)`
    `protected boolean` | `isLeafRenderer(javax.faces.component.UIComponent component)` Is this a "leaf" component - one without any children? The default returns false.
    `boolean` | `isNextElementToBeStretched(javax.faces.context.FacesContext fc)` Determines whether the next written element will have element stretching styles added to it.
    `protected boolean` | `isThemeEnabled(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext renderingContext, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean facesBean)` Check if the component supports theming.
    `protected static void` | `makeNonEmpty(javax.faces.context.FacesContext context)` Forces some non-visible content to be rendered to give the containing content *some* space.
    `protected boolean` | `needsExplicitId(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean)` Returns true if the component has an explicitly set ID that should be rendered/sent to the client.
    `protected boolean` | `needsExplicitId(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean)` Deprecated. this version of the method doesn't specify a RenderingContext
    `protected boolean` | `needsExplicitId(javax.faces.component.UIComponent component, org.apache.myfaces.trinidad.bean.FacesBean bean)` Deprecated. this version of the method doesn't specify a FacesContext
    `static String` | `popTheme(org.apache.myfaces.trinidad.context.RenderingContext renderingContext)` Remove the last theme from the rendering context's theme stack
    `protected void` | `postEncodeAll(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Default implementation of task performed after encoding it done.
    `static void` | `pushTheme(org.apache.myfaces.trinidad.context.RenderingContext renderingContext, String theme)` Push the current theme onto the rendering context's theme stack.
    `protected void` | `renderAllRootAttributes(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` This should be called once on the root dom element.
    `protected void` | `renderAllRootAttributes(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean, boolean renderStyleAttrs)` Render the main renderer-specific attributes: "title", "class", "style", and all the Javascript attributes.
    `protected void` | `renderClickableIcon(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, boolean isTabStop, String[] styleClasses, String id, String tooltipTextBundleKey, String iconName)` Deprecated. Use RichRenderUtils renderClickableIcon
    `static void` | `renderClickableIcon(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, boolean isTabStop, String targetURL, List<String> styleClasses, String id, String tooltipString, String iconName)` Renders a clickable icon with specified id, style classes, tooltip, skinnable icon name tabstop and targetURL feature.
    `static void` | `renderClickableIcon(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, boolean isTabStop, String targetURL, List<String> styleClasses, String id, String tooltipString, String iconName, Map<String,Object> attributeValuePairs)` Renders a clickable icon with specified id, style classes, tooltip, skinnable icon name tabstop and targetURL feature.
    `static void` | `renderClickableIcon(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, boolean isTabStop, String targetURL, String[] styleClasses, String id, String tooltipString, String iconName)` Deprecated. Use RichRenderUtils renderClickableIcon
    `protected void` | `renderFormattedText(javax.faces.context.FacesContext context, Object textValue)` Renders text as "formatted" text, as if it were the value of an <outputFormatted> component.
    `protected static void` | `renderHAlign(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, Object hAlign)` Renders an halign attribute, automatically transforming "start" and "end" into "left" and "right" as necessary depending on the current user's reading direction.
    `static void` | `renderHelpIcon(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, String helpTopicId, String styleClass, String disabledStyleClass, String iconName, String altText)` Renders the dynamic help icon.
    `protected void` | `renderId(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, ClientComponent client)` Renders the client ID as an "id".
    `protected boolean` | `renderNonElementBegin(javax.faces.context.FacesContext facesContext, javax.faces.component.UIComponent component, ClientComponent client)` Renders the beginning of a component that does not have a root element.
    `protected boolean` | `renderNonElementEnd(javax.faces.context.FacesContext facesContext, javax.faces.component.UIComponent component, ClientComponent client)` Renders the en of a component that does not have a root element.
    `protected void` | `renderPossiblyFormattedText(javax.faces.context.FacesContext context, Object textValue)` Renders text; if the text begins with "<html>", render it as formatted text, otherwise render it as plain text.
    `protected void` | `renderRootStyleAttributes(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Deprecated. this version of the method doesn't specify a UIComponent
    `protected void` | `renderRootStyleAttributes(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean, String defaultStyleClass)` Deprecated. this version of the method doesn't specify a UIComponent
    `protected void` | `renderRootStyleAttributes(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Renders the root style attributes, merging in a defaultStyleClass (passed to this method) and any state style classes.
    `protected void` | `renderRootStyleAttributes(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean, String defaultStyleClass)` Renders the root style attributes, merging in a defaultStyleClass (passed to this method) and any state style classes.
    `protected void` | `renderRootStyleClasses(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean, String defaultStyleClass, List<String> stateStyleClasses)` Renders the style classes on the root DOM element.
    `protected void` | `renderShortDescAttribute(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, ClientComponent client, org.apache.myfaces.trinidad.bean.FacesBean bean)` Renders the shortDesc attribute as a "title" property, and adds it to the client component.
    `protected void` | `renderSpacer(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, String width, String height)` Renders a spacer.
    `protected void` | `renderSpacer(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, String width, String height, String id, String shortDesc, javax.faces.component.UIComponent component)` Renders a spacer.
    `protected void` | `renderSpacer(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext arc, String width, String height, String id, String shortDesc, javax.faces.component.UIComponent component, String inlineStyle)` Renders a spacer.
    `static void` | `renderStyleClass(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext renderingContext, String styleClass)` Renders a style class with the current theme, if available.
    `static void` | `renderStyleClasses(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext renderingContext, List<String> styleClasses)` Renders style classes with the current theme, if available.
    `static void` | `renderStyleClasses(javax.faces.context.FacesContext facesContext, org.apache.myfaces.trinidad.context.RenderingContext renderingContext, String[] styleClasses)` Deprecated.
    `protected static void` | `renderStyleClassesAndSVGState(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, List<String> styleClasses)` Utility method for subclasses to add "p_AFInlineSVG" state (pseudo class) to style the decorative inline SVG icons accordingly.
    `protected void` | `renderVerticalSpacer(javax.faces.context.FacesContext context, Object height, Object id, javax.faces.component.UIComponent comp)` Renders a vertical spacer for a specified non-null height.
    `void` | `setDragSource(DragSource dragSource, javax.faces.component.UIComponent component)` Sets the default DragSource for the component in its attributes Map.
    `void` | `setupChildrenEncodingContext(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component)`
    `void` | `setupEncodingContext(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component)`
    `protected boolean` | `shouldEncodeClientComponent()` Should a client component be encoded? The default return is true.
    `protected boolean` | `shouldRenderId(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)`
    `protected boolean` | `skipDecode(javax.faces.context.FacesContext context)` Can be overridden to detect if decoding this component should be skipped.
    `static boolean` | `supportsAccessKeys(org.apache.myfaces.trinidad.context.RenderingContext arc)` Returns true if the agent supports access keys.
    `boolean` | `supportsCSSStretching(org.apache.myfaces.trinidad.context.RenderingContext arc)` Tests whether the agent supports CSS (top/bottom/left/right) stretching
    `protected boolean` | `supportsMessages()` Returns whether the component supports messages.
    `static boolean` | `supportsNavigation(org.apache.myfaces.trinidad.context.RenderingContext arc)` Returns true if the agent supports page-to-page navigation.
    `protected boolean` | `supportsPostbackPayloadType(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, AdfFacesContext.PayloadType payloadType)` Tests whether this Renderer supports the specified postback payload type.
    `static boolean` | `supportsScrolling(org.apache.myfaces.trinidad.context.RenderingContext rc)` Deprecated. use RichRenderUtils#supportsScrolling
    `void` | `tearDownChildrenEncodingContext(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component)`
    `void` | `tearDownEncodingContext(javax.faces.context.FacesContext context, org.apache.myfaces.trinidad.context.RenderingContext rc, javax.faces.component.UIComponent component)`
    `boolean` | `visitChildrenForEncoding(org.apache.myfaces.trinidad.component.UIXComponent component, javax.faces.component.visit.VisitContext visitContext, javax.faces.component.visit.VisitCallback callback)`
    `protected boolean` | `visitChildrenForEncodingImpl(org.apache.myfaces.trinidad.component.UIXComponent component, javax.faces.component.visit.VisitContext visitContext, javax.faces.component.visit.VisitCallback callback)` Hook method to allow sub-classes to customize the order and how to visit each child of the given component.

    - ### Methods inherited from class org.apache.myfaces.trinidad.render.CoreRenderer

      `afterEncode, beforeEncode, broadcast, decode, decodeBehaviors, delegateRendererBegin, delegateRendererEnd, encodeAllChildren, encodeBegin, encodeBegin, encodeChild, encodeChildren, encodeComponentResources, encodeEnd, encodeEnd, getBehaviorParameters, getClientId, getFacesBean, getFacet, getNextRenderedChildIndex, getRenderedChildCount, getRenderedFacetsAndChildren, getRenderingProperty, getStyleClasses, getStyleClasses, hasRenderedChildren, isDesktop, isGecko, isGenericPDA, isIE, isInaccessibleMode, isIPhone, isKonqueror, isNokiaS60, isOpera, isPDA, isScreenReaderMode, isWebKit, partialEncodeVisit, renderEncodedActionURI, renderEncodedResourceURI, renderId, setRenderingProperty, setupEncodingContext, tearDownEncodingContext, toActionUri, toChar, toInt, toLong, toResourceUri, toString, toUri`

    - ### Methods inherited from class javax.faces.render.Renderer

      `convertClientId, getConvertedValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### THEME_ATTRIBUTE

          public static final String THEME_ATTRIBUTE

      See Also:
        Constant Field Values

    - #### ARIA_ROLE_PROPERTY

          public static final String ARIA_ROLE_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_EXPANDED_PROPERTY

          public static final String ARIA_EXPANDED_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_SELECTED_PROPERTY

          public static final String ARIA_SELECTED_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_DISABLED_PROPERTY

          public static final String ARIA_DISABLED_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_LABEL_PROPERTY

          public static final String ARIA_LABEL_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_LABELLEDBY_PROPERTY

          public static final String ARIA_LABELLEDBY_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_CONTROLS_PROPERTY

          public static final String ARIA_CONTROLS_PROPERTY

      See Also:
        Constant Field Values

    - #### ARIA_HASPOPUP_PROPERTY

          public static final String ARIA_HASPOPUP_PROPERTY

      See Also:
        Constant Field Values

    - #### ENABLE_THEME_PROPERTY

          public static final String ENABLE_THEME_PROPERTY

      See Also:
        Constant Field Values

    - #### CHILDREN_THEME_PROPERTY

          public static final String CHILDREN_THEME_PROPERTY

      See Also:
        Constant Field Values

    - #### IN_COMPACT_MODE

          public static final String IN_COMPACT_MODE

      See Also:
        Constant Field Values

    - #### BACKGROUND_IMG_MODE

          public static final String BACKGROUND_IMG_MODE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RichRenderer

          protected RichRenderer(org.apache.myfaces.trinidad.bean.FacesBean.Type type)

      Creates a RichRenderer.
      Parameters:
        `type` - the faces bean type.

  - ### Method Detail

    - #### initialize

          public RichRenderer initialize()

      Called by the Trinidad RendererFactory to initialize Renderers that NeedsPostConstructionInitialization. This allows the Renderer To defer calls to findTypeConstants until after the Renderer subclasses have been constructed.
      Returns:
        the `RichRenderer` object created on initialization

    - #### cloneWithType

          public javax.faces.render.Renderer cloneWithType(org.apache.myfaces.trinidad.bean.FacesBean.Type type)

      Clone a Renderer instance with a new Type; part of the TypedRenderer API.
      Specified by:
        `cloneWithType` in interface `org.apache.myfaces.trinidad.render.TypedRenderer`
      Parameters:
        `type` - the faces bean type
      Returns:
        the cloned renderer instance.

    - #### getRendersChildren

          public final boolean getRendersChildren()

      Overridden to return true; all rich renderers are "renders children".
      Overrides:
        `getRendersChildren` in class `javax.faces.render.Renderer`
      Returns:
        always returns `true`

    - #### getClientIdsToDecode

          public static final Iterable<String> getClientIdsToDecode(javax.faces.context.FacesContext context)

      Deprecated. no longer used. See `DeltaUtils.getRemainingDeltas(FacesContext)`
      Returns an Iterable that identifies any client IDs that need to be decoded on this request, but have not yet been.
      Parameters:
        `context` - the faces context.
      Returns:
        an Iterable that identifies any client IDs that need to be decoded on this request, but have not yet been

    - #### getDefaultableProperty

          protected final <S> S getDefaultableProperty(org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                       org.apache.myfaces.trinidad.bean.PropertyKey key)

      Retrieves the value of the key in the bean, defaulting the value if the key isn't present
      Type Parameters:
        `S` - This describes my type parameter
      Parameters:
        `bean` - the faces bean
        `key` - the property key
      Returns:
        the type paramater.

    - #### getDefaultableBooleanProperty

          protected final boolean getDefaultableBooleanProperty(org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                                org.apache.myfaces.trinidad.bean.PropertyKey key)

      Convenience for retrieving a boolean from a Boolean PropertyKey
      Parameters:
        `bean` - the faces bean
        `key` - the property key.
      Returns:
        returns boolean true or false

    - #### getDefaultableStringProperty

          protected final String getDefaultableStringProperty(org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                              org.apache.myfaces.trinidad.bean.PropertyKey key)

      Convenience for retrieving a String from an arbitrary PropertyKey
      Parameters:
        `bean` - the faces bean
        `key` - the property key
      Returns:
        returns the string value

    - #### getDefaultableResourceURIProperty

          protected final String getDefaultableResourceURIProperty(javax.faces.context.FacesContext context,
                                                                   org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                                   org.apache.myfaces.trinidad.bean.PropertyKey key)

      Convenience for retrieving a Resource URI from an arbitrary PropertyKey
      Parameters:
        `context` - the faces context
        `bean` - the property bean
        `key` - the property key
      Returns:
        returns the resource uri string

    - #### getDefaultableIntProperty

          protected final int getDefaultableIntProperty(org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                        org.apache.myfaces.trinidad.bean.PropertyKey key)

      Convenience for retrieving an int from a Number PropertyKey
      Parameters:
        `bean` - the faces bean
        `key` - the property key
      Returns:
        default int value

    - #### getDefaultableCharProperty

          protected final char getDefaultableCharProperty(org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                          org.apache.myfaces.trinidad.bean.PropertyKey key)

      Convenience for retrieving a char froma a Character or CharSequence PropertyKey
      Parameters:
        `bean` - the faces bean
        `key` - the property key
      Returns:
        default char value

    - #### getRichRenderer

          public static RichRenderer getRichRenderer(javax.faces.context.FacesContext context,
                                                     javax.faces.component.UIComponent component)

    - #### getRendererAs

          public static <S> S getRendererAs(javax.faces.context.FacesContext context,
                                            javax.faces.component.UIComponent component,
                                            Class<S> rendererClass)

    - #### getRenderer

          public static javax.faces.render.Renderer getRenderer(javax.faces.context.FacesContext context,
                                                                javax.faces.component.UIComponent component)

      Given a component, returns its Renderer.
      Parameters:
        `context` - the faces context
        `component` - the UI component.
      Returns:
        Renderer for the given component

    - #### applyPropertyDeltas

          public static void applyPropertyDeltas(javax.faces.context.FacesContext facesContext,
                                                 javax.faces.component.UIComponent component)

      Called to apply any property deltas from the client to the given component
      Parameters:
        `facesContext` - the faces context.
        `component` - the UI Component.

    - #### getVisualRootStretchingStyles

          protected String getVisualRootStretchingStyles(javax.faces.context.FacesContext context,
                                                         org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                         javax.faces.component.UIComponent component,
                                                         ClientComponent client,
                                                         org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns null or extra styles (that would stretch a DOM element, assuming it supports stretching) to prepend to the inlineStyle if the specified component client ID is for a component that was determined to be the visual root component. Do not use this method if your component's root element does not reliably support stretching, e.g. is a table element or an element that doesn't use dimensions.
      Parameters:
        `context` - the FacesContext
        `rc` - the RenderingContext
        `component` - the non-null component being rendered
        `client` - the ClientComponent associated with the component being rendered
        `bean` - the FacesBean associated with the component being rendered
      Returns:
        null or extra styles to prepend to the inlineStyle (terminated by a semicolon)

    - #### decode

          protected final void decode(javax.faces.context.FacesContext context,
                                      javax.faces.component.UIComponent component,
                                      org.apache.myfaces.trinidad.bean.FacesBean bean,
                                      String clientId)

      Override of decode() to provide default rich client functionality. Developers must use the decodeInternal() hook to provide per-renderer decoding.
      Overrides:
        `decode` in class `org.apache.myfaces.trinidad.render.CoreRenderer`
      Parameters:
        `context` - the faces context
        `component` - the UI Component.
        `bean` - the faces bean
        `clientId` - the client Id

    - #### decodeInternal

          public void decodeInternal(javax.faces.context.FacesContext context,
                                     javax.faces.component.UIComponent component,
                                     String clientId)

      Hook for providing per-component decoding
      Parameters:
        `context` - the FacesContext
        `component` - the component
        `clientId` - the pre-computed clientId of this component

    - #### renderClickableIcon

          public static void renderClickableIcon(javax.faces.context.FacesContext context,
                                                 org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                 javax.faces.component.UIComponent component,
                                                 boolean isTabStop,
                                                 String targetURL,
                                                 String[] styleClasses,
                                                 String id,
                                                 String tooltipString,
                                                 String iconName)
                                          throws IOException

      Deprecated. Use RichRenderUtils renderClickableIcon
      Renders a clickable icon with specified id, style classes, tooltip, skinnable icon name tabstop and targetURL feature. This replaces the deprecated renderClickableIcon.
      Parameters:
        `context` - the FacesContext.
        `rc` - the RenderingContext.
        `component` - the UIComponent that is rendered.
        `isTabStop` - If true, the icon is rendered as tab stop and it can accept focus. Otherwise the icon is not tab stop and cannot accept focus.
        `targetURL` - target URL when clicked.
        `styleClasses` - Used to render style class names for the icon. If your style class uses background-image to display the icon, its attributes should ensure proper sizing in IE and FireFox. See ".AFClickableImageAnchor_16x16" in rich components-simple-desktop.css for an alias you may be able to use.
        `id` - the html DOM id of the icon.
        `tooltipString` - the tooltip for this element.
        `iconName` - the icon name of the application skinned icon. It's normally used if you want a text-only icon or a accessible icon instead of a background-image on the styleClass.
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderClickableIcon

          public static void renderClickableIcon(javax.faces.context.FacesContext context,
                                                 org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                 javax.faces.component.UIComponent component,
                                                 boolean isTabStop,
                                                 String targetURL,
                                                 List<String> styleClasses,
                                                 String id,
                                                 String tooltipString,
                                                 String iconName)
                                          throws IOException

      Renders a clickable icon with specified id, style classes, tooltip, skinnable icon name tabstop and targetURL feature. This replaces the deprecated renderClickableIcon.
      Parameters:
        `context` - the FacesContext.
        `rc` - the RenderingContext.
        `component` - the UIComponent that is rendered.
        `isTabStop` - If true, the icon is rendered as tab stop and it can accept focus. Otherwise the icon is not tab stop and cannot accept focus.
        `targetURL` - target URL when clicked.
        `styleClasses` - Used to render style class names for the icon. If your style class uses background-image to display the icon, its attributes should ensure proper sizing in IE and FireFox. See ".AFClickableImageAnchor_16x16" in rich components-simple-desktop.css for an alias you may be able to use.
        `id` - the html DOM id of the icon.
        `tooltipString` - the tooltip for this element.
        `iconName` - the icon name of the application skinned icon. It's normally used if you want a text-only icon or a accessible icon instead of a background-image on the styleClass.
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderClickableIcon

          public static void renderClickableIcon(javax.faces.context.FacesContext context,
                                                 org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                 javax.faces.component.UIComponent component,
                                                 boolean isTabStop,
                                                 String targetURL,
                                                 List<String> styleClasses,
                                                 String id,
                                                 String tooltipString,
                                                 String iconName,
                                                 Map<String,Object> attributeValuePairs)
                                          throws IOException

      Renders a clickable icon with specified id, style classes, tooltip, skinnable icon name tabstop and targetURL feature. This replaces the deprecated renderClickableIcon.
      Parameters:
        `context` - the FacesContext.
        `rc` - the RenderingContext.
        `component` - the UIComponent that is rendered.
        `isTabStop` - If true, the icon is rendered as tab stop and it can accept focus. Otherwise the icon is not tab stop and cannot accept focus.
        `targetURL` - target URL when clicked.
        `styleClasses` - Used to render style class names for the icon. If your style class uses background-image to display the icon, its attributes should ensure proper sizing in IE and FireFox. See ".AFClickableImageAnchor_16x16" in rich components-simple-desktop.css for an alias you may be able to use.
        `id` - the html DOM id of the icon.
        `tooltipString` - the tooltip for this element.
        `iconName` - the icon name of the application skinned icon. It's normally used if you want a text-only icon or a accessible icon instead of a background-image on the styleClass.
        `attributeValuePairs` - pairs of html attributes and values to be added to the anchor.
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderHelpIcon

          public static void renderHelpIcon(javax.faces.context.FacesContext context,
                                            org.apache.myfaces.trinidad.context.RenderingContext rc,
                                            javax.faces.component.UIComponent component,
                                            String helpTopicId,
                                            String styleClass,
                                            String disabledStyleClass,
                                            String iconName,
                                            String altText)
                                     throws IOException

      Renders the dynamic help icon. This includes rendering the help definition text if it exists, and the help system link if it exists.
      Parameters:
        `context` - the FacesContext.
        `rc` - the RenderingContext.
        `component` - the UIComponent that is rendered.
        `helpTopicId` - the helpTopicId attribute.
        `styleClass` - the style class to render on the help icon.
        `disabledStyleClass` - the disabled style class to render if there is no help system link for the helpTopicId.
        `iconName` - the icon style name of the help icon..
        `altText` - the alt text to attempt to render if there is no definition text for accessibility.
      Throws:
        `IOException` - If an I/O error occurs

    - #### decodeIncompatiblePropertyKey

          protected boolean decodeIncompatiblePropertyKey(javax.faces.context.FacesContext context,
                                                          javax.faces.component.UIComponent component,
                                                          String clientId,
                                                          org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                          org.apache.myfaces.trinidad.bean.PropertyKey pKey,
                                                          String value)

      Subclasses can override this method to decode property keys whose types cannot be coerced by default. The default implementation simply returns false.
      Parameters:
        `context` - the FacesContext
        `component` - the component
        `clientId` - the component's client ID
        `bean` - the FacesBean for the component
        `pKey` - the PropertyKey being decoded
        `value` - the String value of this property key
      Returns:
        true if the incompatible property key is decoded else false

    - #### decodeUnknownKey

          protected void decodeUnknownKey(javax.faces.context.FacesContext context,
                                          javax.faces.component.UIComponent component,
                                          org.apache.myfaces.trinidad.bean.FacesBean bean,
                                          String name,
                                          Object value)

      Called when a key whose name is not known to the FacesBean has been synchronized. Generally, this will be programmer error, so the default behavior is to log a warning. If overriding this method, always call super.decodeUnknownKey() if you have not handled the property.
      Parameters:
        `context` - the FacesContext
        `component` - the component
        `bean` - the FacesBean for the component
        `name` - the name of the property
        `value` - the value of this property key

    - #### getClientEvent

          protected ClientEvent getClientEvent(javax.faces.context.FacesContext context,
                                               String clientId,
                                               String type)

      Parameters:
        `context` - the FacesContext
        `clientId` - the component's client ID
        `type` - the event type
      Returns:
        the client event.

    - #### findTypeConstants

          protected void findTypeConstants(org.apache.myfaces.trinidad.bean.FacesBean.Type type,
                                           ClientMetadata metadata)

    - #### renderNonElementBegin

          protected boolean renderNonElementBegin(javax.faces.context.FacesContext facesContext,
                                                  javax.faces.component.UIComponent component,
                                                  ClientComponent client)
                                           throws IOException

      Renders the beginning of a component that does not have a root element. Will render a NOSCRIPT element and the client ID of the component to mark the start of the component so that client components and PPR may function correctly.
      Parameters:
        `facesContext` - the faces context
        `component` - the component
        `client` - the client component
      Returns:
        true if a beginning element was rendered or false if the client component is not active
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderNonElementEnd

          protected boolean renderNonElementEnd(javax.faces.context.FacesContext facesContext,
                                                javax.faces.component.UIComponent component,
                                                ClientComponent client)
                                         throws IOException

      Renders the en of a component that does not have a root element. Will render a NOSCRIPT element and the client ID of the component to mark the start of the component so that client components and PPR may function correctly.
      Parameters:
        `facesContext` - the faces context
        `component` - the component
        `client` - the client component
      Returns:
        true if an end element was rendered or false if the client component is not active
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderId

          protected void renderId(javax.faces.context.FacesContext context,
                                  javax.faces.component.UIComponent component,
                                  ClientComponent client)
                           throws IOException

      Renders the client ID as an "id". The client ID is retrieved from the ClientComponent if one is provided, otherwise from the UIComponent.
      Parameters:
        `context` - the faces context
        `component` - the UI Component
        `client` - the Client Component.
      Throws:
        `IOException` - If an I/O error occurs

    - #### needsExplicitId

          protected final boolean needsExplicitId(javax.faces.component.UIComponent component,
                                                  org.apache.myfaces.trinidad.bean.FacesBean bean)

      Deprecated. this version of the method doesn't specify a FacesContext
      Returns true if the component has an explicitly set ID.
      Parameters:
        `component` - the UI component.
        `bean` - the faces bean
      Returns:
        true if the component has an explicitly set ID.

    - #### needsExplicitId

          protected final boolean needsExplicitId(javax.faces.context.FacesContext context,
                                                  javax.faces.component.UIComponent component,
                                                  org.apache.myfaces.trinidad.bean.FacesBean bean)

      Deprecated. this version of the method doesn't specify a RenderingContext
      Returns true if the component has an explicitly set ID.
      Parameters:
        `context` - the faces context
        `component` - the UI component.
        `bean` - the faces bean.
      Returns:
        true if the component has an explicitly set ID.

    - #### needsExplicitId

          protected final boolean needsExplicitId(javax.faces.context.FacesContext context,
                                                  org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                  javax.faces.component.UIComponent component,
                                                  org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns true if the component has an explicitly set ID that should be rendered/sent to the client.
      Parameters:
        `context` - the faces context
        `rc` - the rendering context
        `component` - the UI component
        `bean` - the faces bean
      Returns:
        true if the component has an explicitly set ID that should be rendered/sent to the client.

    - #### shouldRenderId

          protected boolean shouldRenderId(javax.faces.context.FacesContext context,
                                           javax.faces.component.UIComponent component)

      Overrides:
        `shouldRenderId` in class `org.apache.myfaces.trinidad.render.CoreRenderer`

    - #### renderAllRootAttributes

          protected void renderAllRootAttributes(javax.faces.context.FacesContext context,
                                                 org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                 ClientComponent client,
                                                 org.apache.myfaces.trinidad.bean.FacesBean bean)
                                          throws IOException

      This should be called once on the root dom element. Client properties are being added in here so this can only be called once
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `client` - the Client Component.
        `bean` - the faces bean
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderAllRootAttributes

          protected void renderAllRootAttributes(javax.faces.context.FacesContext context,
                                                 org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                 ClientComponent client,
                                                 org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                 boolean renderStyleAttrs)
                                          throws IOException

      Render the main renderer-specific attributes: "title", "class", "style", and all the Javascript attributes. Takes a boolean to determine if renderRootStyleAttributes should be called, which renders "class", "style"
      Parameters:
        `context` - the faces context
        `rc` - the rendering context
        `client` - the Client Component.
        `bean` - the faces bean
        `renderStyleAttrs` - the main renderer-specific attributes
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderShortDescAttribute

          protected void renderShortDescAttribute(javax.faces.context.FacesContext context,
                                                  org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                  ClientComponent client,
                                                  org.apache.myfaces.trinidad.bean.FacesBean bean)
                                           throws IOException

      Renders the shortDesc attribute as a "title" property, and adds it to the client component.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `client` - the Client Component.
        `bean` - the faces bean
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderRootStyleAttributes

          @Deprecated
          protected final void renderRootStyleAttributes(javax.faces.context.FacesContext context,
                                                                     org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                                     ClientComponent client,
                                                                     org.apache.myfaces.trinidad.bean.FacesBean bean)
                                                              throws IOException

      Deprecated. this version of the method doesn't specify a UIComponent
      Renders the style attributes - "inlineStyle" and "styleClass" - merging in any default or state-based styles. This must be called once, and only on the root dom element
      Parameters:
        `context` - the faces context
        `rc` - the rendering context
        `client` - the Client Component.
        `bean` - the faces bean
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderRootStyleAttributes

          @Deprecated
          protected final void renderRootStyleAttributes(javax.faces.context.FacesContext context,
                                                                     org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                                     ClientComponent client,
                                                                     org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                                     String defaultStyleClass)
                                                              throws IOException

      Deprecated. this version of the method doesn't specify a UIComponent
      Renders the root style attributes, merging in a defaultStyleClass (passed to this method) and any state style classes.
      Parameters:
        `context` - the faces context
        `rc` - the rendering context
        `client` - the Client Component.
        `bean` - the faces bean
        `defaultStyleClass` - the default style class.
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderRootStyleAttributes

          protected final void renderRootStyleAttributes(javax.faces.context.FacesContext context,
                                                         org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                         javax.faces.component.UIComponent component,
                                                         ClientComponent client,
                                                         org.apache.myfaces.trinidad.bean.FacesBean bean)
                                                  throws IOException

      Renders the root style attributes, merging in a defaultStyleClass (passed to this method) and any state style classes.
      Parameters:
        `context` - the faces context
        `rc` - the rendering context
        `component` - the UI component
        `client` - the Client Component.
        `bean` - the faces bean
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderRootStyleAttributes

          protected final void renderRootStyleAttributes(javax.faces.context.FacesContext context,
                                                         org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                         javax.faces.component.UIComponent component,
                                                         ClientComponent client,
                                                         org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                         String defaultStyleClass)
                                                  throws IOException

      Renders the root style attributes, merging in a defaultStyleClass (passed to this method) and any state style classes.
      Parameters:
        `context` - the faces context
        `rc` - the rendering context
        `component` - the UI component
        `client` - the Client Component.
        `bean` - the faces bean
        `defaultStyleClass` - the default style class.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### getRootStateStyleClasses

          @Deprecated
          protected List<String> getRootStateStyleClasses(javax.faces.context.FacesContext context,
                                                                      org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                                      org.apache.myfaces.trinidad.bean.FacesBean bean)

      Deprecated. Use the getRootStateStyleClasses that also takes a UIComponent as a parameter. Also, if you upgrade your code to use the new API, make sure all your superclasses also use the new API. This API is invoked by default implementation of the new overloaded API to address cases where external custom components have not changed to override the new API yet.
      Override to return any state-based (selected, disabled, etc.) CSS style markers. HINT: use an immutable, cached List<String> for better performance.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `bean` - the faces bean
      Returns:
        a list of any state based CSS style markers.

    - #### getRootStateStyleClasses

          protected List<String> getRootStateStyleClasses(javax.faces.context.FacesContext context,
                                                          org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                          org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                          javax.faces.component.UIComponent component)

      Override to return any state-based (selected, disabled, etc.) CSS style markers. HINT: use an immutable, cached List<String> for better performance.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `bean` - the faces bean
        `component` - the UI component
      Returns:
        a list of any state based CSS style markers.

    - #### renderRootStyleClasses

          protected void renderRootStyleClasses(javax.faces.context.FacesContext context,
                                                org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                ClientComponent client,
                                                org.apache.myfaces.trinidad.bean.FacesBean bean,
                                                String defaultStyleClass,
                                                List<String> stateStyleClasses)
                                         throws IOException

      Renders the style classes on the root DOM element.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `client` - the Client Component.
        `bean` - the faces bean
        `defaultStyleClass` - the default style class.
        `stateStyleClasses` - list state style classes
      Throws:
        `IOException` - If an I/O error occurs

    - #### getDefaultStyleClass

          protected String getDefaultStyleClass(javax.faces.context.FacesContext context,
                                                org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                org.apache.myfaces.trinidad.bean.FacesBean bean)

      Override to return the default style class for this renderer. For proper skinnability, this will usually be a constant value; any state-based values should be delivered by getRootStateStyleClasses().

      This value is used as the component selector in the skin to retrieve skin properties like -tr-enable-themes and -tr-children-theme. Returning a different value will prevent a component from being themed.

      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `bean` - the faces bean
      Returns:
        the default style class for this renderer

    - #### createDefaultDragSource

          public DragSource createDefaultDragSource(javax.faces.component.UIComponent component,
                                                    Set<DnDAction> allowedActions,
                                                    DnDAction defaultAction,
                                                    String discriminant,
                                                    javax.el.MethodExpression dragDropEndListener,
                                                    Map<String,?> properties)

      Renderer implementations should override this method to return the DragSource instance specific to the component (for e.g., when it overrides the DefaultDragSourceFactory interface)
      Parameters:
        `component` - the UI component
        `allowedActions` - Set of `DnDAction` allowed actions for the drag
        `defaultAction` - the defaultAction
        `discriminant` - the descriminant
        `dragDropEndListener` - method expression for the drop listener.
        `properties` - map of properties.
      Returns:
        a DragSource instance

    - #### createDefaultDragSourceBehavior

          public String createDefaultDragSourceBehavior(javax.faces.component.UIComponent component,
                                                        DragSource dragSource,
                                                        Set<DnDAction> allowedActions,
                                                        DnDAction defaultAction,
                                                        String discriminant,
                                                        javax.el.MethodExpression dragDropEndListener,
                                                        Map<String,?> properties)

      Returns the JS clientDragSource initializer.
      Parameters:
        `component` - Component that this client DragSource is created for.
        `dragSource` - DragSource to create clientDragSource initializer for
        `allowedActions` - Set of `DnDAction` allowed actions for the drag
        `defaultAction` - the defaultAction
        `discriminant` - the descriminant
        `dragDropEndListener` - method expression for the drop listener.
        `properties` - map of properties.
      Returns:
        String used to create the JS constructor for this DragSource

    - #### getDragSource

          public DragSource getDragSource(javax.faces.component.UIComponent component)

      Returns the default DragSource for the provided component.
      Parameters:
        `component` - the UIComponent
      Returns:
        DragSource instance or null if not DragSource exists for the component.

    - #### getDragSourceKey

          public String getDragSourceKey()

    - #### setDragSource

          public void setDragSource(DragSource dragSource,
                                    javax.faces.component.UIComponent component)

      Sets the default DragSource for the component in its attributes Map. A valid DragSource instance is expected and null values are ignored.
      Parameters:
        `dragSource` - the default DragSource associated with the component.
        `component` - the UIComponent.

    - #### hasDragSource

          public boolean hasDragSource(javax.faces.component.UIComponent component)

      Whether the component has a DragSource set.
      Parameters:
        `component` - Component that this client DragSource is created for.
      Returns:
        a boolean true if the DragSource is set on the component.

    - #### getDefaultStyleClass

          public final String getDefaultStyleClass(javax.faces.context.FacesContext context,
                                                   org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                   javax.faces.component.UIComponent component)

      Return the default style class for this renderer. Public so that other clases can access the default style class.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `component` - the UIComponent
      Returns:
        the default style class for the renderer

    - #### getClientId

          protected final String getClientId(javax.faces.context.FacesContext context,
                                             javax.faces.component.UIComponent component,
                                             ClientComponent client)

      A convenience method to return a clientId, taking advantage of the cached value in the ClientComponent if it is available.
      Parameters:
        `context` - the faces context
        `component` - the UIComponent
        `client` - the Client Component.
      Returns:
        a client id

    - #### getRichRenderingContext

          public static RichRenderingContext getRichRenderingContext(org.apache.myfaces.trinidad.context.RenderingContext rc)

      Return the current RichRenderingContext.
      Parameters:
        `rc` - the current RenderingContext
      Returns:
        the current RichRenderingContext

    - #### isLeafRenderer

          protected boolean isLeafRenderer(javax.faces.component.UIComponent component)

      Is this a "leaf" component - one without any children? The default returns false. If overridden, rendering can be optimized.
      Parameters:
        `component` - the UIComponent
      Returns:
        if this a "leaf" component.

    - #### shouldEncodeClientComponent

          protected boolean shouldEncodeClientComponent()

      Should a client component be encoded? The default return is true. If overridden, client component can be suppressed.
      Returns:
        should a client component be encoded.

    - #### encodeAll

          protected final void encodeAll(javax.faces.context.FacesContext context,
                                         org.apache.myfaces.trinidad.context.RenderingContext arc,
                                         javax.faces.component.UIComponent component,
                                         org.apache.myfaces.trinidad.bean.FacesBean bean)
                                  throws IOException

      Base rendering functionality for all rich renderers. Builds a ClientComponent and calls the encodeAll() hook for subclassers.
      Overrides:
        `encodeAll` in class `org.apache.myfaces.trinidad.render.CoreRenderer`
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `component` - the UI component
        `bean` - the faces bean
      Throws:
        `IOException` - If an I/O error occurs

    - #### encodeFlattenedComponents

          public final <S> boolean encodeFlattenedComponents(javax.faces.context.FacesContext context,
                                                             org.apache.myfaces.trinidad.component.ComponentProcessingContext cpContext,
                                                             org.apache.myfaces.trinidad.component.ComponentProcessor<S> childProcessor,
                                                             S callbackContext,
                                                             javax.faces.component.UIComponent component)
                                                      throws IOException

      Encode the flattened components. This should only be called in between a `UIXComponent.setupEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)` and `UIXComponent.tearDownEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)` on the component.
      Type Parameters:
        `S` - the data type for the callback context and the child processor.
      Parameters:
        `context` - the faces context
        `cpContext` - the component processing context
        `childProcessor` - the child processor
        `callbackContext` - the callback context
        `component` - the UI component
      Returns:
        `true` if it was able to encode the flatten component.
      Throws:
        `IOException` - If an I/O error occurs

    - #### encodeFlattenedComponents

          protected <S> boolean encodeFlattenedComponents(javax.faces.context.FacesContext context,
                                                          org.apache.myfaces.trinidad.component.ComponentProcessingContext cpContext,
                                                          org.apache.myfaces.trinidad.component.ComponentProcessor<S> childProcessor,
                                                          S callbackContext,
                                                          org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                          javax.faces.component.UIComponent component,
                                                          ClientComponent client,
                                                          org.apache.myfaces.trinidad.bean.FacesBean bean)
                                                   throws IOException

      Encode the flattened components. This should only be called in between a `UIXComponent.setupEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)` and `UIXComponent.tearDownEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)` on the component.
      Type Parameters:
        `S` - the data type for the callback context and the child processor.
      Parameters:
        `context` - the faces context
        `cpContext` - the component processing context
        `childProcessor` - the child processor
        `callbackContext` - the callback context
        `rc` - the rendering context
        `component` - the UI component
        `client` - the client component.
        `bean` - the faces bean.
      Returns:
        true if the client componet was encoded.
      Throws:
        `IOException` - If an I/O error occurs

    - #### encodeAll

          protected abstract void encodeAll(javax.faces.context.FacesContext context,
                                            org.apache.myfaces.trinidad.context.RenderingContext arc,
                                            javax.faces.component.UIComponent component,
                                            ClientComponent client,
                                            org.apache.myfaces.trinidad.bean.FacesBean bean)
                                     throws IOException

      Hook for implementing renderer-specific rendering.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `component` - the UI component
        `client` - the client component.
        `bean` - the faces bean.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### postEncodeAll

          protected void postEncodeAll(javax.faces.context.FacesContext context,
                                       org.apache.myfaces.trinidad.context.RenderingContext arc,
                                       javax.faces.component.UIComponent component,
                                       ClientComponent client,
                                       org.apache.myfaces.trinidad.bean.FacesBean bean)
                                throws IOException

      Default implementation of task performed after encoding it done. Encoding of the component and its children might cause this component to promote its client component type because certain functionality (eg. autoPPR) requires client component be present. Adding id property value to the client component to trigger such promotion. id property is used because it is common to all components and it is an optional property, doesn't change the actual client component content.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `component` - the UI component.
        `client` - the client component.
        `bean` - the faces bean.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### delegateRenderer

          protected void delegateRenderer(javax.faces.context.FacesContext context,
                                          org.apache.myfaces.trinidad.context.RenderingContext arc,
                                          javax.faces.component.UIComponent component,
                                          ClientComponent client,
                                          org.apache.myfaces.trinidad.bean.FacesBean bean,
                                          org.apache.myfaces.trinidad.render.CoreRenderer renderer)
                                   throws IOException

      Delegate to a child Renderer, building attributes into the same client component.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `component` - the UI component.
        `client` - the client component.
        `bean` - the faces bean.
        `renderer` - the core renderer.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### delegateRenderer

          protected void delegateRenderer(javax.faces.context.FacesContext context,
                                          org.apache.myfaces.trinidad.context.RenderingContext arc,
                                          javax.faces.component.UIComponent component,
                                          org.apache.myfaces.trinidad.bean.FacesBean bean,
                                          org.apache.myfaces.trinidad.render.CoreRenderer renderer)
                                   throws IOException

      Delegate to a child Renderer without any attributes delivered to a client component.
      Overrides:
        `delegateRenderer` in class `org.apache.myfaces.trinidad.render.CoreRenderer`
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `component` - the UI component.
        `bean` - the faces bean.
        `renderer` - the core renderer.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### delegateRenderer

          protected void delegateRenderer(javax.faces.context.FacesContext context,
                                          org.apache.myfaces.trinidad.context.RenderingContext arc,
                                          javax.faces.component.UIComponent childComponent,
                                          org.apache.myfaces.trinidad.render.CoreRenderer renderer)
                                   throws IOException

      Delegate to a child Renderer building attributes into the child's ClientComponent.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `childComponent` - the child UI component.
        `renderer` - the core renderer.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### getClientConstructor

          protected abstract String getClientConstructor()

      Hook to provide the name of the client-side object representing this renderer. HINT: if you do not have a client-side object, you should not be subclassing RichRenderer! Subclass the Trinidad CoreRenderer class, or the ordinary JSF Renderer class; these Renderers will work with the Rich Client.
      Returns:
        the name of the client side object.

    - #### getEncodeClientMetadata

          protected ClientMetadata getEncodeClientMetadata(javax.faces.context.FacesContext context,
                                                           org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                           org.apache.myfaces.trinidad.bean.FacesBean bean)

      Hook that allows overriding the client metadata used for encoding. The client metadata for decoding (what values are secure) cannot be overridden.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `bean` - the faces bean.
      Returns:
        the client metadata.

    - #### isInlineSvgMode

          protected boolean isInlineSvgMode(javax.faces.component.UIComponent component)

    - #### renderStyleClassesAndSVGState

          protected static void renderStyleClassesAndSVGState(javax.faces.context.FacesContext context,
                                                              org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                              List<String> styleClasses)
                                                       throws IOException

      Utility method for subclasses to add "p_AFInlineSVG" state (pseudo class) to style the decorative inline SVG icons accordingly. If styleClasses is null state style class is added, else the styleClasses list is expected to have
      Parameters:
        `context` - faces context
        `rc` - rendering context
        `styleClasses` - list of style classes
      Throws:
        `IOException` - if I/O error occurs

    - #### createSubId

          public String createSubId(String clientId,
                                    String name)

      Creates an identifier that can be used on the client to locate a piece of the DOM. This implementation is guaranteed to match the Javascript implementation of AdfRichUIPeer.CreateSubId().

      Parameters:
        `clientId` - the client ID of this component
        `name` - the name of the piece of the DOM
      Returns:
        an identifier that can be used by the client.

    - #### createClientSubId

          public static String createClientSubId(String clientId,
                                                 String name)

      Creates an identifier that can be used on the client to locate a piece of the DOM. This implementation is guaranteed to match the Javascript implementation of AdfRichUIPeer.CreateSubId().
      Parameters:
        `clientId` - the client ID of this component
        `name` - the name of the piece of the DOM
      Returns:
        the identifier to be used on the client.

    - #### createActiveComponentEncoder

          public ActiveComponentEncoder createActiveComponentEncoder(javax.faces.component.UIComponent component,
                                                                     Collection<String> boundAttributes)

      Returns the ActiveCellEncoder instance for a Renderer. The default implementation returns an encoder that PPRS the component. RichRenderers subclasses can subclass this method to return more optimized ActiveCellEncoders.
      Parameters:
        `component` - the compoonent to create active cell encoder
        `boundAttributes` - the mapping of compoonent attribute to model attribute
      Returns:
        a instance of DefaultActiveCellEncoder for the given component
      See Also:
        `ActiveComponentEncoder`

    - #### getClientComponentType

          protected ClientComponent.Type getClientComponentType(javax.faces.context.FacesContext context,
                                                                javax.faces.component.UIComponent component,
                                                                org.apache.myfaces.trinidad.bean.FacesBean bean)

      Hook to identify the state-dependent type of the client component. The default behavior will return CREATE_WITH_ALL_ATTRS if clientComponent="true"; otherwise, it will return `getDefaultClientComponentType()` .

      Note that Components should never override the default value of clientComponent to be `true`, but should instead return CREATE_WITH_ATTRS from this function (which is the default behavior)

      Parameters:
        `context` - the faces context.
        `component` - the UI component.
        `bean` - the faces bean.
      Returns:
        the client component type

    - #### getDefaultClientComponentType

          protected ClientComponent.Type getDefaultClientComponentType()

      Return the default client component type; this defaults to CREATE_WITH_REQUIRED_ATTRS.
      Returns:
        the default client component type.

    - #### supportsMessages

          protected boolean supportsMessages()

      Returns whether the component supports messages. By default, returns true. Override to return false if the component never supports messages.
      Returns:
        whether the component supports messages.

    - #### getCurrentHeaderElementName

          protected String getCurrentHeaderElementName(org.apache.myfaces.trinidad.context.RenderingContext rc)

      Get the current header element name (H1...H6). The initial value is H1, and is modified through calls to enterHeaderContainer().
      Parameters:
        `rc` - the rendering context
      Returns:
        the current header element name

    - #### enterHeaderContainer

          protected void enterHeaderContainer(org.apache.myfaces.trinidad.context.RenderingContext rc)

      Call to indicate that we have entered a header container. The header level will be increased by 1. Call from setupChildrenEncodingContext or setupEncodingContext for compatability with ppr optimization.
      Parameters:
        `rc` - the rendering context

    - #### enterHeaderContainer

          protected void enterHeaderContainer(org.apache.myfaces.trinidad.context.RenderingContext rc,
                                              int newLevel)

      Call to indicate that we have entered a header container. The header level will be set to the specified value. Note that normally the header level should be set using the enterHeaderContainer(RenderingContext rc) method, ensuring header levels that are sequential. This method should only be used by components that need to define an area that operates outside the normal header level hierarchy (like popup components). To restore the header level to the previous value, call the exitHeaderContainer(RenderingContext rc) method. Call from setupChildrenEncodingContext or setupEncodingContext for compatability with ppr optimization.
      Parameters:
        `rc` - the rendering context
        `newLevel` - the new level to use as the current header level. Provided value must be >= 1.

    - #### exitHeaderContainer

          protected void exitHeaderContainer(org.apache.myfaces.trinidad.context.RenderingContext rc)

      Call to indicate that we have exited a header container. The header level will be restored to its previous value. Call from tearDownChildrenEncodingContext or tearDownEncodingContext for compatability with ppr optimization.
      Parameters:
        `rc` - the rendering context

    - #### supportsScrolling

          public static boolean supportsScrolling(org.apache.myfaces.trinidad.context.RenderingContext rc)

      Deprecated. use RichRenderUtils#supportsScrolling
      Returns whether scrolling is supported by the agent. TODO we should use capabilities instead.
      Parameters:
        `rc` - the renderign context.
      Returns:
        whether scrolling is supported.

    - #### getVisible

          protected boolean getVisible(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns the visibility of the component.
      Parameters:
        `bean` - the faces bean.
      Returns:
        the visibility of the component.

    - #### getShortDesc

          protected String getShortDesc(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns the value of the "shortDesc" property.
      Parameters:
        `bean` - the faces bean.
      Returns:
        the value of the "shortDesc" property.

    - #### getUnsecurePropertyNames

          protected Set<String> getUnsecurePropertyNames(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Retrieves unsecure property from the bean
      Parameters:
        `bean` - FacesBean instance
      Returns:
        the unsecure property value, which is the list of attribute names that can be unsecured.

    - #### getCheckedUnsecurePropertyNames

          protected Set<String> getCheckedUnsecurePropertyNames(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Retrieves unsecure property from the bean, also checks that the unsecure key names don't contain properties that are always secure. We ignore properties that are never secure and let them pass back to the client. If it does, an IllegalArgumentException will be thrown.
      Parameters:
        `bean` - FacesBean instance
      Returns:
        the set of property names that is marked unsecure on this component instance.

    - #### getStyleClass

          protected String getStyleClass(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns the value of the "styleClass" property.
      Parameters:
        `bean` - the faces bean
      Returns:
        the value of the "styleClass" property.

    - #### getPrependedInlineStyle

          protected String getPrependedInlineStyle(javax.faces.context.FacesContext context,
                                                   org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                   javax.faces.component.UIComponent component,
                                                   ClientComponent client,
                                                   org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns null or extra styles to prepend to the inlineStyle. This method is only called if your renderer invokes renderRootStyleAttributes() with a non-null component (the deprecated signatures for this method and renderAllRootAttributes() with a true value for the renderStyleAttrs attribute will not cause this method to be invoked).
      Parameters:
        `context` - teh faces context.
        `rc` - the rendering context.
        `component` - the UI component.
        `client` - the client component.
        `bean` - the faces bean.
      Returns:
        null or extra styles to prepend to the inlineStyle (terminated by a semicolon)

    - #### getInlineStyle

          protected String getInlineStyle(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns the value of the "inlineStyle" property.
      Parameters:
        `bean` - the faces bean.
      Returns:
        the value of the "inlineStyle" property.

    - #### getClientAttributes

          protected Set<String> getClientAttributes(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns the set of client attributes.
      Parameters:
        `bean` - the faces bean.
      Returns:
        the set of client attributes

    - #### getClientListeners

          protected ClientListenerSet getClientListeners(org.apache.myfaces.trinidad.bean.FacesBean bean)

      Returns the client listeners.
      Parameters:
        `bean` - the faces bean
      Returns:
        the set of client listeners.

    - #### isChildVisible

          protected static boolean isChildVisible(javax.faces.component.UIComponent child)

      Returns true if a child is "visible"
      Parameters:
        `child` - the child UI component.
      Returns:
        `true` if a child is "visible"

    - #### encodeStretchedChild

          protected void encodeStretchedChild(javax.faces.context.FacesContext context,
                                              org.apache.myfaces.trinidad.context.RenderingContext arc,
                                              javax.faces.component.UIComponent component,
                                              String parentPadding)
                                       throws IOException

      Encodes the specified child including the additional styling to enable CSS stretching of the child. We use the CSS top/left/bottom/right properties to stretch the child to fill all of the parent's available space. We need to explicitly exclude the parent's padding - the caller must pass this in via the parentPadding value. For the moment, we assume that top/left/bottom/right padding are all the same. Note that on some browsers additional work must be performed on the client to fully implement stretching. See the client-side AdfAgent.prepareStretchedChild() and AdfAgent.resizeStretchedChild() APIs.
      Parameters:
        `context` - The Faces context
        `arc` - the rendering context.
        `component` - The child component to encode
        `parentPadding` - The CSS padding value (eg. "1px").
      Throws:
        `IOException` - If an I/O error occurs.
      See Also:
        `encodeStretchedChildBegin(FacesContext,RenderingContext,String)`, `isNextElementToBeStretched(FacesContext)`

    - #### encodeStretchedChildBegin

          protected javax.faces.context.ResponseWriter encodeStretchedChildBegin(javax.faces.context.FacesContext context,
                                                                                 org.apache.myfaces.trinidad.context.RenderingContext arc,
                                                                                 String parentPadding)
                                                                          throws IOException

      Prepares the FacesContext/ResponseWriter for encoding of a stretched child. Returns the ResponseWriter which is used to insert any stretching-related styles on the child content. All calls to encodeStretchedChildBegin() must be followed by a matching call to encodeStretchedChildEnd(). Important usage note: If you use encodeStretchedChildBegin() before writing an element and then subsequently you encode a child component that may be conditionally stretched, then you must ensure that the element written after you call this API has an explicit "style" attribute written to it by the ResponseWriter (even just a style with a value of "") or else the child component may render incorrectly because isNextElementToBeStretched() will return an invalid result.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `parentPadding` - the parent padding.
      Returns:
        the response writer.
      Throws:
        `IOException` - If an I/O error occurs.
      See Also:
        `encodeStretchedChild(FacesContext,RenderingContext,UIComponent,String)`, `encodeStretchedChildEnd(FacesContext,ResponseWriter)`, `isNextElementToBeStretched(FacesContext)`

    - #### encodeStretchedChildBegin

          protected javax.faces.context.ResponseWriter encodeStretchedChildBegin(javax.faces.context.FacesContext context,
                                                                                 org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                                                 String parentTopPadding,
                                                                                 String parentRightPadding,
                                                                                 String parentBottomPadding,
                                                                                 String parentLeftPadding)
                                                                          throws IOException

      Prepares the FacesContext/ResponseWriter for encoding of a stretched child. Returns the ResponseWriter which is used to insert any stretching-related styles on the child content. All calls to encodeStretchedChildBegin() must be followed by a matching call to encodeStretchedChildEnd().
      Parameters:
        `context` - the faces context
        `rc` - he rendering context
        `parentTopPadding` - the parent top padding.
        `parentRightPadding` - the parent right padding.
        `parentBottomPadding` - the parent bottom padding.
        `parentLeftPadding` - the parent left padding.
      Returns:
        the ResponseWriter which is used to insert any stretching-related styles on the child content.
      Throws:
        `IOException` - If an I/O error occurs
      See Also:
        `encodeStretchedChild(FacesContext,RenderingContext,UIComponent,String)`, `encodeStretchedChildEnd(FacesContext,ResponseWriter)`, `isNextElementToBeStretched(FacesContext)`

    - #### encodeStretchedChildEnd

          protected void encodeStretchedChildEnd(javax.faces.context.FacesContext context,
                                                 javax.faces.context.ResponseWriter responseWriter)
                                          throws IOException

      Completes the stretched child encoding which was initiated via a call to encodeStretchedChildBegin(). The ResponseWriter that was returned by encodeStretchedChildBegin must be passed into encodeStretchedChildEnd().
      Parameters:
        `context` - the faces context
        `responseWriter` - the response writer
      Throws:
        `IOException` - If an I/O error occurs

    - #### visitChildrenForEncoding

          public final boolean visitChildrenForEncoding(org.apache.myfaces.trinidad.component.UIXComponent component,
                                                        javax.faces.component.visit.VisitContext visitContext,
                                                        javax.faces.component.visit.VisitCallback callback)

      Overrides:
        `visitChildrenForEncoding` in class `org.apache.myfaces.trinidad.render.CoreRenderer`

    - #### visitChildrenForEncodingImpl

          protected boolean visitChildrenForEncodingImpl(org.apache.myfaces.trinidad.component.UIXComponent component,
                                                         javax.faces.component.visit.VisitContext visitContext,
                                                         javax.faces.component.visit.VisitCallback callback)

      Hook method to allow sub-classes to customize the order and how to visit each child of the given component.
      Parameters:
        `component` - The component to visit the children of
        `visitContext` - The visit context
        `callback` - the callback
      Returns:
        `true` if the visit is complete.

    - #### isNextElementToBeStretched

          public boolean isNextElementToBeStretched(javax.faces.context.FacesContext fc)

      Determines whether the next written element will have element stretching styles added to it. Important usage note: To guarantee safe use of this API, it must be invoked after starting the root element of your Renderer. In some cases it may be impossible to invoke this API after starting your root element because the result of this API is what determines what your root element needs to be. Some elements can never be stretched consistently across web browsers and some stretchable elements do not flow in a manner that is important for your component's design; you need to know which root element to use. In order for you to get an accurate result from this API prior to staring your root element, you are at the mercy of the Renderer of your parent component. The cases where this API could incorrectly return true is if that parent component's Renderer meets one of the following criteria: 1.) it is using RichRenderer.encodeStretchedChildBegin() on an element that surrounds your component, or 2.) it is only generating a root element (no other internal elements are rendered). Renderers that meet this criteria can guarantee that they play well with children components by simply ensuring that they write an explicit style to the ResponseWriter on the element that surrounds a child component (even just a style with a value of ""). This will notify the ResponseWriter that this parent element has consumed the stretched styles and resets the stretching state for the next component thus making this API return the correct value both before and immediately after that child component's root element has been started.
      Parameters:
        `fc` - the FacesContext
      Returns:
        true if the next written element will have stretching styles added, false otherwise
      See Also:
        `encodeStretchedChild(FacesContext, RenderingContext, UIComponent, String)`, `encodeStretchedChildBegin(FacesContext, RenderingContext, String)`

    - #### supportsCSSStretching

          public boolean supportsCSSStretching(org.apache.myfaces.trinidad.context.RenderingContext arc)

      Tests whether the agent supports CSS (top/bottom/left/right) stretching
      Parameters:
        `arc` - the rendering context
      Returns:
        whether the agent supports CSS (top/bottom/left/right) stretching

    - #### renderClickableIcon

          protected void renderClickableIcon(javax.faces.context.FacesContext context,
                                             org.apache.myfaces.trinidad.context.RenderingContext rc,
                                             javax.faces.component.UIComponent component,
                                             boolean isTabStop,
                                             String[] styleClasses,
                                             String id,
                                             String tooltipTextBundleKey,
                                             String iconName)
                                      throws IOException

      Deprecated. Use RichRenderUtils renderClickableIcon
      Renders a clickable icon with specified id, style classes, tooltip, skinnable icon name and tabstop feature.
      Parameters:
        `context` - the FacesContext.
        `rc` - the RenderingContext.
        `component` - the UIComponent that is rendered.
        `isTabStop` - If true, the icon is rendered as tab stop and it can accept focus. Otherwise the icon is not tab stop and cannot accept focus.
        `styleClasses` - Used to render style class names for the icon. If your style class uses background-image to display the icon, its attributes should ensure proper sizing in IE and FireFox. See ".AFClickableImageAnchor_16x16" in rich components-simple-desktop.css for an alias you may be able to use.
        `id` - the html DOM id of the icon.
        `tooltipTextBundleKey` - the key for the translated string to be displayed as tooltip.
        `iconName` - the icon name of the application skinned icon. It's normally used as text only icon. If a valid icon name is passed in, that icon will be displayed and background-image style in styleClasses will have no effect in UI.
      Throws:
        `IOException` - If an I/O error occurs

    - #### makeNonEmpty

          protected static void makeNonEmpty(javax.faces.context.FacesContext context)
                                      throws IOException

      Forces some non-visible content to be rendered to give the containing content *some* space. This method is intended for use by Renderers which generate an outer div which contains only absolutely positioned contents. This causes problems for IE when the width/height is 100%, since IE will not automatically stretch these contents. In particular, IE will not stretch these contents if they are inserted into the page via ppr, but instead only stretches such contents after the first browser resize event. Since we expect that clients will need to set width/height to 100% on geometry managing components such as panelStretchLayout and panelSplitter when embedding these inside showDetailItem, we need to make sure that these components produce some content. This can be assured by calling makeNonEmpty() somewhere after the root div is rendered.
      Parameters:
        `context` - the faces context
      Throws:
        `IOException` - If an I/O error occurs

    - #### supportsAccessKeys

          public static boolean supportsAccessKeys(org.apache.myfaces.trinidad.context.RenderingContext arc)

      Returns true if the agent supports access keys.
      Parameters:
        `arc` - the rendering context
      Returns:
        `true` if the agent supports access keys.

    - #### supportsNavigation

          public static boolean supportsNavigation(org.apache.myfaces.trinidad.context.RenderingContext arc)

      Returns true if the agent supports page-to-page navigation.
      Parameters:
        `arc` - the rendering context.
      Returns:
        `true` if the agent supports page-to-page navigation.

    - #### skipDecode

          protected boolean skipDecode(javax.faces.context.FacesContext context)

      Can be overridden to detect if decoding this component should be skipped.
      Overrides:
        `skipDecode` in class `org.apache.myfaces.trinidad.render.CoreRenderer`
      Parameters:
        `context` - the faces context.
      Returns:
        `true` if decoding this component

    - #### renderHAlign

          protected static void renderHAlign(javax.faces.context.FacesContext context,
                                             org.apache.myfaces.trinidad.context.RenderingContext arc,
                                             Object hAlign)
                                      throws IOException

      Renders an halign attribute, automatically transforming "start" and "end" into "left" and "right" as necessary depending on the current user's reading direction.
      Parameters:
        `context` - the faces context
        `arc` - the rendering context
        `hAlign` - the horizontal align object
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderPossiblyFormattedText

          protected final void renderPossiblyFormattedText(javax.faces.context.FacesContext context,
                                                           Object textValue)
                                                    throws IOException

      Renders text; if the text begins with "<html>", render it as formatted text, otherwise render it as plain text.
      Parameters:
        `context` - the faces context
        `textValue` - the text value object
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderFormattedText

          protected final void renderFormattedText(javax.faces.context.FacesContext context,
                                                   Object textValue)
                                            throws IOException

      Renders text as "formatted" text, as if it were the value of an <outputFormatted> component. See the documentation for `RichOutputFormatted` .
      Parameters:
        `context` - the faces context
        `textValue` - the text value object.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### renderSpacer

          protected final void renderSpacer(javax.faces.context.FacesContext context,
                                            org.apache.myfaces.trinidad.context.RenderingContext arc,
                                            String width,
                                            String height)
                                     throws IOException

      Renders a spacer.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `width` - the width of the spacer.
        `height` - the height of the spacer.
      Throws:
        `IOException` - If an I/O error occurs.

    - #### renderSpacer

          protected final void renderSpacer(javax.faces.context.FacesContext context,
                                            org.apache.myfaces.trinidad.context.RenderingContext arc,
                                            String width,
                                            String height,
                                            String id,
                                            String shortDesc,
                                            javax.faces.component.UIComponent component)
                                     throws IOException

      Renders a spacer.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `width` - the width of the spacer.
        `height` - the height of the spacer.
        `id` - the id of the spacer.
        `shortDesc` - the short description of the spacer.
        `component` - the UI Component.
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderSpacer

          protected final void renderSpacer(javax.faces.context.FacesContext context,
                                            org.apache.myfaces.trinidad.context.RenderingContext arc,
                                            String width,
                                            String height,
                                            String id,
                                            String shortDesc,
                                            javax.faces.component.UIComponent component,
                                            String inlineStyle)
                                     throws IOException

      Renders a spacer.
      Parameters:
        `context` - the faces context.
        `arc` - the rendering context.
        `width` - the width of the spacer
        `height` - the height of the spacer.
        `id` - the id for the spacer.
        `shortDesc` - the short description for the spacer.
        `component` - the UI component for the spacer.
        `inlineStyle` - the inline style for the spacer.
      Throws:
        `IOException` - If an I/O error occurs

    - #### renderVerticalSpacer

          protected final void renderVerticalSpacer(javax.faces.context.FacesContext context,
                                                    Object height,
                                                    Object id,
                                                    javax.faces.component.UIComponent comp)
                                             throws IOException

      Renders a vertical spacer for a specified non-null height.
      Parameters:
        `context` - the faces context.
        `height` - the height object for the verical spacer.
        `id` - the id of the spacer.
        `comp` - the component for the spacer.
      Throws:
        `IOException` - If an I/O error occurs

    - #### addAttributeChange

          protected void addAttributeChange(javax.faces.component.UIComponent comp,
                                            String attrName,
                                            Object attrValue)

      Adds an attribute change to persist the attribute value using change manager
      Parameters:
        `comp` - the UI component.
        `attrName` - the attribute name.
        `attrValue` - the attribute value.

    - #### setupEncodingContext

          public void setupEncodingContext(javax.faces.context.FacesContext context,
                                           org.apache.myfaces.trinidad.context.RenderingContext rc,
                                           javax.faces.component.UIComponent component)

      Overrides:
        `setupEncodingContext` in class `org.apache.myfaces.trinidad.render.CoreRenderer`

    - #### tearDownEncodingContext

          public void tearDownEncodingContext(javax.faces.context.FacesContext context,
                                              org.apache.myfaces.trinidad.context.RenderingContext rc,
                                              javax.faces.component.UIComponent component)

      Overrides:
        `tearDownEncodingContext` in class `org.apache.myfaces.trinidad.render.CoreRenderer`

    - #### setupChildrenEncodingContext

          public void setupChildrenEncodingContext(javax.faces.context.FacesContext context,
                                                   org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                   javax.faces.component.UIComponent component)

      Overrides:
        `setupChildrenEncodingContext` in class `org.apache.myfaces.trinidad.render.CoreRenderer`

    - #### tearDownChildrenEncodingContext

          public void tearDownChildrenEncodingContext(javax.faces.context.FacesContext context,
                                                      org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                      javax.faces.component.UIComponent component)

      Overrides:
        `tearDownChildrenEncodingContext` in class `org.apache.myfaces.trinidad.render.CoreRenderer`

    - #### isThemeEnabled

          protected boolean isThemeEnabled(javax.faces.context.FacesContext facesContext,
                                           org.apache.myfaces.trinidad.context.RenderingContext renderingContext,
                                           javax.faces.component.UIComponent component,
                                           org.apache.myfaces.trinidad.bean.FacesBean facesBean)

      Check if the component supports theming. If a component supports themeing, then theme HTML attributes are added to the HTML written by the renderer for this component when a style class is added to the output.

      Note that this is not related to if a component changes the theme by pushing the current theme onto the `RichRenderingContext`.

      The default implementation checks to see if the base style class has the "-tr-enable-themes" property set to "true" in the skin. Typically called from `CoreRenderer.setupEncodingContext(FacesContext, RenderingContext, UIXComponent)`
      Parameters:
        `facesContext` - facesContext instance
        `renderingContext` - current rendering context
        `component` - component being rendered
        `facesBean` - faces bean of the component
      Returns:
        true if theme attributes should be added to the elements of this component
      See Also:
        `ENABLE_THEME_PROPERTY`, `CoreRenderer.setupEncodingContext(FacesContext, RenderingContext, UIXComponent)`, `renderStyleClass(FacesContext, RenderingContext, String)`, `renderStyleClasses(FacesContext, RenderingContext, String[])`

    - #### encodeAllChildrenInContext

          protected final void encodeAllChildrenInContext(javax.faces.context.FacesContext facesContext,
                                                          org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                          javax.faces.component.UIComponent component)
                                                   throws IOException

      Convenience method that calls `setupChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`, `CoreRenderer.encodeAllChildren(javax.faces.context.FacesContext, javax.faces.component.UIComponent)` and then `tearDownChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`.
      Parameters:
        `facesContext` - the faces context
        `rc` - the rendering context
        `component` - the component to encode the children of
      Throws:
        `IOException` - if rendering fails

    - #### encodeChildInContext

          protected final void encodeChildInContext(javax.faces.context.FacesContext facesContext,
                                                    org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                    javax.faces.component.UIComponent component,
                                                    javax.faces.component.UIComponent childComponent)
                                             throws IOException

      Convenience method that calls `setupChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`, `CoreRenderer.encodeChild(javax.faces.context.FacesContext, javax.faces.component.UIComponent)` and then `tearDownChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`.
      Parameters:
        `facesContext` - the faces context
        `rc` - the rendering context
        `component` - the parent component for which a child is being encoded
        `childComponent` - the child component to encode
      Throws:
        `IOException` - if rendering fails

    - #### encodeChildrenInContext

          protected final void encodeChildrenInContext(javax.faces.context.FacesContext facesContext,
                                                       org.apache.myfaces.trinidad.context.RenderingContext rc,
                                                       javax.faces.component.UIComponent component,
                                                       javax.faces.component.UIComponent... childComponents)
                                                throws IOException

      Convenience method that calls `setupChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`, `CoreRenderer.encodeChild(javax.faces.context.FacesContext, javax.faces.component.UIComponent)` on each child that is passed in `tearDownChildrenEncodingContext(FacesContext, RenderingContext, UIComponent)`.
      Parameters:
        `facesContext` - the faces context
        `rc` - the rendering context
        `component` - the parent component for which children is being encoded
        `childComponents` - the child components to encode
      Throws:
        `IOException` - if rendering fails

    - #### renderStyleClasses

          @Deprecated
          public static void renderStyleClasses(javax.faces.context.FacesContext facesContext,
                                                            org.apache.myfaces.trinidad.context.RenderingContext renderingContext,
                                                            String[] styleClasses)
                                                     throws IOException

      Deprecated.
      Renders style classes with the current theme, if available. This method uses `CoreRenderer.renderStyleClasses(FacesContext, RenderingContext, String[])` to render a style classes. If there is a current theme, it is appended to the array of style classes.
      Parameters:
        `facesContext` - The current FacesContext
        `renderingContext` - The current RenderingContext
        `styleClasses` - The styleClasses to render
      Throws:
        `IOException` - If rendering fails

    - #### renderStyleClasses

          public static void renderStyleClasses(javax.faces.context.FacesContext facesContext,
                                                org.apache.myfaces.trinidad.context.RenderingContext renderingContext,
                                                List<String> styleClasses)
                                         throws IOException

      Renders style classes with the current theme, if available. This method uses `CoreRenderer.renderStyleClasses(FacesContext, RenderingContext, String[])` to render a style classes. If there is a current theme, it is appended to the array of style classes.
      Parameters:
        `facesContext` - The current FacesContext
        `renderingContext` - The current RenderingContext
        `styleClasses` - The styleClasses to render
      Throws:
        `IOException` - If rendering fails

    - #### renderStyleClass

          public static void renderStyleClass(javax.faces.context.FacesContext facesContext,
                                              org.apache.myfaces.trinidad.context.RenderingContext renderingContext,
                                              String styleClass)
                                       throws IOException

      Renders a style class with the current theme, if available. This method uses `CoreRenderer.renderStyleClass(FacesContext, RenderingContext, String)` to render a style class. If there is a current theme, `CoreRenderer.renderStyleClasses(FacesContext, RenderingContext, String[])` is used with the theme as the second style class in the array.
      Parameters:
        `facesContext` - The current FacesContext
        `renderingContext` - The current RenderingContext
        `styleClass` - The styleClass to render
      Throws:
        `IOException` - If rendering fails

    - #### getTheme

          public static String getTheme(org.apache.myfaces.trinidad.context.RenderingContext renderingContext)

      Get the current theme from the rendering context's theme stack
      Parameters:
        `renderingContext` - The current rendering context
      Returns:
        The current theme
      See Also:
        `pushTheme(RenderingContext, String)`

    - #### pushTheme

          public static void pushTheme(org.apache.myfaces.trinidad.context.RenderingContext renderingContext,
                                       String theme)

      Push the current theme onto the rendering context's theme stack.
      Parameters:
        `renderingContext` - The current rendering context
        `theme` - The new/current theme
      See Also:
        `RichRenderingContext.pushTheme(String)`, `popTheme(RenderingContext)`

    - #### popTheme

          public static String popTheme(org.apache.myfaces.trinidad.context.RenderingContext renderingContext)

      Remove the last theme from the rendering context's theme stack
      Parameters:
        `renderingContext` - The current rendering context
      Returns:
        The theme that was popped
      See Also:
        `pushTheme(RenderingContext, String)`

    - #### supportsPostbackPayloadType

          protected boolean supportsPostbackPayloadType(javax.faces.context.FacesContext context,
                                                        javax.faces.component.UIComponent component,
                                                        AdfFacesContext.PayloadType payloadType)

      Tests whether this Renderer supports the specified postback payload type. By default, only PayloadType.FULL is supported. Renderers that want to enable support for other types of postback payload processing must override this method to indicate which PayloadTypes they support.
      Parameters:
        `context` - the FacesContext for the current request
        `component` - the component that requires full postbacks
        `payloadType` - the postback payload type
      Returns:
        true if the renderer supports the postback payload type, false otherwise.

Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.