Dorado 5 : 17.7 更新日志

================================================================================
server: 5.4 110815.1633
studio: 5.4 110812.1202

# 为SampleCenter添加一批场景范例。
# 为SubWindow新增onTitleDblClick事件。
# 为copyRecord事件新增supportEvents参数。
# 为DataTable新增onCellPaste事件。
# 为DataTable新增批量复制功能,例如可以从excel中复制到DataTable中。
# 为DataTable新增supportsRangePaste属性,用以控制表格的批量复制功能。
# 为DataTable的表格鼠标滚动传递效果,添加全局配置,对应preferences.js中__DataTable_WheelScrollEvent_Bubble。
# 为AutoForm中GroupBox以SubWindow显示时的系统按钮提供全局配置,对应Setting.xml中view.autoform.subwindow.buttons。
# 为DropDown增加icon属性,允许用户自定义DropDown的图标。
# 为DropDown增加getSubWindow方法
# 为EL表达式的Util隐式变量增加了isNull和isNotNull方法。
# 为ViewModel的safe属性增加全局设置的默认值的功能,对应setting.xml中的view.defaultSafe属性。
# 改进静态表格的数据展示功能,新的静态表格支持无限层表头定义。

# 取消cacheViewModel处理机制,使之更适合LoadRunner之类的测试工具。

# 改进内存管理机制。
# 改进Request与线程绑定后不能及时释放的不足。
# 改进Cache和Outputter等的处理机制,优化性能。
# 改进DropDown的autoDropDown为true下的操作效果。
 # 改进方言中getCountSql的处理,MySql4,5 DB2与Oracle并不相同。
# 改进在FF4,FF5下innerText的支持处理方式,提高兼容性。
# 改进DropDown在IE下高度自适应问题。
# 改进分组表格渲染机制,使可分组的Column允许使用onRefresh事件。
# 改进DataTable渲染机制,提高DataTable在FF3和低配机器上的渲染性能。
# 改进dataset的insertRecord机制:新机制在dataset分页情况下,默认插入的记录的pageIndex为当前分页。
# 改进Portal环境下跨域脚本问题,在preferences.js中添加变量var __skipFocusFrameBroadcasting = true。
# 改进DataTable竖向滚动栏的tooltip显示机制,如果希望一直显示可在preferences.js中添加变量var __DataTable_SCROLLBAR_ALWAYS_SHOWDRAGGINGTIP = true。

# 修正了注册两个beforeExecute事件的command,在执行时,第一个beforeExecute事件return false后,后面的beforeExecute仍继续执行的问题。
# 修正了含有锁定列的TreeGrid使用鼠标单击时,容易引起锁定列与非锁定列之间行对其问题。
# 修正了AutoForm中Group采用SubWindow形式显示,且默认为"minimize"状态,在页面初始化后无法最小化的问题。
# 修正了DataTree节点拖拽时,将节点拖拽到顶节点之上出现被拖拽节点无法释放的问题。
# 修正了Record.toDO()过程中,当对应的POJO当含有多个子对象,且Record对应的部分field的值为空时,POJO无法准确赋值的问题。
# 修正了IE6,IE8下CustomDropDown采用SubWindow弹出窗口后,易出现空白窗口,且无法关闭的问题。
# 修正了初始状态为hidden的SubWindow中如果含有一个绑定menu的button无法被正确渲染的问题。
# 修正了dataset在未定义beforeSelectionChange事件情况下无法触发afterSelectionChange事件的问题。
# 修正了Studio在JDK1.6下多个标签页无法关闭的问题。
# 修正了客户端Subwindow背后的半透明遮罩在框架有滚动条是的显示问题。
# 修正了RadioGroup的getLayout不生效的问题。
# 修正了Record中数据类型为number时,且oldValue为空,在数据提交时被处理为NaN的问题。
# 修正了SplitPanel的onActive事件没有生效的问题。
# 修正日期下拉框onTodayClick事件在FireFox下出错的问题。
# 修正GroupBox的setTitle在Firefox下不起作用的问题。
# 修正了Firefox下表格只读情况下,使用上下方向键会引起表格连续滚动两行的问题。
# 修正了Export2ExcelCommand无法重复设置dataset并导出数据的问题。

================================================================================
server: 5.3 090604.1636
studio: 5.3 080902.1647

# 修正cachable设置为false并设置warmUpDelay属性,会弹出不有好的提示信息的BUG。
# 修正DataTable在无记录下通过Ctrl+insert快捷键增加记录报错的BUG。
# 改进了MapValue的DropDown,当用户输入了列表值之外的信息时的显示方式。举例说明,dropdown支持MapValue其中有3个下拉项:1=A;2=B;3=C;如果用户手工输入的其中不支持的值,例如4,那么,下拉框并不会像之前那想什么都不显示,而是显示一个(4)。
如果需要关闭此种新功能,可到相应的dorado皮肤目录下找到preferences.js文件在其中增加一行:var __ShowInvalidMapValue = false;
# 修正QueryCommand以Get方法向服务器端提交数据的时候,null值会被错误传递的BUG。
# 修正DetailDataset在某些情况下TextEditor的数据无法即时刷新的BUG。

