Adobe ColdFusion 8

cflayout

Description

Creates a region of its container (such as the browser window or a cflayoutarea tag) with a specific layout behavior: a bordered area, a horizontal or vertically arranged box, or a tabbed navigator.

Category

Display management tags

Syntax

<cflayout
    type="border|hbox|tab|vbox"
    align="center|justify|left|right
    name="string"
    padding="integer"
    style="CSS style specification"
    tabHeight="measurement">
    tabPosition="top|bottom">

        cflayoutarea tags

</cflayout>

Note: You can specify this tag's attribute in an attributeCollection attribute whose value is a structure. Specify the structure name in the attributeCollection attribute and use the tag's attribute name as structure key.

See also

cfajaximport, cfdiv, cflayoutarea, cfpod, cfwindow, "Using Ajax UI Components and Features" in the ColdFusion Developer's Guide

History

ColdFusion 8: Added this tag.

Attributes

Attribute

Req/Opt

Default

Applies to

Description

type

Required

 

all

The type of layout. The following values are valid:

  • border: a box with a border and up to five layout areas, each with a border. For more information, see Usage.
  • hbox: a horizontal box where all immediate child cflayoutarea controls are arranged horizontally.
  • tab: a tabbed display where the current child cflayoutarea tag occupies the display area of the layout, and each layout area has a tab that the user can select to display its contents.
  • vbox: a vertical box where all immediate child cflayoutarea controls are arranged vertically.

align

Optional

Determined by browser layout direction

all

Specifies the default alignment of the content of child layout areas. Each cflayoutarea tag can specify an alignment attribute to override this value.

The following values are valid:

  • center
  • justify
  • left
  • right

name

Optional

 

all

The name of the layout region. Should be unique on a page.

padding

Optional

0

hbox, vbox

  • For hbox layouts, specifies the padding on the right side of each child layout area.
  • For vbox layouts, specifies the padding at the bottom of each child layout area.

You can use any valid CSS length or percent format, such as 10, 10% 10px, or 10em, for this attribute.

The padding is included in the child layout area and takes the style of the layout area.

style

Optional

 

all

A CSS style specification that defines layout styles.

tabHeight

Optional

 

tab

Specifies the height of the content area of all child layout areas. You can override this setting by specifying a height setting in a individual cflayoutarea tag style attributes.

tabPosition

Optional

top

tab

Specifies the location of the tabs relative to the tab region contents.

  • bottom: the tabs appear at the bottom of the layout.
  • top: the tabs appear at the top of the layout.

Usage

The immediate children of a cflayout tag must be cflayoutarea tags or nondisplay tags whose bodies contain one or more cflayoutarea tags at the top level. For example, a cflayout tag could have a tag such as cfloop or cfquery as a child, and these tags would have cflayoutarea tags in their bodies.

The border type layout has the following characteristics:

  • The layout control and each of its immediate layout area children is surrounded by a border.
  • The control can have up to five children positioned at the left, right, center, top, and bottom of the layout.
  • You can configure the child layout areas, except for the center area, to have splitters so that users can expand and collapse them or close them completely.
  • The center child layout area occupies all available space in the layout that is not used by any of the other layout areas.
  • To specify layout height, use the height setting of the style attribute.

Note: If you specify a border layout on a page that has a DOCTYPE declaration, the layout cannot properly determine its height and you must specify the height in a cflayout tag style attribute.

You can use the following JavaScript functions to access the underlying Ext JS - JavaScript Library objects for border and tab type cflayout controls.

Function

Description

ColdFusion.Layout.getBorderLayout

Gets the underlying Ext JS - JavaScript Library object for the specified border type cflayout control.

ColdFusion.Layout.getTabLayout

Gets the underlying Ext JS - JavaScript Library object for the specified tab type cflayout control.

For more information on configuring layout areas, see cflayoutarea.

Example

The following example shows a set of nested layouts. The outer layout is a vbox, with two layout areas. The top layout area has a border layout, the bottom layout area contains a form with buttons to control the display of the border layout areas.

<html>
<head>
</head>
<body>
<cflayout name="outerlayout" type="vbox">
    <cflayoutarea style="height:400;">
        <cflayout name="thelayout" type="border">
            <!--- The 100% height style ensures that the background color fills 
                the area. --->
            <cflayoutarea position="top" size="100" splitter="true" 
                    style="background-color:##00FFFF; height:100%">
                This is text in layout area 1: top
            </cflayoutarea>
            <cflayoutarea title="Left layout area" position="left"
                    closable="true" 
                    collapsible="true" name="left" splitter="true"
                    style="background-color:##FF00FF; height:100%">
                This is text in layout area 2: left<br />
                You can close and collapse this area.
            </cflayoutarea>
            <cflayoutarea position="center"
                    style="background-color:##FFFF00; height:100%">
                This is text in layout area 3: center<br />
            </cflayoutarea>
            <cflayoutarea position="right" collapsible="true" 
                    title="Right Layout Area" initcollapsed="true"
                    style="background-color:##FF00FF; height:100%" >
                This is text in layout area 4: right<br />
                You can collapse this, but not close it.<br />
                It is initially collapsed.
            </cflayoutarea>
            <cflayoutarea position="bottom" size="100" splitter="true"
                     style="background-color:##00FFFF; height:100%">
                This is text in layout area 5: bottom
            </cflayoutarea> 
        </cflayout>
    </cflayoutarea>

    <cflayoutarea style="height:100; ; background-color:##FFCCFF">
        <h3>Change the state of Area 2</h3>
        <cfform>
            <cfinput name="expand2" width="100" value="Expand Area 2" type="button" 
                onClick="ColdFusion.Layout.expandArea('thelayout', 'left');">
            <cfinput name="collapse2" width="100" value="Collapse Area 2" type="button"
                onClick="ColdFusion.Layout.collapseArea('thelayout', 'left');">
            <cfinput name="show2" width="100" value="Show Area 2" type="button" 
                onClick="ColdFusion.Layout.showArea('thelayout', 'left');">
            <cfinput name="hide2" width="100" value="Hide Area 2" type="button" 
                onClick="ColdFusion.Layout.hideArea('thelayout', 'left');">
        </cfform>
    </cflayoutarea>
</cflayout>
</body>
</html>