发行公告 - Apusic OperaMasks - 版本 1.2 Release 修复了Apusic OperaMasks 1.2M2版本以来的BUG并添加部分新功能和特性: ** Bug * 当combo组件的选项的text为""时,高度会变得很小 * 修正tree组件的escapeNodeText属性类型 * 改善extjs风格的客户端校验 * 修正ajax方式下textArea无法更新值的错误 * 修正simpleDataGrid在IE7的checkbox显示偏下问题 * 改善客户端校验中validationEvent属性的支持 * datePicker未提供extjs方式的客户端校验,改用aom内置的客户端校验 * 调整了CheckBoxTree的checkbox位置 ** New Feature * 新增tree组件的rootVisible属性,可以隐藏显示树的根节点 * 新增datagrid的toolbar设置文本功能 * 新增checkboxTree的CHECK_STATE_CHANGED事件 * tree提供一个postCreate属性,用于预设置树节点状态 * 新增了SimpleCheckTreeNode以及示例 ** Known Problem * 非AJAX下的datagrid的分页器出不来 * EditGrid使用时有几个限制:必须要在form内使用,分页不能立刻更新需要调用reload,selectModel必须是cell * datagrid的多选功能还不完善 * 如果从持久层恢复checkboxTree的状态,异步装载树节点可能会导致问题 发行公告 - Apusic OperaMasks - 版本 1.2M2 修复了Apusic OperaMasks 1.2M1版本以来的BUG并添加部分新功能和特性: ** Bug * combo将设置disabled属性绑定el表达式不生效的问题; * paging样式问题; * TextField组件多get一次value的问题; * DataGrid组件在updater中不能正常取数的问题; * 修复了datefield滚动条的bug * combo如果选项为""时的高度问题 * 调用UITree.setRootNode(UITreeNode)会抛出例外 * Tree组件设置image时,允许使用相对路径或绝对路径 * Combo组件遗漏required属性 * 双击带checkbox的树节点,会导致checkbox消失 * 带checkbox的tree在w:form里不能正常工作 * fileupload在w:form未指定id时,会有js错误 ** New Feature * simpleDataGrid组件以及示例 * 增强UIDialog组件的服务端API,增加setTitle,resizeTo,moveTo三个方法 * 提供一个具有默认行为的UIFileUploadProgress组件,用于展示文件上传进度 * Tree组件增加escapeNodeText属性,用于控制是否允许使用html代码展示树节点 * 新增UITree.traverse()方法,用于对树节点进行遍历操作。新增UICheckTreeNode.getCheckedNodes()方法,用于获取所有checked的子节点 * 新增extjs风格的客户端校验 * 完善EditDataGrid,增强校验机制,增加remove,remove(int row)的api,并优化其绑定数据的方式,ditDataGrid的bindBean属性,可以是一个类名称的字符串,也可以是一个Class的实例,如果是一个任意的Object实例,那么检查其是否存在createBean()方法,如果存在,则使用其返回值作为要绑定的bean。 ** Known Problem * 非AJAX下的datagrid的分页器出不来 * EditGrid使用时有几个限制:必须要在form内使用,分页不能立刻更新需要调用reload,selectModel必须是cell * datagrid的多选功能还不完善 发行公告 - Apusic OperaMasks - 版本 1.2M1 修复了Apusic OperaMasks 1.1 Release版本以来的BUG并添加部分新功能和特性: ** Bug * 修复了ManagedBeanPropertyElResolver的错误,当一个属性即标记了@ManagedProperty又有setter的话,会报错 * 改进ForEach对菜单的支持,增加DynamicMenu示例 * 增强UIMenu服务器端API,增加addMenu、addMenuItem、removeMenu、removeMenuItem、removeAll等方法,可以在服务器端动态控制菜单 * 修复在非AJAX下提交乱码的问题 * 修正dataGrid在ie中的内存泄漏问题和CPU占用过高 * 提供ViewDelegate机制,实现了ViewDelegate接口并向ViewDelegateManager注册之后,可以在renderview的时候得到通知,并可通过responseComplete()来组织后续组件的render * 修复了datagrid多次注册datagridViewDelegate的问题 * 修复了新的datagrid取数方式不能记录状态的问题 * 修复在updater中连续两次发送scripter出错的问题 * dateInputColumn日期转换问题 * comboInputColumn回填时显示的是value而不是text * 修正datePicker的时区错误 * 修正了editgrid的dateInputColumn提交日期时少8个小时的bug * tree,treenode组件的faceslet支持 * datefield组件在渲染时,会出现的javascript错误 * 当组件的属性绑定了一个带参数的MethodExpression时,直接设置字符串文本会导致例外抛出 * 修正accordingPanel在facelets下显示不出来的bug ** New Feature * 增强服务器端校验机制、支持以ext形式展现校验错误 * 增强客户的校验机制,当组件设置了clientvalidator的时候,支持以ext形式展示校验错误,并阻止form提交 * 重构rcdemos,优化性能 * 扩展scripter,可以在body里面写脚本 * 重构了widget常用组件的api,加入 UIComponent(UIComponent parent)方式的构造方法,使用起来更加自然 * 升级到Ext1.1.1 * pagingToolbar加上内嵌三种风格:modern,yahoo,google * 让textfield支持密码格式 * 把文档集成到tld文件中,方便在apusic studio中查看组件的属性说明 * 完善UIToolBar组件的api,提供addItem方法,允许在服务器端动态维护toolbar的item * 完善Tree组件API,提供loadAllAsyncNodes,expandAll和collapseAll方法;w:tree新增initAction属性用于tree的初始化 * 重构toolbar和pagingtoolbar组件,使得datagrid可以内嵌w:toolbar和w:pagingToolbar * 增加datagrid的多选功能 * button组件允许设置图片 发行公告 - Apusic OperaMasks - 版本 1.1 Release 修复了Apusic OperaMasks 1.1M3版本以来的BUG并添加部分新功能和特性: ** Bug * 内嵌在其它AjaxUpdater内的子AjaxUpdater,无法被Ajax请求激活。 * dialog组件在IE下有时会阻断页面。 * 由于IE定义全局js变量的方式不兼容ECMAScript,导致在返回Ajax响应时会出现js错误。 * dialog重绘内容的错误 * ForEach组件不能迭代自组件的错误。 * combo在ajax方式下,放在dialog里面render有问题 * 在其他应用服务器中Dialog组件报“属性没有找到”的错误。 * 与Spring集成发生ClassCast错误。 * AjaxScript在AjaxUpdaterx下不工作。 ** New Feature * 增强了树组件api,可动态增删树节点和修改树状态(text,image)。 * 对Tree组件补充了renderKitId为HTML_BASIC的renderer。 * 增加了Tree组件的CheckTreeNode。 * 新增Toolbar组件,能够单独存在,或者嵌在别的组件里面,例如DataGrid。 * 新增EditDataGrid组件,可在线编辑数据。 * EditDataGrid组件及DataGrid组件支持内嵌式工具栏。 * 调整了Grid,Border Layout,Tree组件的服务端API,使其更加的强大方便。 * FileUpload组件可以在服务端进行是否为空的校验。 * 重构build脚本,重新规划发布的产品包形态,原有的jsfdemo目录重构为rcdemos。 * 新增模板布局的例子。 * 增加Toolbar,EditGrid组件的示例。 ** Compatibility * 树组件做了较大重构,基于以前aom版本的应用程序,需要做一些修改才能在aom v1.1中正常工作 1.org.operamasks.faces.component.widget.TreeNode已经被移除, 使用org.operamasks.faces.component.widget.UITreeNode代替它。 2.org.operamasks.faces.component.widget.tree.TreeEventType.CLICK, org.operamasks.faces.component.widget.tree.TreeEventType.DOUBLE_CLICK, org.operamasks.faces.component.widget.tree.TreeEventType.SELECT, org.operamasks.faces.component.widget.tree.TreeEventType.EXPAND, org.operamasks.faces.component.widget.tree.TreeEventType.COLLAPSE被移除, 使用org.operamasks.faces.component.widget.UITreeNode.CLICK, org.operamasks.faces.component.widget.UITreeNode.DOUBLE_CLICK, org.operamasks.faces.component.widget.UITreeNode.SELECT, org.operamasks.faces.component.widget.UITreeNode.EXPAND, org.operamasks.faces.component.widget.UITreeNode.COLLAPSE代替。 3.原来的org.operamasks.faces.component.widget.tree.TreeEventType枚举被重构为 org.operamasks.faces.component.widget.tree.event.TreeEventType接口, 所以以前类似if (event == TreeEventType.CLICK)这样的语句, 需要改为if (TreeEventType.CLICK.equals(event))的形式。 发行公告 - Apusic OperaMasks - 版本 1.1 M3 修复了Apusic OperaMasks 1.1M2版本以来的BUG并添加部分新功能和特性: ** Bug * AJAX模式下,COMBO控件的valueChangeListener无效 * 完全修复borderLayout内嵌ajaxUpdater时,ajaxUpdater不能动态装载含有borderLayout的问题 * AjaxUpdater load url不能带参数 * dialog组件设置modal为true时,有时会阻断整个页面 * 使用ajax请求激活ajax:updater,不能正确显示updater里的内容 * 刷新tree组件时,会出现重复节点 * 修正RegionConfig,showPin的setter和getter属性名不一致 * 重构DateField.value的类型,从java.lang.String改为java.util.Date * 修正Dialog每次提交都触发事件 * TextMenuItem的客户端对象改为Ext.menu.TextItem ** New Feature * 增加fileupload组件 * AjaxUpdater组件支持包含相对路径的文件 发行公告 - Apusic OperaMasks - 版本 1.1 M2 修复了Apusic OperaMasks 1.1M1版本以来的BUG并添加部分新功能和特性: ** Bug * AjaxAction组件从attribute中remove报错(Chart示例的onclick错误) * 嵌套的f:view场景下,重复ID的错误 * 嵌套的f:view场景下,不响应ajax事件 * Dialog组件在非AJAX方式下渲染错误 * Dialog组件在关闭后,服务器端组件状态未更新 * Facelets标签库中不包含panelGrid * Tree组件对Facelets的支持不完善 * ForEach组件rowIndex不正确 ** New Feature * 增加@Bind标记 将ManagedBean的属性绑定到视图对应的组件中,将视图中的数据绑定到MB的实例变量中。 * 增加@Action标记 定义一个action方法,可带有一个id属性,表示视图中的action组件的ID,如果不指定此ID则使用方法名表示组件ID。 另外,@Action标记支持对方式的事件进行绑定。 * 增加@ActionListeners、@ActionListener标记 定义一个Action方法,带有一个id属性,对应视图中的组件ID,可以为组件绑定一个或多个ActionListener。 * 增加@Convert、@ConvertNumber、@ConvertDataTime、@Required、@Pattern标记 在ManagedBean中定义方法,加上此标记后,指定id的组件值,将会经过标注的方法的转换。 * 增加@Format标记 在ManagedBean中定义方法,加上此标记后,指定id的组件值,将会经过标注的方法的格式化。 * 增加@BeforePhase和@AfterPhase标记 方法签名如下: void [methodName](PhaseEvent event) ManagedBean中定义的方法如果符合签名,则会在JSF生命周期中回调这些方法。 * 增加@BeforeRender和@AfterRender标记 PhaseListener的特里,只在RenderResponse阶段触发,一般用于在ManagedBean中做一些初始化动作(类似 PageOnLoad事件),方法签名如下: void [methodName](boolean isPostback) * 增加@DataModel标记 用于对基于UIData的组件进行绑定,比如DataGrid组件、DataView组件、ForEach组件等等。 * 增加@SelectItems、@SelectItem标记 用于对基于UISelectOne和UISelectMany的组件进行数据绑定,如:Combo组件。 * 增加@Validate、@ValidateDoubleRange、@ValidateLength、 @ValidateLongRange标记 数据校验的支持,可在MangedBean的方法上加上此标记并指定id完成对组件的数值的校验,可扩充。 * 增加标签 此标签可以在jsp内指定所绑定的ManagedBean,一个jsp可绑定多个MangedBean。例如: * 支持对Spring的Bean的模型-视图绑定 * 允许使用相对路径导航 * DataView组件支持使用container属性指定其容器元素 * PagingLink组件、PagingToolbar组件实现对DataTable等常规UIData组件执行AJAX方式的分页 * DataGrid组件提供服务器端分页支持 实现服务器端分页支持,只需将实现了org.operamasks.faces.component.widget.page.PagedDataProvider接口的示例绑定到grid 组件的value属性中即可。 当DataGrid组件的翻页时,会自动触发public Object getData(int start, int limit);方法,用户可自行控制从服务器端取数的过程。 * DataGrid组件支持rowIndex变量,属性名为indexVar * ForEach组件支持分页 * 默认兼容页面中嵌套出现标签而不会引发错误 * Combo组件支持onchange事件 * 增加ManagedBean的命名空间支持,可使用“com.youdomain.DemoBean”方式定义ManagedBean的名字 发行公告 - Apusic OperaMasks - 版本 1.1 M1 修复了Apusic OperaMasks 1.0.2版本以来的BUG并添加部分新功能和特性: ** Bug * DataGrid组件双击,绑定的行不正确。 * 解决DataModel被调用多次的问题。 ** New Feature * 增强@ManagedProperty标注,当一个field定义了@ManagedProperty之后,可以不必定义get和set方法。 * 直接将session bean作为managed bean使用,例如: @Stateless @ManagedBean(name="hello") public class HelloEJB implements Hello { public void sayHello() { } } 则可以使用EL表达式#{hello.sayHello}调用EJB方法。 * 增加@Bind标签,用于将EJB的field与jsp页面进行绑定,例如: @Bind(value="#{view.result.value}", fillback=true) private int result; 使用此标注时必须同时为EJB定义拦截器org.operamasks.faces.ejb.FacesInterceptor * 支持Facelets。 * 集成Spring。可以直接引用Spring的EL表达式,也可以在Spring中引用ManagedBean。 * 增加Dialog组件。 * 为w:page组件增加loadMask属性,可用于页面装载的过渡。 * 资源注入接口剥离,目前支持在Apusic和Tomcat中进行资源注入。 发行公告 - Apusic OperaMasks - 版本 1.0.2 修复了Apusic OperaMasks 1.0.1版本以来的BUG并添加部分新功能和特性: ** Bug * 日期组件可以选择年。 * 在tomcat 6,抛出setVar(String)参数不匹配例外。 * DataGrid组件不是按照数值大小排序,而是按照字符串排序。 * TextField不能正确应用converter子标签。 * DrawImage组件在Tomcat6.0下抛出IllegalStateException的问题。 * CalcNumberField组件不能正常显示的问题。 ** New Feature * AOM内置的Ext升级到Ext1.1版本。 * 允许在里嵌套,仅最上层的会生效。 * DataGrid组件增加ondblclick事件。 ** Known Problem * pagingLink组件和h:dataTable绑定时候,本版本只支持以非Ajax方式工作。 发行公告 - Apusic OperaMasks - 版本 1.0.1 修复了Apusic OperaMasks 1.0版本以来的BUG并添加部分新功能和特性: ** Bug * DataGrid组件在客户端排序后,行号与服务器端行号不能对应的问题; * BorderLayout组件默认情况下不能正常显示的问题; * AjaxUpdater组件在页面刷新时重复Render两次的问题; * DataGrid组件和DataView组件的clientId在大并发情况下,render出的div中的id与javascript中引用的id不一致的问题; * AjaxAction组件在UIData子组件下面action属性不工作的问题; * Combo组件emptyText无效的问题; * 覆盖FaceletSet中的某个Facelet会改变原FaceletSet中Facelet顺序的问题。 * 对于定义faceletSet的xml文件的改动,在某些服务器上不能及时反应的问题。 * FaceletSet在构建Facelet时,如果有Facelet的src属性指定了一个外部文件,依然构建标签下的直接内容的问题。 ** Known Problem * 由于AjaxUpdater组件对客户端来说是一个html,因此AjaxUpdater组件内不能直接使用click来预期在updater内部导航;