================================================================================
server: 5.3 090513
studio: 5.3 080902.1647

# 修正了Password输入框的自动提示(tooltip)功能。
# 修正了double Field的数据无法toDO到BigDecimal类型的属性中的问题,解决方案:在Setting.xml中添加一个名为fixBug_090506的属性,设置为true。
# 修正了DataTable当ShowVScrollBar=true时的显示问题。
# 修正了TreeGrid中的onRefresh事件定义后导致展开按钮出现两次的BUG。

================================================================================
server: 5.3 090430.1830
studio: 5.3 080902.1647

# 修正了Field的DefaultValue在服务端对非新增记录也生效的BUG,由于此问题可能涉及兼容性,因此要修正需在Setting.xml增加一个fixBug_090423属性并将值设置为true。
# 修正了TreeGrid中的可扩展列不能支持文本折行的BUG。
# 修正了dorado包中的守护线程未以守护模式运行的BUG。

================================================================================
server: 5.3 081030.2301
studio: 5.3 080902.1647

# 修正了SplitPanel无法在Firefox中正常工作的BUG。
# 修正了CustomDropDown无法在Firefox中正常工作的BUG。
# 修正了DBDataset在Oracle下执行分页查询时偶尔出现排序问题的BUG。
# 改善了DataTable在客户端的内存使用情况,避免长时间使用后性能下降。
# 修正Studio在Informix中无法列出数据库中表名的BUG。
# 修正SubWindow的beforeShow、afterShow等事件在部分情况下无法触发的BUG。

================================================================================
server: 5.3 080724.1506
studio: 5.3 080724.1540

# 修正了5.2中开始出现的带有常显下拉按钮的编辑框在部分情况下高度始终为0的BUG。
# 修正了5.2版本中DataTable的FilterBar和DataBlock导致IE6下内存泄露的BUG。
# 改善了对IFrame的支持,使得dorado能够在大量使用IFrame的页面中正确的处理编辑框之间的焦点转移。
# 大幅度提高了dorado在执行ViewModel的XML解析时和对POJO进行反射操作时的运行效率。配置此项改进今后的Dorado将依赖于cglib,请注意检查您的项目中是否已部署了cglib.jar、asm.jar这两套开源库。
# 已支持利用ehcache增强dorado的缓存功能,只要将ehcache的jar包部署到运行环境中,dorado就会自动启用ehcache来实现内部的缓存管理。
# 优化了具有较多栏位的AutoForm在客户端的初始化效率。
# 在原先UpdateCommand和RPCCommand支持$message特殊输出参数的基础上,有增加了对$javascript特殊输出参数的支持:
* $message 自动在Command执行成功后提示该参数的内容。
* $javascript 自动在Command执行成功后执行该参数中定义的脚本。
# 为MenuItem增加的toolTip属性。
# 改进了AutoForm的功能,允许AutoForm中的各个Group或Element绑定不同的Dataset。
# 为dorado提供了利用top框架共享下拉框的功能。即将那些常用的下拉框对象定义在整的应用的top框架中,子页面(页面界面)可以直接引用top框架中的共享下拉框。使用方法如下:
* 将本次更新一同提供的topframe-support.js放入home/smartweb/v2/lib中,并在javascript-lib.xml进行配置。
* 在top框架对应的ViewModel的<<functions>>中添加下面的JavaScript:

var oldSystemGetControl = systemGetControl;
systemGetControl = function(id, namesapce) {
var control = oldSystemGetControl(id, namesapce);
  if (control != null) {
    if (control instanceof DatasetDropDown) {
      var dataset = control.getDataset();
      if (dataset != null && !dataset.dataLoaded) {
        dataset.dataLoaded = true;
        dataset.flushData();
      }
    }
  }
  return control;
}

* 将需要共享的下拉框定义在top框架对应的ViewModel中(注意:如果使用DatasetDropDown,需将其绑定的Dataset的autoLoadData设为false;对于其他类型DropDown没有特殊要求)
* 当子页面需要引用top框架中的下拉框时,须在下拉框的id前加'#'。例如:top框架中定义了dropdownXXX,子页面应通过#dropdownXXX来引用该下拉框。

================================================================================
server: 5.2 071218.1550
studio: 5.2 071127.1604

