隨筆-57  評論-129  文章-0  trackbacks-0

          裝飾引擎簡介:

          系統(tǒng)默認的裝飾引擎為:org.xidea.decorator.DecoratorEngine。
          JSI裝載后,將做如下操作:
          1. 判斷有無裝飾器命名空間聲明(xmlns:d= "http://www.xidea.org/taglib/decorator")
          2. 若有,將在文檔裝載結束后,啟動裝飾引擎,初始化當前可用的裝飾提供者表。(裝飾提供者是一個JavaScript包,在注冊這種裝飾包時可同時指定他的別名,別名*表示默認包)
          3. 遍歷當前文檔,凡是該命名空間的節(jié)點,都被看作需要裝飾的元素。若當前文檔存在裝飾元素,啟用遮罩(關機效果),頁面將不可操作(仍可查閱)。
          4. 查找裝飾元素對應的裝飾類(通過tagName判斷類名),采用異步方式動態(tài)裝載這些裝飾器類(不會裝載到全局空間),并更新當前進度信息,同時設置裝飾器之間的關系(parent,children)。
          5. 以深度遍歷的方式遍歷這些節(jié)點,注冊組件(以后可以通過$JSI.getComponent函數獲取裝飾器對象),依次執(zhí)行他們的before操作,和decorate操作。
          6. 完成裝飾,取消遮罩,頁面進入可用狀態(tài)。

          裝飾器規(guī)范簡介:

          裝飾器指的是所有擁有decorate成員方法的類。一般來說,可將一組裝飾器歸為同一個包中(太復雜的裝飾器,可將具體邏輯放置在其他包中),能后在配置文件中定義裝飾包。
          scripts/config.js   $JSI.addDecoratorProvider("org.xidea.decorator","xidea","*");

          裝飾器類包含兩個方法before、docorate分別在遍歷前(子節(jié)點未裝飾)和遍歷后(子節(jié)點裝飾完成)調用。

          同時,裝飾引擎遍歷時還將注入如下三個屬性:
          1. parent:父裝飾器
          2. children:子裝飾器集合
          3. attributes:裝飾器屬性集對象(只有一個成員函數:get(attrName)  )

          JSI現有裝飾器集合簡介

          目前JSI2最高版本2.0預覽版 (2007-04-16)包含如下裝飾器:
          1. DatePicker
            日期選擇控件,參照xul datepicker標簽,支持彈出方式(默認值 type='pop'),和內嵌式(type='grid')
          2. Editor
            編輯器控件,參照xul editor標簽
          3. Spinner
            Spinner控件(window時間日期管理中,年份調節(jié)的控件),參照backbase 的 Spinner標簽
          4. TabBox、Tabs、Tab、TabPanels、TabPanel
            TabBox(標簽頁)控件,參照xul tabbox標簽
          5.  Code
            代碼語法高亮顯示控件,參照SyntaxHighlighter的顯示風格
          6. Include
            片斷包含標簽,支持xpath選取文檔片斷,支持xslt轉換

          這些裝飾器的演示見:
          http://www.xidea.org/project/jsi/decorator/index.html

          目前JSI自帶的裝飾器不夠豐富,而且都還是初級階段,不夠完善。現在發(fā)布的這些裝飾器,主要是為了演示JSI的工作方式,編碼風格,希望能吸引第三方團隊、公司在這個基礎上開發(fā)出自己的更加實用的裝飾器集合。

          JSI及其裝飾引擎采用LGPL協議。可以商業(yè)應用,當能,更希望能開源。

          目前就我一人之力,開發(fā)一套完整的裝飾器,尚需時日,這次將這個半成品拿出來演示,主要是為了展示一下jsd的風格,希望能吸引其他開發(fā)者,共同參與這個工程,有興趣豐富JS自帶I裝飾器集合的網友,請msn與我聯系:jindw◎xidea。org
          posted on 2007-06-27 10:35 金大為 閱讀(772) 評論(0)  編輯  收藏 所屬分類: JSIJavaScript
          主站蜘蛛池模板: 泰安市| 莆田市| 越西县| 武城县| 山阳县| 辽宁省| 金溪县| 句容市| 襄汾县| 西藏| 青铜峡市| 富民县| 潜江市| 武隆县| 梅河口市| 沭阳县| 苍溪县| 阿拉善右旗| 宁晋县| 武宣县| 成武县| 永胜县| 阜新市| 汝阳县| 贵阳市| 库尔勒市| 连江县| 新乡市| 九寨沟县| 崇信县| 忻州市| 建瓯市| 合山市| 永城市| 西峡县| 绥芬河市| 望都县| 南华县| 郎溪县| 克什克腾旗| 博野县|