幸せのちから

          平凡的世界
          看似平常實(shí)崎嶇
          成如容易卻艱辛

          1.0.1-M5-A4升級說明(M5 Release翻譯稿)

          1.1.?開發(fā)快照版

          extremecomponents-1.0.1-M5-A4版(下載) 是正式版發(fā)行前的最后開發(fā)快照版。這個(gè)build版所使用的代碼將被下一個(gè)release版沿用。

          1.2.?1.0.1-M5-A4

          我決定發(fā)布一個(gè)新的里程碑(milestone)版是因?yàn)槲覍σ晥D(view)的代碼做了一些調(diào)整,現(xiàn)在eXtremeTable將能夠支持AJAX(而不是局部build)。 在確認(rèn)release候選版前,這些增加的大的特性能夠完美地工作。

          下面列出的是eXtremeTable下一個(gè)里程碑(milestone)版特性和改進(jìn),我希望從上一個(gè)里程碑版升級到現(xiàn)在這版沒有任何問題(breakage)。 然而,在完成M4版視圖實(shí)現(xiàn)后,我決定我必須做最后的更改...將靜態(tài)builders變?yōu)榫唧w的類。這將是唯一可能出現(xiàn)問題(breakage)并且 將只影響到定制視圖(定制cells也一樣,但是更多的是較平和的deprecated)。盡管那樣,這些更改將很容易實(shí)現(xiàn)。

          1.3.?Html Builder類具體化

          所有的視圖builder類具體化,需要被實(shí)例化,這些只對開發(fā)者需要?jiǎng)?chuàng)建定制試圖或cells有影響。 這是因?yàn)樾枰沟靡晥D代碼能夠像他們需要的那樣具有彈性。builder classes是靜態(tài)的能夠很好地工作,但是 將來沒有機(jī)會(huì)來做一些有意義的事,并且創(chuàng)建定制試圖更加麻煩。然而,現(xiàn)在這些方法和原來的一樣,而僅僅是需要對它進(jìn)行實(shí)例化。

          為了使這種轉(zhuǎn)變更容易CellBuilder仍然是靜態(tài)的,但是現(xiàn)在為deprecated。新的(非靜態(tài))builder稱為ColumnBuilder,通過這個(gè)名稱我們能更確切地知道什么被構(gòu)建了。

          public String getHtmlDisplay(TableModel model, Column column) {
          ColumnBuilder columnBuilder = new ColumnBuilder(column);
          columnBuilder.tdStart();
          columnBuilder.tdBody(getCellValue(model, column));
          columnBuilder.tdEnd();
          return columnBuilder.toString();
          }

          另一個(gè)例子,使用ColumnBuilder定制cells如下:

          public String getHtmlDisplay(TableModel model, Column column) {
          InputBuilder inputBuilder = new InputBuilder(column);
          inputBuilder.tdStart();
          try {
          Object bean = model.getCurrentRowBean();
          Integer id = new Integer(BeanUtils.getProperty(bean, "id"));
          inputBuilder.tdBody(id);
          } catch (Exception e) {}
          inputBuilder.tdEnd();
          return inputBuilder.toString();
          }
          private static class InputBuilder extends ColumnBuilder {
          public InputBuilder(Column column) {
          super(column);
          }
          public void tdBody(Integer id) {
          getHtmlBuilder().input("radio").name("location.id").id("location.id").value(id.toString()).onclick("populateLocationFields(this.value)");
          getHtmlBuilder().xclose();
          }
          }
          }

          這樣更簡潔,只需要擴(kuò)展你關(guān)心的builder,并構(gòu)建你定制的實(shí)現(xiàn)。

          另外toolbar被完全重構(gòu),但是這個(gè)實(shí)現(xiàn)被隱藏在ToolbarBuilder類的背后,所以不會(huì)有影響。

          最后,我探索性地增加了toolbar特性,這樣可以在preferences配置表關(guān)聯(lián)到不同的toolbars。 這個(gè)特性能夠用來動(dòng)態(tài)構(gòu)造toolbar。這將使開發(fā)者很簡單地通過preferences來定義一個(gè)定制的toolbar。 例如,一個(gè)toolbar當(dāng)使用Limit定制不包含最后一頁按鈕,或者另一個(gè)toolbar不包含rows displayed... 如果你要定制的就是這些東西而不需要?jiǎng)e的新的特性,你最好等待一兩個(gè)星期直到我實(shí)現(xiàn)完成。

          1.4.?新的表的showTitle屬性

          TableTag新的showTitle屬性用來確認(rèn)是否現(xiàn)實(shí)title,這是一個(gè)boolean值默認(rèn)為true。

          1.5.?Limit現(xiàn)在能使用State特性

          Limit特性為了使用State特性,你需要使用TableLimitFactory的帶有state的構(gòu)造函數(shù),當(dāng)使用state 特性時(shí),你應(yīng)該提供唯一的tableId(本例為presidents),帶有state的構(gòu)造函數(shù)同時(shí)也需要這個(gè)tableId。

          		Context context = new HttpServletRequestContext(request);
          LimitFactory limitFactory = new TableLimitFactory(context, presidents, TableConstants.STATE_PERSIST, null);
          Limit limit = new TableLimit(limitFactory);

          1.6.?新的列的filterOptions屬性/FilterOption接口

          TableTag新的filterOptions屬性,能夠接受一個(gè)filter options的集合,這個(gè)集合中的每個(gè)bean都實(shí)現(xiàn)FilterOption的 接口。被用來和filterCell=droplist結(jié)合,當(dāng)使用Limit時(shí)使用定制droplist時(shí)非常有用。

          1.7.?導(dǎo)出EXCLE文件時(shí)的本地語言的支持

          默認(rèn)的XlsView使用UTF-16編碼,這樣能夠支持對于雙字節(jié)語言導(dǎo)出。如果要使用unicode,你可以設(shè)置 ExportTag的新的encoding屬性,這個(gè)屬性接受的值為:UTF和UNICODE。

          1.8.?刪除Compact視圖的title的style

          當(dāng)使用compact視圖是我硬編碼了表的title,這是一個(gè)bug。只需要通過CSS的titleRow屬性style(或移走)title。

          1.9.?TableModel現(xiàn)在變?yōu)榻涌?/h2>

          TableModel現(xiàn)在變?yōu)榻涌?,這只對TableAssembler產(chǎn)生影響。然而,正如下面提到的,使用Java代碼來組裝一個(gè)表將更容易。

          1.10.?TableAssembler整合到TableModel

          當(dāng)使用Java代碼來組裝一個(gè)表將更容易:

          		TableModel model = new TableModelImpl(context);

          Table table = new Table(model); table.setItems(presidents); table.setAction("assembler.run"); table.setTitle("Presidents"); table.setShowTooltips(Boolean.FALSE); model.addTable(table);

          Row row = new Row(model); row.setHighlightRow(Boolean.FALSE); model.addRow(row);

          Column columnName = new Column(model); columnName.setProperty("fullName"); columnName.setIntercept((AssemblerIntercept.class).getName()); model.addColumn(columnName);

          Column columnNickName = new Column(model); columnNickName.setProperty("nickName"); model.addColumn(columnNickName);

          Object view = model.assemble();

          1.11.?重命名FilterSet.getValue()方法

          FilterSet.getValue()方法被Deprecated,重命名為FilterSet.getFilterValue()。

          1.12.?刪除TableTag的onsubmit

          onsubmit被刪除,因?yàn)閖avascript被表的所有actions使用。

          1.13.?總計(jì)導(dǎo)出

          PDF和XLS現(xiàn)在包含總計(jì)導(dǎo)出,你只需要和平常一樣設(shè)置Calc特性。

          1.14.?導(dǎo)出錯(cuò)誤-Response頭修改

          過濾器的response頭應(yīng)該能更好地適應(yīng)不同環(huán)境,在response頭后添加:

          response.setHeader("Cache-Control", "must-revalidate, post-check=0,pre-check=0");

          1.15.?列標(biāo)簽autoGenerateColumns的Preferences

          autoGenerateColumns屬性現(xiàn)在可以在Preferences文件中配置,可以使用別名來避免全路徑引用。

          1.16.?自動(dòng)轉(zhuǎn)換參數(shù)

          Registry能夠接受null、String、List或者Array作為參數(shù),Registry將把這些轉(zhuǎn)換成String[]。

          1.17.?表的bufferView屬性

          表的bufferView屬性,默認(rèn)為true將使用視圖的默認(rèn)buffer。如果不需要使用buffer可以設(shè)置為false。

          1.18.?eXtremeTable的AJAX特性

          當(dāng)使用eXtremeTable API來通過JAVA代碼來創(chuàng)建表時(shí),現(xiàn)在可以結(jié)合AJAX技術(shù)來生成視圖。這意味著 當(dāng)navigate(比如:翻頁)時(shí)不需要刷新web頁,這令人非常興奮,關(guān)于這個(gè)特性的更多的文檔將會(huì)出來。開發(fā) 者能夠更好地測試并使用這個(gè)特性,這個(gè)特性的真正hook是表的onInvokeAction屬性,它使得javascript方法 能夠被invoked。AJAX整合一個(gè)最強(qiáng)大的地方是它不需要整合。下一步是使eXtremeTable有一個(gè)清晰并且易于使用的API, 這意味著你可以使用你感興趣的AJAX技術(shù)因?yàn)閑XtremeTable沒有整合一個(gè)特定的技術(shù)?,F(xiàn)在你可以通過CVS得到eXtremeSite代碼, 它展示了一個(gè)使用AJAX的實(shí)例,它現(xiàn)在使用HSQL所以只需要下載并直接運(yùn)行。請暫時(shí)不要向我詢問更多的文檔,我現(xiàn)在正在整理 并將盡可能快的發(fā)布出來。

          posted on 2006-03-21 10:18 Lucky 閱讀(1127) 評論(0)  編輯  收藏 所屬分類: extremeComponents

          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          隨筆分類(125)

          文章分類(5)

          日本語

          搜索

          積分與排名

          最新隨筆

          最新評論

          主站蜘蛛池模板: 安国市| 商水县| 邛崃市| 富宁县| 平阴县| 神农架林区| 保德县| 满洲里市| 林口县| 临沂市| 大石桥市| 新平| 蓝山县| 兴隆县| 仁布县| 临安市| 砚山县| 屯留县| 南澳县| 汉中市| 盐城市| 桑植县| 汽车| 龙海市| 贡嘎县| 五家渠市| 新巴尔虎左旗| 简阳市| 开阳县| 开江县| 乌鲁木齐市| 浮山县| 辽阳市| 海盐县| 安国市| 民丰县| 河源市| 郎溪县| 宁城县| 定结县| 丽水市|