# 注意:在使用此jar包升级项目时,需要一同升级dorado的皮肤。
* 如果您还没有定义过自己的皮肤,可以直接将安装目录下sample/home/smartweb/v2/skins中的文件全部覆盖到项目的home目录中的相应位置中。
* 如果的项目正在使用自行定义的皮肤,那么您至少需要向您的皮肤目录中追加一些文件,将安装目录下sample/home/smartweb/v2/skins/default中所有新增加的文件(您的皮肤目录中不具备的文件)复制到您的皮肤目录中。

  • 大幅改进了dorado对Mozilla/Firefox的兼容性,正式提供对Mozilla/Firefox(包含非Windows版本)的兼容。
  • 增强了皮肤文件中skin.css的处理机制,使开发人员可在其中使用Velocity的语法来编写更加复杂的CSS。例如针对不同的浏览器给出不同的CSS定义:
      \#if ($BrowserType == "IE")
        filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30);
      \#else if ($BrowserType == "MOZILLA")
        -moz-opacity: 0.30;
      \#end
    
  • 新增了两份文档:
    * 喝喝茶编编程使用dorado基础技术进行Web应用开发 v1.0.doc
    * dorado 5 ExcelReport 使用手册 v0.9.doc
  • 新增了DataBlock控件。
  • 改进dorado界面对回车键和Tab键的处理控件焦点的机制。
  • 为DataTable、Tree、TextEditor等控件提供了onKeyDown事件。
  • 开放了JavaScript中的setFocusControl(control)函数,使得用户可以更加灵活的控制控件焦点。在多数情况下setFocusControl(control)的运行效果都优于DHTML中标准focus()方法。
  • 改进了DatasetDropDown的索引重建机制,使DatasetDropDown可在更广的场合完成mapValue的翻译功能。
  • 改进了下拉框按钮的显示模式,在新的版本中编辑框上的下拉按钮将可以始终显示。(要启用此新特性,需要对皮肤文件进行更新)
  • 为DataTable新增了dynaRowHeight属性,设置此属性后后使表格的行高根据内容自动增长。此效果可在"全新设计的表格"示例中看到(尝试在表格"备注"列中输入一下多行的文本)。
  • 修正了StaticTable控件无法使用的BUG。
  • 新增了两个示例:
    * 数据块
    * 静态表格

================================================================================
server: 5.1 070924.2200
studio: 5.1 070706.0006

  • 修正dorado页面偶尔在iframe中显示为空白页面,再次刷新又回复正常的BUG。
  • 修正当QueryCommand查询时如果conditionDataset为空将报错的BUG。
  • 改进DataTable中常出现Stack Overflow的问题。
  • 为DataTable增加了两个属性:
    * supportsMouseWheel 是否相应鼠标的滚轮操作
    * columnDraggable 是否允许通过拖拽调整列的顺序
  • 改进${Util.getDate()}表达式的功能,etc:
    * ${Util.getDate("yyyy-MM-dd", "y", 1)} 当前时间后推1年
    * ${Util.getDate("yyyy-MM-dd", "M", -3)} 当前时间前推3月
    * ${Util.getDate("yyyy-MM-dd", "d", 10)} 当前时间后推10天
    * ${Util.getDate("yyyy-MM-dd", "w", -1)} 当前时间前推一周
    * ${Util.getDate("yyyy-MM-dd", "s", -10000)} 当前时间前推10000秒

================================================================================
server: 5.1 070816.2157
studio: 5.1 070706.0006

  • 修正AutoSqlDataset的autoProccessParameters对日期型参数支持不佳的问题。
  • 改进了Export2ExcelCommand的功能,支持Excel模版功能。
  • 新增了Excel报表功能,及相应的10个示例。

================================================================================
server: 5.1 070724.2131
studio: 5.1 070706.0006

  • 改进了doradosample,同时提供了5个新的示例:
    * 数据分组表格
    * JFreeChart图表中的4个新示例
  • 改进了Export2ExcelCommand,使之能够导出通过ListDropDown或DatasetDropDown而得到的显示值。例如对于性别列,新的Export2ExcelCommand将能够导出"男"、"女",而不是之前的"true"、"false"。
  • 为Export2ExcelCommand增加了dataMode属性,该属性有如下4种取值:
    * server-all(默认): 在服务端重新执行该Dataset,并导出结果集中的全部数据。
    * server-current-page: 在服务端重新执行该Dataset,并导出当前页的数据。
    * client-visible: 不在服务端重新执行该Dataset,导出当前客户端Dataset中所有可见的数据(除被删除记录外的全部数据)。
    * client-selected: 不在服务端重新执行该Dataset,导出当前客户端Dataset中所有被选中的数据。
  • 为AutoSqlDataset的JoinTable新了两种关联方式。现有4中关联方式可共选择:LEFT_OUTER_JOIN、RIGHT_OUTER_JOIN、INNER_JOIN、SELECT_EXPRESSION。
  • 改进了TreeNode的addNode方法,其定义变为addNode(node, mode, refNode)。新的方法将可以支持在树中的任意位置插入节点。
  • 更新了QueryCommand的事件定义方式。在新的方式中,当查询失败时QueryCommand将触发其onFailure事件。
  • 为Dataset的MasterDetailLink增加了preloadDetail属性,已支持在页面打开时一次性的装载从Dataset中所有的数据。注意:使用此特性可能导致页面效率急剧降低。
  • 为DataTable的DataColumn增加了groupable属性,用于支持类似数据分组显示的功能(即在显示时省略重复数据)。
    使用前请一同更新最新的Dorado皮肤,或手工在皮肤的CSS文件中手工添加下面的段落,该段落用于指定被省略的单元格的显示风格。
    每个组的第一个单元格
        .DataTable .DataGrid .FirstGroupCell {
          border-color: white;
          border-top-style: solid;
          border-bottom-style: none;
        }
    
    每个组中省略显示的单元格
        .DataTable .DataGrid .OmittedGroupCell {
          border-color: white;
          border-top-style: none;
          border-bottom-style: none;
        }
    
    每个组的最后一个单元格
        .DataTable .DataGrid .LastGroupCell {
          border-color: white;
          border-top-style: none;
          border-bottom-style: solid;
        }
    
  • 调整了ViewModel中getDataset方法的内部实现,避免了5.1 070608.1632版本中之后出现的在提交时无法通过getDataset获得所有Dataset的不兼容现象。
  • 修正RadioGroup在不绑定Dataset的情况下无法被编辑的BUG。
  • 修正了在极高压力的测试环境偶尔可能出现同步异常的BUG。
  • 修正了Field的valueProtected属性在AutoForm中无法生效的BUG。
  • 修正了在datetime类型的Field中使用${Util.getDate("yyyy-MM-dd HH:mm:ss")}时,Server端出现异常的BUG。
  • 修正了OutlookBar中的按钮偶尔不响应鼠标点击的BUG。
  • 修正了TreeLevel中的pathField属性不生效的BUG。

