com.sun.webui.jsf.component
Class Property

java.lang.Object
  extended by javax.faces.component.UIComponent
      extended by javax.faces.component.UIComponentBase
          extended by com.sun.webui.jsf.component.Property
All Implemented Interfaces:
com.sun.webui.jsf.component.ComplexComponent, javax.faces.component.NamingContainer, javax.faces.component.StateHolder

public class Property
extends javax.faces.component.UIComponentBase
implements com.sun.webui.jsf.component.ComplexComponent, javax.faces.component.NamingContainer

The Property component was written to be used within thePropertySheetSection component, which is in turn used within the context of a PropertySheet component. TheProperty component allows you to encapsulate a logic "property" and help you lay it out on the page. A "property" has a number of configuration options, including: the property content; an optional label; the ability to stretch the property to include the label area (in addition to the content area of the "property"; the ability to mark a property required; and the ability to associate help text with the property to inform your end user how to interact with the property.

Help text can be provided for each property by supplying thehelpText attribute. This attribute may be a literal String or a ValueBinding expression. The help text will appear below the content of the "property". Optionally, the helpText may also be provided as a facet named "helpText". This allows advanced users to have more control over the types of content provided in the helpText area.

The label may be provided via the label attribute. The label will be rendered to the left of the content area of the "property". The label area will not exist if the overlapLabel attribute is set to true. Optionally advanced users may provide a label facet named "label". This allows developers to have more control over the content of the label area.

The labelAlign attribute can use used to specify "left" or "right" alignment of the label table cell.

Setting the noWrap attribute to true specifies that the label should not be wraped to a new line.

The overlapLabel attribute causes the content of the property to be stretched into the label area as well as the content area. This may be useful for titles which should span the entire width, or other cases where you need the whole width of the PropertySheet.

The requiredIndicator attribute is only valid when you supply a label via an attribute (not as a facet). When this attribute is marked true, the label that is created will have its required attribute marked true.

For an example, please see the documentation for the propertySheet Tag.


Field Summary
static java.lang.String CONTENT_FACET
           
static java.lang.String HELPTEXT_FACET
           
static java.lang.String LABEL_FACET
           
 
Fields inherited from interface javax.faces.component.NamingContainer
SEPARATOR_CHAR
 
Constructor Summary
Property()
          Constructor.
 
Method Summary
 javax.faces.component.UIComponent getContentComponent()
          Return the a component that represents the content of the property.
 java.lang.String getFamily()
          Return the family for this component.
 java.lang.String getFocusElementId(javax.faces.context.FacesContext context)
          Returns the id of an HTML element suitable to receive the focus.
 java.lang.String getHelpText()
          The text specified with this attribue is displayed below the content of the property in a small font.
 javax.faces.component.UIComponent getHelpTextComponent()
          Return a component that implements help text.
 javax.faces.component.UIComponent getIndicatorComponent(javax.faces.context.FacesContext context, Label label)
          Return the actual component represented by this Property that is referenced by label in order to evaluate the required and valid states of the component.
 java.lang.String getLabel()
          Use this attribute to specify the text of the label of this property.
 java.lang.String getLabelAlign()
          Specifies the alignment for the property label.
 javax.faces.component.UIComponent getLabelComponent()
          Return a component that implements a label.
 java.lang.String getLabeledElementId(javax.faces.context.FacesContext context)
          Returns the absolute ID of an HTML element suitable for use as the value of an HTML LABEL element's for attribute.
 java.lang.String getPrimaryElementID(javax.faces.context.FacesContext context)
          Deprecated.  
 java.lang.String getStyle()
          CSS style(s) to be applied to the outermost HTML element when this component is rendered.
 java.lang.String getStyleClass()
          CSS style class(es) to be applied to the outermost HTML element when this component is rendered.
 boolean isDisabled()
          Flag indicating that the user is not permitted to activate this component, and that the component's value will not be submitted with the form.
 boolean isNoWrap()
          Specifies that the label should not wrap around to another line, if set to true.
 boolean isOverlapLabel()
          Specifies that the content of the property should occupy the label area as well as the content area, if set to true.
 boolean isVisible()
          Use the visible attribute to indicate whether the component should be viewable by the user in the rendered HTML page.
 void restoreState(javax.faces.context.FacesContext _context, java.lang.Object _state)
          Restore the state of this component.
 java.lang.Object saveState(javax.faces.context.FacesContext _context)
          Save the state of this component.
 void setDisabled(boolean disabled)
          Flag indicating that the user is not permitted to activate this component, and that the component's value will not be submitted with the form.
 void setHelpText(java.lang.String helpText)
          The text specified with this attribue is displayed below the content of the property in a small font.
 void setId(java.lang.String id)
          The component identifier for this component.
 void setLabel(java.lang.String label)
          Use this attribute to specify the text of the label of this property.
 void setLabelAlign(java.lang.String labelAlign)
          Specifies the alignment for the property label.
 void setNoWrap(boolean noWrap)
          Specifies that the label should not wrap around to another line, if set to true.
 void setOverlapLabel(boolean overlapLabel)
          Specifies that the content of the property should occupy the label area as well as the content area, if set to true.
 void setRendered(boolean rendered)
          Use the rendered attribute to indicate whether the HTML code for the component should be included in the rendered HTML page.
 void setStyle(java.lang.String style)
          CSS style(s) to be applied to the outermost HTML element when this component is rendered.
 void setStyleClass(java.lang.String styleClass)
          CSS style class(es) to be applied to the outermost HTML element when this component is rendered.
 void setVisible(boolean visible)
          Use the visible attribute to indicate whether the component should be viewable by the user in the rendered HTML page.
 
Methods inherited from class javax.faces.component.UIComponentBase
broadcast, decode, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientId, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getParent, getRendererType, getRendersChildren, getValueBinding, getValueExpression, invokeOnComponent, isRendered, isTransient, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, queueEvent, restoreAttachedState, saveAttachedState, setParent, setRendererType, setTransient, setValueBinding, setValueExpression
 
Methods inherited from class javax.faces.component.UIComponent
encodeAll, getContainerClientId
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTENT_FACET

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

HELPTEXT_FACET

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

LABEL_FACET

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

Property

public Property()
Constructor.

Method Detail

getFamily

public java.lang.String getFamily()

Return the family for this component.

Specified by:
getFamily in class javax.faces.component.UIComponent

getLabeledElementId

public java.lang.String getLabeledElementId(javax.faces.context.FacesContext context)
Returns the absolute ID of an HTML element suitable for use as the value of an HTML LABEL element's for attribute. If the ComplexComponent has sub-compoents, and one of the sub-components is the target of a label, if that sub-component is a ComplexComponent, then getLabeledElementId must called on the sub-component and the value returned. The value returned by this method call may or may not resolve to a component instance.

The search for an suitable target for the label's "for" attribute is complicated by the fact that Property supports a content facet and random children. The actual heuristic is implemented in findLabeledComponent(javax.faces.component.UIComponent, boolean).

Specified by:
getLabeledElementId in interface com.sun.webui.jsf.component.ComplexComponent
Parameters:
context - The FacesContext used for the request
Returns:
An abolute id suitable for the value of an HTML LABEL element's for attribute.

getIndicatorComponent

public javax.faces.component.UIComponent getIndicatorComponent(javax.faces.context.FacesContext context,
                                                               Label label)
Return the actual component represented by this Property that is referenced by label in order to evaluate the required and valid states of the component.

Specified by:
getIndicatorComponent in interface com.sun.webui.jsf.component.ComplexComponent
Parameters:
context - The current FacesContext instance
label - The Label that labels this component.
Returns:
a UIComponent in order to evaluate its required and valid states.

getFocusElementId

public java.lang.String getFocusElementId(javax.faces.context.FacesContext context)
Returns the id of an HTML element suitable to receive the focus. If the ComplexComponent has sub-compoents, and one of the sub-components is to reveive the focus, if that sub-component is a ComplexComponent, then getFocusElementId must called on the sub-component and the value returned. The value returned by this method call may or may not resolve to a component instance.

Specified by:
getFocusElementId in interface com.sun.webui.jsf.component.ComplexComponent
Parameters:
context - The FacesContext used for the request

getPrimaryElementID

public java.lang.String getPrimaryElementID(javax.faces.context.FacesContext context)
Deprecated. 

This method calculates the proper UIComponent that should be used when the label property is used with this component.

This method provides the implementation for ComplexComponent

Specified by:
getPrimaryElementID in interface com.sun.webui.jsf.component.ComplexComponent
Parameters:
context - The FacesContext.
Returns:
The id of the label target.
See Also:
getLabeledElementId(javax.faces.context.FacesContext), getFocusElementId(javax.faces.context.FacesContext)

getContentComponent

public javax.faces.component.UIComponent getContentComponent()
Return the a component that represents the content of the property. If a facet called content does not exist null is returned.


getHelpTextComponent

public javax.faces.component.UIComponent getHelpTextComponent()
Return a component that implements help text. If a facet named helpText is found that component is returned. Otherwise a HelpInline component is returned. It is assigned the id
getId() + "_helpText"

If the facet is not defined then the returned HelpInline component is re-intialized every time this method is called.

If getHelpeText returns null, null is returned.

Returns:
a help text facet component

getLabelComponent

public javax.faces.component.UIComponent getLabelComponent()
Return a component that implements a label. If a facet named label is found that component is returned. Otherwise a Label component is returned. It is assigned the id
getId() + "_label"

If the facet is not defined then the returned Label component is re-intialized every time this method is called.

Returns:
a label facet component

setId

public void setId(java.lang.String id)
The component identifier for this component. This value must be unique within the closest parent component that is a naming container.

Overrides:
setId in class javax.faces.component.UIComponentBase

setRendered

public void setRendered(boolean rendered)
Use the rendered attribute to indicate whether the HTML code for the component should be included in the rendered HTML page. If set to false, the rendered HTML page does not include the HTML for the component. If the component is not rendered, it is also not processed on any subsequent form submission.

Overrides:
setRendered in class javax.faces.component.UIComponentBase

isDisabled

public boolean isDisabled()

Flag indicating that the user is not permitted to activate this component, and that the component's value will not be submitted with the form.


setDisabled

public void setDisabled(boolean disabled)

Flag indicating that the user is not permitted to activate this component, and that the component's value will not be submitted with the form.

See Also:
isDisabled()

getHelpText

public java.lang.String getHelpText()

The text specified with this attribue is displayed below the content of the property in a small font. The value can be a literal String or a ValueBinding expression. If you want greater control over the content that is displayed in the help text area, use the helpText facet.


setHelpText

public void setHelpText(java.lang.String helpText)

The text specified with this attribue is displayed below the content of the property in a small font. The value can be a literal String or a ValueBinding expression. If you want greater control over the content that is displayed in the help text area, use the helpText facet.

See Also:
getHelpText()

getLabel

public java.lang.String getLabel()

Use this attribute to specify the text of the label of this property. The text is displayed in the column that is reserved for the label of this property row. The attribute value can be a string or a value binding expression. The label is associated with the first input element in the content area of the property. To label a different component, use the label facet instead.


setLabel

public void setLabel(java.lang.String label)

Use this attribute to specify the text of the label of this property. The text is displayed in the column that is reserved for the label of this property row. The attribute value can be a string or a value binding expression. The label is associated with the first input element in the content area of the property. To label a different component, use the label facet instead.

See Also:
getLabel()

getLabelAlign

public java.lang.String getLabelAlign()

Specifies the alignment for the property label. The label occupies a cell in the first column of a table that is used to lay out the properties. Set the labelAlign attribute to make the label align to the left or right of the cell. The default alignment is left. This attibute applies to labels that are specified with either the label attribute or the label facet.


setLabelAlign

public void setLabelAlign(java.lang.String labelAlign)

Specifies the alignment for the property label. The label occupies a cell in the first column of a table that is used to lay out the properties. Set the labelAlign attribute to make the label align to the left or right of the cell. The default alignment is left. This attibute applies to labels that are specified with either the label attribute or the label facet.

See Also:
getLabelAlign()

isNoWrap

public boolean isNoWrap()

Specifies that the label should not wrap around to another line, if set to true. If the label is long, the label column in the table for the property sheet section expands to accomodate the label without wrapping to a new line. This attibute applies to labels that are specified with either the label attribute or the label facet.


setNoWrap

public void setNoWrap(boolean noWrap)

Specifies that the label should not wrap around to another line, if set to true. If the label is long, the label column in the table for the property sheet section expands to accomodate the label without wrapping to a new line. This attibute applies to labels that are specified with either the label attribute or the label facet.

See Also:
isNoWrap()

isOverlapLabel

public boolean isOverlapLabel()

Specifies that the content of the property should occupy the label area as well as the content area, if set to true. The default value is false. This attribute is useful for properties that require the entire width of the property sheet.


setOverlapLabel

public void setOverlapLabel(boolean overlapLabel)

Specifies that the content of the property should occupy the label area as well as the content area, if set to true. The default value is false. This attribute is useful for properties that require the entire width of the property sheet.

See Also:
isOverlapLabel()

getStyle

public java.lang.String getStyle()

CSS style(s) to be applied to the outermost HTML element when this component is rendered.


setStyle

public void setStyle(java.lang.String style)

CSS style(s) to be applied to the outermost HTML element when this component is rendered.

See Also:
getStyle()

getStyleClass

public java.lang.String getStyleClass()

CSS style class(es) to be applied to the outermost HTML element when this component is rendered.


setStyleClass

public void setStyleClass(java.lang.String styleClass)

CSS style class(es) to be applied to the outermost HTML element when this component is rendered.

See Also:
getStyleClass()

isVisible

public boolean isVisible()

Use the visible attribute to indicate whether the component should be viewable by the user in the rendered HTML page. If set to false, the HTML code for the component is present in the page, but the component is hidden with style attributes. By default, visible is set to true, so HTML for the component HTML is included and visible to the user. If the component is not visible, it can still be processed on subsequent form submissions because the HTML is present.


setVisible

public void setVisible(boolean visible)

Use the visible attribute to indicate whether the component should be viewable by the user in the rendered HTML page. If set to false, the HTML code for the component is present in the page, but the component is hidden with style attributes. By default, visible is set to true, so HTML for the component HTML is included and visible to the user. If the component is not visible, it can still be processed on subsequent form submissions because the HTML is present.

See Also:
isVisible()

restoreState

public void restoreState(javax.faces.context.FacesContext _context,
                         java.lang.Object _state)

Restore the state of this component.

Specified by:
restoreState in interface javax.faces.component.StateHolder
Overrides:
restoreState in class javax.faces.component.UIComponentBase

saveState

public java.lang.Object saveState(javax.faces.context.FacesContext _context)

Save the state of this component.

Specified by:
saveState in interface javax.faces.component.StateHolder
Overrides:
saveState in class javax.faces.component.UIComponentBase


Copyright © 2008 Sun Microsystems, Inc. All Rights Reserved.