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

          裝飾引擎簡介:

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

          裝飾器規范簡介:

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

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

          同時,裝飾引擎遍歷時還將注入如下三個屬性:
          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時間日期管理中,年份調節的控件),參照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自帶的裝飾器不夠豐富,而且都還是初級階段,不夠完善。現在發布的這些裝飾器,主要是為了演示JSI的工作方式,編碼風格,希望能吸引第三方團隊、公司在這個基礎上開發出自己的更加實用的裝飾器集合。

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

          目前就我一人之力,開發一套完整的裝飾器,尚需時日,這次將這個半成品拿出來演示,主要是為了展示一下jsd的風格,希望能吸引其他開發者,共同參與這個工程,有興趣豐富JS自帶I裝飾器集合的網友,請msn與我聯系:jindw◎xidea。org
          posted on 2007-06-27 10:35 金大為 閱讀(772) 評論(0)  編輯  收藏 所屬分類: JSIJavaScript
          主站蜘蛛池模板: 化隆| 大连市| 东台市| 宜丰县| 延津县| 文山县| 临颍县| 田东县| 岳池县| 福海县| 平安县| 陇南市| 玉树县| 拜城县| 甘德县| 焦作市| 大石桥市| 石阡县| 诸城市| 汉中市| 惠安县| 新干县| 定州市| 娄底市| 邮箱| 繁昌县| 米易县| 台南市| 东乌珠穆沁旗| 金塔县| 凤城市| 木兰县| 鸡东县| 临朐县| 含山县| 灵璧县| 沁水县| 黄浦区| 芜湖县| 通化市| 股票|