================================================================================
server: 5.1 070620.1846
studio: 5.1 070616.1039

  • 为UpdateCommand增加了reduceReturnInfo属性,表示简化提交处理的服务端返回信息,用于优化那些不需要关注提交记录在服务端的状态和数据变化的大数据量提交操作。
  • 改善Ajax操作中对闭包函数的处理方式,以避免在IE中使用闭包函数调用而产生的内存泄露问题。
  • 修正在UpdateCommand中只提交从Dataset而不提交主Dataset时容易出现NullPointException的BUG。
  • 修正5.1 070616.1055版本中出现的对Marmot0.9.3的兼容性问题。

================================================================================
server: 5.1 070616.1055
studio: 5.1 070616.1039

  • 修正dorado studio无法下载较大的更新包的BUG。
  • 修正dorado studio无法对包含中文标题字段的Dataset执行自动创建字段动作的BUG。

================================================================================
server: 5.1 070608.1632
studio: 5.1 070604.1723

  • 新增四份文档《dorado 5 快速入门 v1.1》、《dorado 5 用户指南 v1.1》、《dorado 5 组件详解 v1.1》、《dorado 5 性能指南 v1.0》
  • 为SplitPanel、SubWindow增加动画显示效果。
  • 增加表格的行拖动功能,可设置DataTable的rowDraggable属性进行测试。
  • 为数据表格增加过滤栏功能,可通过设置DataTable的showFilterBar属性进行测试。对于绑定AutoSqlDataset的表格,只需设置autoProcessParameters属性就可以自动支持过滤功能;而对于其他类型的Dataset,开发人员则需要手工的处理过滤参数。过滤参数总是以与字段名相同的名字设置在Dataset的参数集中。
  • 为数据表格增加服务端数据排序的支持,可设置DataTable的localSort属性为false进行测试。绑定AutoSqlDataset的表格可以自动支持此功能;而其他类型的Dataset则需要手工进行处理,DataTable 会在需要进行排序时向Dataset中传递dorado.sortField和dorado.sortMode这两个参数,分别表示要排序的字段和排序方式。
  • 改进下拉编辑框中下拉按钮的显示方式,在新的版本中下拉按钮将在鼠标悬停于编辑框中时自动显示。
  • 改进菜单下拉按钮(即绑定菜单的按钮)的显示方式。
  • 增强对Oracle数据库的支持,使dorado Studio在使用过程中可以自动提取字段存储于user_col_commnents中的字段标题信息。使用前请将dorado安装目录中的/support/oracle/datasets.xml复制到项目的home目录中。
  • 新增com.bstek.dorado.data.KeyGenerator接口用于在Dataset试图持久化新的记录时为记录生成主键值,用户可自行扩展一个KeyGenerator的实现类并将其配置到setting.xml文件data.keyGenerator属性当中。使用时须在需要使用此功能的字段的properties中增加一个属性,名为keyGenerator,其值为将要传给KeyGenerator.getKey方法的自定义参数(可以为空)。
    * dorado中现已包含一个用于调用Oracle Sequence的KeyGenerator实现类(com.bstek.dorado.data.db.dialect.OracleSequenceKeyGenerator),使用时只要在keyGenerator属性中提供Sequence的名称即可自动生成新的键值。
  • 为MenuBar提供对分割线的支持并改进菜单的显示方式。
  • 为UpdateCommand新增了ALL_VISIBLE提交方式,表示提交所有可见的记录(即不提交已删除的记录和被onFilterRecord事件过滤掉的记录)。
  • 改进RequestCommand对get方式下中文参数的支持。
  • 改进ProgressBar,使之可以支持带有小数位百分比的显示。
  • 修正只读列中的CheckBox、RadioGroup等renderer仍可编辑的BUG。
  • 修正GroupBox在多次展开与收缩之后尺寸不断变大的BUG。
  • 修正编辑框在经过下拉之后无法随页面尺寸变化自动调整布局的BUG。
  • 修正在极少数情况下发生的客户端日期与服务端日期不一致的BUG。
  • 修正OutlookBar的currentGroup属性在部分情况下不生效的BUG。
  • 修正DataTable在进行一系列操作之后偶尔出现列头与行无法对齐的BUG。
  • 修正DynamicDropDown的filterOnOpen属性不生效的BUG。
  • 修正ViewModel实现类中的提交方法在抛出异常时会被执行两次的BUG。
  • 修正当树的节点深度超过9层后容易出现Stack Overflow异常的BUG。

