window渲染成一个窗口,常用于弹出窗口或者弹出面板。
表 31.38. 构件信息
| Component Type | org.operamasks.faces.component.layout.impl.UIWindow |
| Component Family | org.operamasks.faces.component.layout.impl.UIPanel |
| Component Class | org.operamasks.faces.component.layout.impl.UIWindow |
| Tag Class | org.operamasks.faces.webapp.layout.UIWindowTag |
| Renderer Type | org.operamasks.faces.component.layout.impl.UIWindow |
| Renderer Class(AJAX) | org.operamasks.faces.render.layout.ajax.AjaxWindowRenderer |
+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.base.UIWindowBase
+++++++org.operamasks.faces.component.layout.impl.UIWindow
表 31.39. 属性
| animCollapse | 定义类 | org.operamasks.faces.component.layout.impl.UIPanel | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 在构件收缩时是否显示动画效果 | ||||
| animateTarget | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 渐变显示的目标。window从所指定的构件渐变地显示 | ||||
| autoScroll | 定义类 | org.operamasks.faces.component.layout.impl.UIPanel | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 在内容超过构件的Size时,是否允许出现滚动条(默认值: 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的一页时,这一页是否可以关闭 | ||||
| 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) | ||||
| constrain | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否限制window必须在页面可视范围内,默认为false | ||||
| constrainHeader | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否限制window的header必须在页面可视范围内,默认为false | ||||
| expandOnShow | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 在显示时是否总是将window展开,默认为false | ||||
| header | 定义类 | org.operamasks.faces.component.layout.impl.UIPanel | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否为容器生成header。如果没有设置header属性,而设置了title属性,header会自动生成;如果设置了title属性,但header属性设置为false,则不会生成header | ||||
| height | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件高度的像素值 (默认是auto) | ||||
| 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变量名 | ||||
| lazyLoad | 定义类 | org.operamasks.faces.component.layout.impl.UIPanel | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 对首次不直接渲染的panel(或window)是否延时加载页面,注意此属性必须与url属性配合使用方有效。对accordionLayout、borderLayout中默认折叠的panel,cardLayout、tabLayout中默认未激活的panel以及默认不直接显示的window都可使用。 | ||||
| maskDisabled | 定义类 | org.operamasks.faces.component.layout.impl.UIPanel | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 在面板disabled时,是否用直观的方式标识 (默认值:true) | ||||
| maximizable | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否可最大化,默认为false | ||||
| minHeight | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Integer) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的最小高度 | ||||
| minWidth | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Integer) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件的最小宽度 | ||||
| minimizable | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件是否可最小化 | ||||
| modal | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否为model态window,默认为false | ||||
| 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代码 | ||||
| onclose | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| window被关闭时执行的JavaScript代码 | ||||
| plain | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件如何渲染背景。如果设置为true,将渲染透明背景,否则渲染出较浅颜色的背景 | ||||
| rendered | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | boolean(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。 | ||||
| resizable | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 是否可缩放大小 | ||||
| resizeHandles | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 改变大小边框的位置,可选值有n,s,e,w,nw,sw,se,ne,all,默认值为all | ||||
| show | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 初始化是否显示 | ||||
| showTitleOnCollapse | 定义类 | org.operamasks.faces.component.layout.impl.UIPanel | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 在构件收缩后是否显示标题 (默认值:false). 注意:该属性仅在region="north"或者region="south",属性被设置成true时有效 | ||||
| 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"。 | ||||
| url | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件加载页面的url,建议只在accordionLayout、borderLayout、cardLayout、tabLayout、window中使用,最终会渲染成一个iframe | ||||
| width | 定义类 | org.operamasks.faces.component.layout.impl.UIWindow | ||
| 类型 | 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.40. 常用方法
| show | 方法签名 | public void show() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 显示window | |
| close | 方法签名 | public void close() |
| 参数说明 | 无参数 | |
| 返回值 | 无返回值 | |
| 方法描述 | 关闭window | |
| setModal | 方法签名 | public void setModal(java.lang.Boolean value) |
| 参数说明 | 是否是模态窗口 | |
| 返回值 | 无返回值 | |
| 方法描述 | 设置window是否是模态窗口 | |
| setHeight | 方法签名 | public void setHeight(int value) |
| 参数说明 | 窗口的高度 | |
| 返回值 | 无返回值 | |
| 方法描述 | 设置window的高度 | |
| setWidth | 方法签名 | public void setWidth(int value) |
| 参数说明 | 窗口的宽度 | |
| 返回值 | 无返回值 | |
| 方法描述 | 设置window的宽度 |
下面的代码展示如何定义一个window
<w:form>
<l:panelGrid>
<w:button value="默认对话框" id="showDialog1" />
<br />
<br />
<w:button value="关闭" id="close1" />
<br />
<br />
</l:panelGrid>
</w:form>
<l:window height="110" width="300" id="dialog1" title="Greeting">
<w:form>
<center>
<br />
Hello Everybody!
<br />
<br />
<w:button value="OK" style="width:80px" id="close1" />
</center>
</w:form>
</l:window>下面的代码展示如何在Managed Bean中控制window的属性
@ManagedBean(scope=ManagedBeanScope.SESSION)
public class DialogBean {
@Bind
private UIWindow dialog1;
@Action
public void showDialog1() {
dialog1.show();
}
@Action
public void close1() {
dialog1.close();
}
...
}