31.5. <layout:cardLayout>

layout:cardLayout是一种卡片布局。

31.5.1. 构件信息

表 31.11. 构件信息

Component Typeorg.operamasks.faces.component.layout.impl.UICardLayout
Component Familyorg.operamasks.faces.component.layout.impl.UIPanel
Component Classorg.operamasks.faces.component.layout.impl.UICardLayout
Tag Classorg.operamasks.faces.webapp.layout.UICardLayoutTag
Renderer Typeorg.operamasks.faces.component.layout.impl.UICardLayout
Renderer Class(AJAX)org.operamasks.faces.render.layout.ajax.AjaxCardLayoutRenderer

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++org.operamasks.faces.component.layout.base.UIPanelBase

+++++org.operamasks.faces.component.layout.impl.UIPanel

++++++org.operamasks.faces.component.layout.impl.UILayout

+++++++org.operamasks.faces.component.layout.base.UICardLayoutBase

++++++++org.operamasks.faces.component.layout.impl.UICardLayout

31.5.2. 属性

表 31.12. 属性

activeItem 定义类 org.operamasks.faces.component.layout.impl.UICardLayout
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
当前激活的卡片
animCollapse 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
在构件收缩时是否显示动画效果
animFloat 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许面板收缩/展开的激活. 当点击一个收缩区域的bar时,这个区域的面板就会显示成一个浮动的面板,并且当鼠标移开该区域(或者在autoHide被设置成false时,点击面板外的地方)时,面板会收缩。把animFloat设置成false可以阻止面板收缩/展开的激活 (默认值:true)
autoHeight 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许构件自适应高度(默认值: false).
autoHide 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
鼠标移开浮动面板时面板是否自动收缩 (默认值:true)
autoWidth 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许构件自适应宽度 (默认值:false)
binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
bodyStyle 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
容器内元素使用的CSS样式
border 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否显示面板body元素的边框(默认值:true)。默认情况下,边框是一个2px宽的内嵌边框,但当bodyBorder属性被设置成false时可以进一步修改
closable 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
作为TabLayout的一页时,这一页是否可以关闭
cmargins 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
区域内收缩的构件的margins设置, 格式为: {left: (left margin), top: (top margin), right: (right margin), bottom: (bottom margin)}
collapseMode 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
面板的收缩模式,支持的属性值有mini,此属性只在borderLayout中起效
collapsed 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件的初始状态是否是收缩的(默认值:false)
collapsible 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件是否可以收缩和展开(默认值:false)
colspan 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件占据的列数
columnWidth 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Float)
是否必须 延时求值
构件宽度的百分比小数值
deferredRender 定义类 org.operamasks.faces.component.layout.impl.UICardLayout
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否在卡片激活时渲染
fit 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件是否充满父容器
floatable 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许面板漂浮 (默认值:true)
floating 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
面板是否漂浮 (默认值:false)
frame 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
如何渲染面板边框. 为True时用用户定义的圆角边框渲染面板, 为false时用1px宽的直角边框渲染面板 (默认值:false)
header 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否为容器生成header。如果没有设置header属性,而设置了title属性,header会自动生成;如果设置了title属性,但header属性设置为false,则不会生成header
headerAsText 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否在header中显示title(默认值: true).
height 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件高度的像素值 (默认是auto)
hideBorders 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否隐藏边框。为true时隐藏内部构件的边框, 为false时适应内部构件的边框设置 (默认值:false).
hideCollapseTool 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否显示收缩/折叠按钮(默认false), 仅在当collapsible属性设置为true时生效
iconCls 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
title前的小图标的CSS Class名称, 比如:"myIcon", 而myIcon的内容可以定义为:.myIcon {background: url(myIcon.gif);}
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
initConfig 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
初始化配置对象。取值可以是ExtConfig对象, 或String,表示一个JavaScript对象,比如:{"a": "avalue", "b":true, "c":200, "d":"var::dvalue"} 如果取值是表示一个JavaScript对象的String,则key必须用(双)引号包起来,比如"a"。
jsvar 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
客户端脚本使用的javascript变量名
margins 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
设置构件的margin值,格式为 {left: (left margin), top: (top margin), right: (right margin), bottom: (bottom margin)}
maskDisabled 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
在面板disabled时,是否用直观的方式标识 (默认值:true)
maxSize 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件的最大Size
minSize 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件的最小Size
onactivate 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件激活时执行的JavaScript代码
onbeforeexpand 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件展开前执行的JavaScript代码
region 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
该区域的布局位置,合法值有: north、south、east、west、center
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
rowspan 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件占据的行数
shadow 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
构件是否显示阴影效果.该属性仅在floating属性被设置成true时有效
shadowOffset 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
阴影偏离的像素数 (默认值:4).该属性仅在floating属性被设置成true时有效
shim 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否在需要的时候enable内框架边界 (默认值:true). 该属性仅在floating属性被设置成true时有效
showTitleOnCollapse 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
在构件收缩后是否显示标题 (默认值:false). 注意:该属性仅在region="north"或者region="south",属性被设置成true时有效
split 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否在该区域和它的邻近区域之间显示分隔条 (默认值:false). 当该属性被设置成true时,一般要设置minSize和maxSize属性
style 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件渲染时应用到构件的CSS风格,对应于元素的style属性
styleClass 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
空格分隔的CSS风格类名列表,渲染时作为元素的"class"属性
title 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
在构件的header上显示的标题
titleCollapse 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
是否允许在单击构件的header时收缩或展开构件 (默认值:false)
toolBarPosition 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
内置工具栏的位置,可能的取值为"top","bottom",或"both"。
width 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
构件宽度的像素值 (默认是auto)
x 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件左边界距离父容器左边界的像素数
y 定义类 org.operamasks.faces.component.layout.impl.UIPanel
类型 javax.el.ValueExpression(java.lang.Integer)
是否必须 延时求值
构件上边界距离父容器上边界的像素数

31.5.3. 构件API

31.5.3.1. UICardLayout(cardLayout的构件类)

表 31.13. 常用方法

collapse 方法签名 public void collapse(boolean animate)
参数说明 animate: true表示以动画形式收缩,false表示没有动画过程,收缩过程瞬间完成
返回值 无返回值
方法描述 收缩Panel
expand 方法签名 public void expand(boolean animate)
参数说明 animate: true表示以动画形式扩展,false表示没有动画过程,扩展过程瞬间完成
返回值 无返回值
方法描述 扩展Panel
activeItem 方法签名 public void activeItem(java.lang.Integer item)
参数说明 item: 要激活的页的索引,从0开始
返回值 无返回值
方法描述 激活指定的页,使它显示在最前面

31.5.4. 示例

下面的例子是一个简单的cardLayout布局。

<layout:cardLayout id="demoCardLayout" height="300" width="400" styleClass="alignCenter"> 
  <layout:panel title="第一步">填写基本信息:</layout:panel> 
  <layout:panel title="第二步">填写详细信息:</layout:panel> 
  <layout:panel title="完成">恭喜你,注册已经完成!</layout:panel> 
</layout:cardLayout> 
<w:form> 
  <layout:panelGrid columns="3" styleClass="alignCenter"> 
    <layout:cell colspan="1" rowspan="1"> 
      <w:button value="上一步" id="pre" /> 
    </layout:cell> 
    <layout:cell colspan="1" rowspan="1"> 
      <w:button value="下一步" id="next" /> 
    </layout:cell> 
    <layout:cell colspan="1" rowspan="1"> 
      <w:button value="完成" id="finish" /> 
    </layout:cell> 
  </layout:panelGrid> 
</w:form>