================================================================================
server: 5.0 070116.1819
studio: 5.0 061229.1512

  • 为DatasetDropDown新增了startWithEmptyRecord属性,用于自动为下拉框添加一个空白行。同时可以在home\i18n\smartweb\v2\client_XXXX.properties中添加一个__DROPDOWN_EMPTY_ITEM项,可用于配置空白行显示的文字。
  • 修正070108.1209版本中出现的MarmotRPCCommand无法使用的BUG。
  • 修正Export2ExcelCommand不支持Dataset.parameters()的BUG。

================================================================================
server: 5.0 070108.1209
studio: 5.0 061229.1512

  • 为ViewModel新增了3个方法
    * initDataset(ViewDataset) 当ViewModel初始化某一个Dataset时触发的方法, 参数中传递的是正在被初始化的Dataset。
    * initControl(Control) 当ViewModel初始化某一个Control时触发的方法, 参数中传递的是正在被初始化的Control。
    * doLoadData(ViewDataset) 当ViewModel为某一个Dataset装载数据时触发的方法。该方法的作用类似于DatasetListener中的beforeLoadData和afterLoadData。
  • 新增了两个控件MarmotUpdateCommand和MarmotRPCCommand。
  • 新增对用户定义的JavaScript库的支持。只要将外部的JavaScript库文件复制到dorado-home/smartweb/v2/lib中,并在dorado-home中添加一个名为javascript-lib.xml的配置文件,例如:
    <?xml version="1.0" encoding="UTF-8"?>
    <libraries>
    <library name="user" path="user.js" />
    </libraries>
    这样,dorado就会自动为所有dorado页面添加对user.js的引用。
  • 修正部分情况下执行RPC调用或数据下载时,在客户端的参数中设置的'+'到服务器端变成' '的BUG。
  • 改进了LengthValidator的校验逻辑,新的LengthValidator可以将汉字识别为双字节字符。
  • 修正了5.0 061119.2050中出现的RPC调用在Mozilla下无法运行的BUG。

================================================================================
server: 5.0 061129.1132
studio: 5.0 061126.0029

  • 修正部分浏览器中打开dorado debugger时出现浏览器崩溃的BUG。
  • 修正5.0 061119.2050中出现的DataTable.SimpleTreeLevel在某些情况下无法打开下一级节点的BUG。
  • 优化了客户端对XML懒解析的处理方式。
    经此调整SampleCenter中"/性能测试/大数据量展示"在页面打开中拖动表格纵向滚动条时的停滞感明显减轻,同时"/性能测试/大数据量复制"的性能有了>50%的提高。
  • 为DynamicDropDown和CustomDropDown增加了warmUpDelay属性。warmUpDelay表示自动预热的延时时间。
    由于此两类下拉框都是由一个独立的页面构成的,打开一个此类下拉框相当于请求一个页面。因此在第一次开打时可能会有明显的停顿感。为了改善用户体验,我们可以在用户操作此类下拉框之前对其经行预热。
    注意:此处延时时间的单位为0.1秒,即warmUpDelay=20表示两秒。如果warmUpDelay=0表示不启用自动预热功能。
    (SampleCenter中"/控件体验/录入辅助"中的此两类下拉框已启用了warmUp功能)。
  • 新增了Export2ExcelCommand控件,用于实现Excel的数据导出功能。
    同时增加了新的示例"应用技巧/其它/Excel数据导出"。

================================================================================
server: 5.0 061119.2050
studio: 5.0 061116.2343

  • 修正界面上偶尔出现的下拉框打开即自动关闭的BUG。
  • 修正5.0.0 060804.1507版本中开始出现的dorado无法正常输出部分调试信息的BUG。
  • 为基于dorado的应用增强了对GZIP的支持,新增了com.bstek.dorado.core.GZIPEncodingFilter用于对JSP等资源启用GZIP,可对JSP的下载过程节省近80%的网络流量。
    WEB.xml的配置方法如下:
    <filter>
    <filter-name>GZIPEncoder</filter-name>
    <filter-class>com.bstek.dorado.core.GZIPEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>GZIPEncoder</filter-name>
    <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
  • 为Tree新增了getFirstRootNode(), getLastRootNode()两个Client方法。详见Client-API。
  • 为TreeNode新增了getPreviousSibling(), etNextSibling(), getFirstChild(), getLastChild(), getPreviousNode(), getNextNode()五个Client方法。详见Client-API。
  • 为DataTable新增supportsPropertiesWindow属性。详见Client-API。
  • 优化了Dataset.flushData操作,优化后的性能视界面复杂程度可提高5%-50%。
  • 优化了DataTable对鼠标滚轮的支持,优化后的表格不会在滚动时频繁触发Dataset的AfterScroll等事件。
  • 改进dorado产生ViewInstanceId的机制,避免LoaderRuner等工具无法正常测试dorado应用的的问题。
  • 改进dorado中AutoSqlDataset产生的SQL,提高SQL在数据量较大时的性能表现。例如:新的AutoSqlDataset可产生下面这样的SQL命令:
    SELECT
    employee.employee_id,
    employee.employee_name,
    employee.dept_id,
    (SELECT dept_name FROM dept WHERE dept_id = employee.dept_id) as dept_name
    FROM
    employee
    

