31.16. <layout:window>

window渲染成一个窗口,常用于弹出窗口或者弹出面板。

31.16.1. 构件信息

表 31.38. 构件信息

Component Typeorg.operamasks.faces.component.layout.impl.UIWindow
Component Familyorg.operamasks.faces.component.layout.impl.UIPanel
Component Classorg.operamasks.faces.component.layout.impl.UIWindow
Tag Classorg.operamasks.faces.webapp.layout.UIWindowTag
Renderer Typeorg.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.16.2. 属性

表 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.16.3. 构件API

31.16.3.1. UIWindow(window的构件类)

表 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的宽度

31.16.4. 示例

下面的代码展示如何定义一个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(); 
    } 
    ... 
}