View Source

h2. Overview
_Since 4.3_


The {{ace:borderLayout}} component is a container with five different regions (north, south, east, west and center), which are collapsible, expandable, closable, and resizable, except for the center region. The center region is required to be defined for the component to function properly. The regions are defined by nesting {{ace:borderLayoutPane}} components in this component. Each BorderLayoutPane has its own ajax events. Moreover, {{ace:borderLayout}}'s can be nested inside {{ace:borderLayoutPane}}'s, thus allowing to build any sort of complex layout desired.

{tip}See the ICEfaces Showcase [Live Demo|http://icefaces-showcase.icesoft.org/showcase.jsf?grp=ace:borderLayout] of this component, complete with source code.{tip}

h2. Getting Started


In its typical form, an {{ace:borderLayout}} component can be defined as follows.
{panel}
{code:xml|borderStyle=dashed}
<h:form id="form">
<ace:borderLayout>
<ace:borderLayoutPane position="center" headerText="Center" footerText="(center footer)">
<h:outputText value="CENTER" />
</ace:borderLayoutPane>
<ace:borderLayoutPane position="north" headerText="North" footerText="(north footer)" resizable="true" closable="true" toggleable="true">
<h:outputText value="NORTH" />
</ace:borderLayoutPane>
<ace:borderLayoutPane position="south" headerText="South" footerText="(south footer)" resizable="true" closable="true" toggleable="true">
<h:outputText value="SOUTH" />
</ace:borderLayoutPane>
<ace:borderLayoutPane position="east" headerText="East" footerText="(east footer)" resizable="true" closable="true" toggleable="true">
<h:outputText value="EAST" />
</ace:borderLayoutPane>
<ace:borderLayoutPane position="west" headerText="West" footerText="(west footer)" resizable="true" closable="true" toggleable="true">
<h:outputText value="WEST" />
</ace:borderLayoutPane>
</ace:borderLayout>
</h:form>
{code}
{panel}

As mentioned before, only the center pane is required. The others are optional. Other {{ace:borderLayout}}'s con be nested inside one or more of these panes, each with its own configuration and defined number of panes.

h2. Attributes

{tip:title=TagLib Documentation}This section covers attributes involved in the typical use-cases for this component. For reference, the complete taglib documentation for this component is available [here|http://www.icefaces.org/docs/v4_latest/ace/tld/ace/borderLayout.html].{tip}

Most of the configuration is done on the {{ace:borderLayoutPane}} components. This container component only has two attributes.

{panel}
*style* The style to apply to the main container of the layout."
{panel}

{panel}
*styleClass* The style class of the main container of the layout."
{panel}

h2. Client Behavior Events

The ajax events are defined on the {{ace:borderLayourPane}} component.

h2. JavaScript APIs

h4. ICEfaces 4+

The "widgetVar" attribute on the ACE components has been removed in ICEfaces 4 and in its place a new "ice.ace.instance()" client JavaScript object lookup API has been introduced. The reason for this change is to enable lazy-initialization of the ACE component JavaScript objects to improve runtime performance and reduce browser memory use.

{code}var widget = ice.ace.instance('frm:componentId);{code}

{tip}The _ice.ace.instance_ function requires the _full_ client id of the component to be specified, such as "j_idt77:componentId" instead of just "componentId". To reduce the complexity of working with complete IDs with this function it may be preferable in some cases to use {{prependId="false"}} in the enclosing form (e.g. _<h:form prependId="false">_).{tip}

{info}This component doesn't have a client-side API made specifically to be used by application developers. However, the component's internal methods and variables can be accessed in this way, including the underlying jQuery object and objects from underlying Javascript libraries (if applicable), and can be used for whatever purpose a developer might have in mind.
{info}

h2. Keyboard and ARIA Support

Not supported at the moment.

h2. Known Issues

None at the momeny