可以通过AutoSqlDataset中JoinTable的joinMode属性来打开或关闭上面的特性。同时新的AutoSqlDataset可自动根据功能需要尽可能的减少SQL中需要JOIN的表。

================================================================================
server: 5.0 061010.2202
studio: 5.0 061007.1540

  • 改进LengthValidator的校验方式,支持自动设置Input的maxLength属性。
  • 修正在061008.1548中出现的parseDate函数的BUG。
  • 修正061008.1548中出现的ViewModel中doUpdateData(ParameterSet)无法激活的BUG。

================================================================================
server: 5.0 061010.0048
studio: 5.0 061007.1540

  • 修正在5.0 061008.1548中出现的部分Sample不无运行的BUG。
  • 修补PagePilot的跳转框没有对用户输入的非法页码进行校验的不足。
  • 进一步修正修正Tree在展开节点时新节点偶尔被不正确的添加到树的末尾的BUG。
  • 修正添加记录操作因为上一条记录Post失败而被终止后Dataset中多出一条不可见记录的BUG。
  • 修正QueryCommand的Paramemters不能从XML中读取的BUG。

================================================================================
server: 5.0 061008.1548
studio: 5.0 061007.1540

  • 在doc子目录中新增"组件使用技巧.doc"。
  • 在Studio中增加了对Marmot框架的支持(用于与Spring集成的简单框架)。
  • 改善了下拉框和菜单在尺寸较小的窗口中的定位方式。
  • 改善了Studio的登录功能,避免使用时出现的不必要的登录操作。
  • 支持以在WEB-INF/dorado.properties文件中添加xmlProcessorClassName配置项的方式定义dorado内部使用的XML解析器。
    例如:xmlProcessorClassName=com.bstek.dorado.utils.xml.dom4j.Dom4jXmlProcessor
    或 xmlProcessorClassName=com.bstek.dorado.utils.xml.jdom9.JDomXmlProcessor
    或 xmlProcessorClassName=com.bstek.dorado.utils.xml.jdom10.JDomXmlProcessor
    如不定义此项, 则系统仍将按原先默认的顺序依次搜索jdom9, jdom10, dom4j。
  • 为RequestCommand增加method属性使之支持以POST方式打开新的页面。
  • 为Client端EventManager对象增加了clearDoradoEvent方法。
  • 修正Dataset.find和Dataset.copyRecord方法对字段大小写敏感的BUG。
  • 修正validator验证失败后引起光标不停跳转的BUG。
  • 修正一个Dataset下关联多个从Dataset时,删除主表记录报错的BUG。
  • 修正DataPilot在Dataset没有记录时,delete按钮还可以操作的BUG。
  • 修正CustomDropdown用subwindow模式打开时无法设置打开窗口的大小的BUG。
  • 修正bigdecimal类型的字段不支持格式化的BUG。
  • 修正GroupBox的输出的HTML标签不匹配的BUG。
  • 修正Tree在展开节点时新节点偶尔被不正确的添加到树的末尾的BUG。
  • 新增了三个新的示例:
    * 功能测试/数据表格属性
    * 功能测试/数据表格事件
    * 功能测试/数据表格CSS

================================================================================
server: 5.0.0 060829.2213 STD
studio: 5.0.0 060825.1204 STD

  • 新增了com.bstek.dorado.data.PagingHelper工具类用于简化对数据分页的计算。
  • 为Tab增加了autoScroll属性。
  • 为com.bstek.dorado.view.ViewModelCacheInfo对象实现了Serializable接口。
  • 为RequestCommand中的Frame子对象新增了_exclusive_subwindow类型的target。
  • 改进了RequestCommand和CustomDropDown以SubWindow方法打开时的显示效果
  • 新增了三个新的示例:
    * 应用技巧/数据处理/ResultSet导入
    * 应用技巧/数据处理/VO数据交换1
    * 应用技巧/数据处理/VO数据交换2
    * 应用技巧/典型界面/联动下拉框

================================================================================
server: 5.0.0 060821.0005 STD
studio: 5.0.0 060821.0010 STD

  • 修正Client端Dataset.find方法无法使用的BUG.
  • 修正表格中纵向滚动条偶尔定位不准的BUG.
  • 修正Studio无法完成自动在线升级的BUG.
  • 改进了OutlookBar控件,增加了新的OutlookBarGroup标签。新的OutlookBar可以支持自定义的内部元素.
  • 改进了AutoForm控件,增加了新的FormElementRenderer标签。可以支持自定义Element的内部元素.
  • 为Dataset.flushData,RPCCommand.execute, RequestCommand.execute这三个方法增加了回调函数参数,以改善它们对异步方法的支持。
  • 为RadioGroup控件增加了layout属性.
  • 简化了doradohome中的配置文件.
  • 新增了showLoadingTip()和hideLoadingTip()两个全局函数用于显示异步处理的提示信息。
  • 新增了三个新的示例:
    * 应用技巧/布局/Outlook栏
    * 应用技巧/典型界面/GoogleMap集成
    * 测试/大数据量复制

