发行公告 - 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内部导航;