================================================================================
server: 5.0.0 060809.1312 STD
studio: 5.0.0 060802.1056 STD

  • 修正Client端formatFloat在格式化较小的小数时的BUG.
  • 修正DropDown的fixed属性不生效的BUG.
  • 修正UpdateCommand中deleteSelectionOnSuccess属性无法使用的BUG.
  • 修正Dataset的afterChange事件中oldValue参数不正确的BUG.
  • 修正TabSet在宽度过小时无法显示横向滚动按钮的BUG.
  • 为Mozilla浏览器实现了AJAX机制.
  • 调整了Dataset的afterFlushData事件和RPCCommand的onSuccess事件,使其可以支持AJAX方式。
  • 为Client端Dataset新增了insertRecords方法,用于提高批量添加记录时的效率。

================================================================================
server: 5.0.0 060804.1507 STD
studio: 5.0.0 060802.1056 STD

  • 在Setting.xml中增加了两个配置项view.smartweb2.checkbox.defaultOnValue和view.smartweb2.checkbox.defaultOffValue用于配置系统默认的CheckBox的onValue和offValue.
  • 调整了Menu的onRefreshItem事件,使其可支持用户自定义菜单项的显示方式.
  • 改善了部分错误信息的可参考性.
  • 修正dorado studio中无法复制粘贴Field, Parameter等对象的BUG.
  • 修正非数据绑定的编辑框无法设置readOnly属性的BUG.
  • 重命名了1个属性: UpdateCommand.showDialog --> UpdateCommand.showLoadingTip
  • 增加了两个属性:
    * ViewDataset.showLoadingTip
    * QueryCommand.showLoadingTip
  • 为SampleCenter添加一个新的示例:
    * 示例中心/dorado5新特性/AJAX特性

================================================================================
server: 5.0.0 060712.1952 STD BETA
studio: 5.0.0 060712.1602 STD BETA

  • 修正RecordTreeLevel的iconField和expandedIconField未生效的BUG.
  • 修正dorado studio在Window2000下偶尔无法正常使用的BUG.
  • 修正Client Dataset在只有一条记录时isFirst,isLast的状态偶尔不正确的BUG.
  • 优化dorado内建的文件下载机制,避免偶尔出现的java.net.SocketException: Connection reset by peer: socket write error的异常.

================================================================================
server: 5.0.0 060710.1455 STD BETA
studio: 5.0.0 060616.1744 STD BETA

  • 修正TreeGrid中的单元格偶尔无法激活的BUG.
  • 大大改善了对Mozilla浏览器的兼容性.
  • 为Dataset增加了两个Client端方法:
    * isShowDialog()
    * setShowDialog(Boolean showDialog) 设定执行flushData()等动态数据加载功能时是否显示提示窗口。默认值为false。
  • 为SampleCenter添加一个新的示例:
    * 应用技巧/典型界面/动态数据树

================================================================================
server: 5.0.0 060703.1203 STD BETA
studio: 5.0.0 060616.1744 STD BETA

  • 重命名了3个Client方法:
    * establishBanding --> establishBinding
    * disableBanding --> disableBinding
    * enableBanding --> enableBinding
  • 修正UpdateCommand提交信息中Dataset.parameters等未被解析的BUG.
  • 修正EL表达式未将逃逸字符'\'本省隐去的BUG.
  • 修正Dataset在调用insertRecord("end")时引起表格刷新问题的BUG.
  • 改进表格的显示功能。当单元格中文字超长时自动截短后加上省略号,同时以弹出提示的方式显示完整的内容。
  • 为SampleCenter添加一个新的示例:
    * 应用技巧/典型界面/动态跨框架绑定

================================================================================
server: 5.0 060628.0026 STD BETA
studio: 5.0 060616.1744 STD BETA

  • 修正DynamicDropDown无法有效的对进行中文进行筛选的BUG.
  • 修正Dataset在只有一条记录时isFirst,isLast的状态偶尔不正确的BUG.
  • 修正dorado无法兼容JDOM10的BUG.
  • 在Client端采用DOM技术组装提交信息,令大数据量的提交速度得到显著的提高.
  • 开始启用dorado5的授权注册机制.

================================================================================
server: 5.0 060620.0052 STD BETA
studio: 5.0 060616.1744 STD BETA

  • 修正dorado5的页面被远程IFRAME访问时出现的"权限不足"异常的BUG.
  • 修正DynamicDropDown的parameters未生效的BUG.
  • 修正部分控件未实现getTag,setTag,getViewModel方法的BUG.
  • 改进Studio中对各种字符集JSP的编辑支持.
  • 为Dataset增加了find方法,用于提供记录查找的功能.
  • 激活Studio自动在线升级功能.
  • 为SampleCenter添加一个新的示例:
    * 应用技巧/典型界面/图片的上传下载

================================================================================
server: 5.0 060613.1606 STD BETA
studio: 5.0 060613.1546 STD BETA

  • MenuItem的disabled和visible属性真正的开始生效.
  • 修正Dataset中新增后立刻删除的记录仍会被提交的BUG.
  • 修正无法为ViewModel设置Role属性的BUG.
  • 修正d:Label对象在被设置为ignored后总是自动被打印到页面末尾的BUG.
  • 修正Studio中无法很好的支持DatasetWrapper的复制粘贴操作的BUG.
  • 修正Studio中复制Dataset时偶尔导致数据控件的绑定关系自动更新到新Dataset的BUG.
  • 修正ViewModel中的DatasetWrapper类型的Dataset无法添加Validator的BUG.
  • 将doradosample项目的默认字符集调整为UTF-8.
  • 为SampleCenter添加一个新的示例:
    * 应用技巧/权限控制/角色配置文件

================================================================================
server: 5.0 060606.0141 STD BETA
studio: 5.0 060605.1854 STD BETA

  • 修正CustomDataset无法完成Field自动填充的BUG.
  • 修正Calendar无法切换至1月的BUG.
  • 改进了BRich Client的装载方式大大优化了复杂界面的载入速度. 同时为ViewModel新增lazyLoadControl属性用于指定某个ViewModel是否支持控件的懒装载.
  • 为所有控件增加了onActive事件,该事件在控件被真正激活时触发.
  • 新增Client方法isDoradoComponent(object)用判断一个对象是否是Dorado的控件.
  • 为SplitPanel增加了draggable属性.
  • 为Calendar增加了onCellRefresh, onDateRefresh, onCellClick等三个事件.
  • 为ScrollBar增加了onPositionChanged事件.
  • 为SampleCenter添加一个新的示例:
    * 测试/复杂界面

================================================================================
server: 5.0 060601.1713 STD BETA
studio: 5.0 060601.1527 STD BETA

  • 修正RequestCommand以ModalDialog方式打开时无法传递参数的BUG.
  • 改进Oracle方言机制,是之可以更好的适应CHAR类型字段的修改和删除.
  • 为com.bstek.dorado.data.db.BaseMatchRule添加useSqlParameter属性.该属性表示是否在生成SQL时使用数据库预编译参数.默认为true.
    在某些数据库中(例如Oracle),对于CHAR类型的字段如果在使用预编译参数时,我们必须传入已补齐尾部空格的匹配值,否则将无法得到正确的查询结果.为了避免这一问题的出现我们可以将对应此字段的匹配条件设为不使用数据库预编译参数.
  • 为SubWindow添加了titleClickAction属性.
  • 改进数据树的功能,使之可支持自动同步绑定Dataset的删除操作.
  • 添加了新的控件GroupBox.
  • 改进了AutoForm.为其增加了groupType属性,使之能以更加丰富的方式展现表单.
  • 为TabSet增加了currentTab的Server端属性.
  • 改进了皮肤CSS文件的配置方式,使其可以支持简单的EL表达式.

================================================================================
server: 5.0 060529.1700 STD ALPHA
studio: 5.0 060529.1612 STD ALPHA

  • 更新了client-api文档.
  • 修正TabSet无法定义事件的BUG.
  • 修正OutlookBar无法触发Menu事件的BUG.
  • 修正PagePilot偶尔无法执行翻页的BUG.
  • 修正UpdateCommand.isDirty()有时返回值不准确的BUG.
  • 修正MenuBar.setShowFrame()方法无效的BUG.
  • 优化了OutlookBar的切换速度.
  • 修正Studio中ViewModel里的Dataset无法自动生成字段的BUG.
  • 修正Studio中Dataset无法预览的BUG.
  • 改进了Studio的功能,在ViewModel的Properties Inspector和Events Inspector之间切换时将自动同步选择的XML节点.
  • 改进了Studio的功能,使ViewModel和Module之间可实现相互的Dataset复制.
  • 新增了一套皮肤(简洁-simple),可通过samplecenter的主菜单进行测试.

================================================================================
server: 5.0 060517.1114 STD ALPHA
studio: 5.0 060515.1105 STD ALPHA

  • 为RequestCommand新增了_subwindow的target选项.
  • 为Dataset.Field新增了supportsSum属性, 可以更加方便为Dataset中的数值型字段添加合计功能.

================================================================================
server: 5.0 060515.1353 STD ALPHA
studio: 5.0 060515.1105 STD ALPHA

  • 将dorado自带的tomcat升级至5.5.17版本.
  • 将doradosample使用的演示数据库更换为HSQLDB, 同时提供了MYSQL的数据库脚本.
  • DataTree的Level功能得到了增强,将可以支持更加复杂灵活的数据结构.
  • 修正DataPilot和Menu无法触发Cient事件的BUG.
  • 为SampleCenter添加三个新的示例:
    * 控件体验/录入辅助
    * 应用技巧/数据处理/提交处理
    * 应用技巧/典型界面/产品目录树维护

================================================================================
server: 5.0 060508.1802 STD ALPHA
studio: 5.0 060509.0047 STD ALPHA

  • 通过com.bstek.dorado.view.data.DatasetWrapper将原本只能在Module中使用的SqlDataset和AutoSqlDataset引入到了ViewModel中.
  • DBStatement对象的功能得到了增强,目前已支持数据的查询和提取操作.

================================================================================
server: 5.0 060428.2351 STD ALPHA
studio: 5.0 060428.2327 STD ALPHA

  • dorado5 ALPHA版首次发布.