隨筆-57  評論-129  文章-0  trackbacks-0
          JSI組件模型是一種用來裝飾簡單html元素的框架,使用簡單的xml標(biāo)記,標(biāo)識其裝飾行為,比如將一個普通的input裝飾成一個日期輸入控件,將一 個html ul標(biāo)記裝飾成菜單或樹,將一個textarea裝飾成一個代碼語法高亮顯示區(qū)域,或一個wysiwyg html編輯器。
          JSI啟動后將自動檢查decorator標(biāo)記,構(gòu)建層次結(jié)構(gòu),自動做相關(guān)類的尋找、導(dǎo)入和裝飾操作;實現(xiàn)零腳本代碼的web富客戶端編程。

          代碼示例:

          1. 日期選擇器 (DatePicker):

             <d:datepicker>  
              
            <input type="text" name="test2" />  
            </d:datepicker>   

          2. 編輯器示例 (Editor):

             <d:editor>  
              
            <textarea name='editorText'>This is some <strong>sample text</strong>. You are using <a  
                
            href="http://www.fckeditor.net/">FCKeditor</a>.</textarea>  
            </d:editor>   

          3. Spinner控件(Spinner 類似window時間日期管理中,年份調(diào)節(jié)的控件):
             <d:spinner start='0' end='8' step='2'>  
              
            <input type="text" name="test2" value='0' />  
            </d:spinner>   

          4. 客戶端包含(Include):
             <d:include url='menu.xml' xslt="menu.xsl"></d:include>    

          5. 代碼語法高亮顯示控件(Code):
             <d:code language="js">  
             
            <textarea>alert(‘Hello World’)</textarea>  
            </d:code>   

          6. 標(biāo)簽頁控件(TabBox參照xul tabbox標(biāo)簽):

             <d:tabbox>  
              
            <d:tabs>  
                
            <d:tab>tab1</d:tab>  
                
            <d:tab>tab2</d:tab>  
                
            <d:tab>tab3</d:tab>  
              
            </d:tabs>  
              
            <d:tabpanels>  
                
            <d:tabpanel>content1</d:tabpanel>  
                
            <d:tabpanel>content2</d:tabpanel>  
                
            <d:tabpanel>content3</d:tabpanel>  
              
            </d:tabpanels>  
            </d:tabbox>   


          7. 綜合示例:
          來一個復(fù)雜一點的完整的例子,以日期選擇控件的演示頁面為例
          頁面上有: 標(biāo)簽頁裝飾器(TabBox….)、源代碼高亮顯示裝飾器(Code)、日期選擇裝飾器(DatePicker)、包含裝飾器(Include)
          <?xml version="1.0" encoding="utf-8"?>  
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml"  
            xmlns:d
          ="http://www.xidea.org/taglib/decorator" xml:lang="zh_CN"  
            lang
          ="zh_CN">  
          <head>  
          <script src="../scripts/boot.js"></script>  
          <title>DatePicker 示例</title>  
          </head>  
          <body>  
          <h2>DatePicker 示例</h2>  
          <!-- 開始標(biāo)簽頁裝飾器 -->  
          <d:tabbox>  
            
          <d:tabs>  
              
          <d:tab>效果</d:tab>  
              
          <d:tab>代碼</d:tab>  
            
          </d:tabs>  
            
          <d:tabpanels>  
              
          <d:tabpanel>  
                
          <!-- 開始日期裝飾器(內(nèi)嵌式) -->  
                
          <d:datepicker type='grid'>  
                  
          <input type="text" name="test1" />  
                
          </d:datepicker>  
                
          <!-- 開始日期裝飾器(彈出式) -->  
                
          <d:datepicker>  
                  
          <input type="text" name="test2" />  
                
          </d:datepicker>  
              
          </d:tabpanel>  
              
          <d:tabpanel>  
                
          <!-- 開始代碼高亮顯示 -->  
                
          <d:code language="xml">  
                  
          <textarea>  
                
          &lt;!-- 開始日期裝飾器(內(nèi)嵌式) --&gt;  
                
          &lt;d:datepicker type='grid'&gt;  
                  
          &lt;input type="text" name="test1" /&gt;  
                
          &lt;/d:datepicker&gt;  
                
          &lt;!-- 開始日期裝飾器(彈出式) --&gt;  
                
          &lt;d:datepicker&gt;  
                  
          &lt;input type="text" name="test2" /&gt;  
                
          &lt;/d:datepicker&gt;</textarea>  
                
          </d:code>  
              
          </d:tabpanel>  
            
          </d:tabpanels>  
          </d:tabbox>  
          <select style="margin-left:120px"><option>彈出的datepicker 可覆蓋IE select</option></select>  
          <hr />  
          <!-- 開始Include裝飾器,包含裝飾器菜單 -->  
          <d:include url='menu.xml' xslt="menu.xsl"></d:include>  
          </body>  
          </html> 



          裝飾結(jié)果:






          云想衣裳花想容--JSI組件模型介紹(二)已經(jīng)發(fā)布,那里有裝飾過程及其原理的介紹:
          http://www.javaeye.com/topic/71425


          posted on 2007-06-27 10:24 金大為 閱讀(815) 評論(0)  編輯  收藏 所屬分類: JSIJavaScript
          主站蜘蛛池模板: 江口县| 斗六市| 河北区| 万盛区| 永城市| 禹州市| 孟连| 揭西县| 郴州市| 措美县| 安顺市| 新干县| 屯门区| 郸城县| 咸宁市| 青川县| 建瓯市| 阳城县| 锦屏县| 禹城市| 辽宁省| 巴林左旗| 兴业县| 衡水市| 蛟河市| 马关县| 延庆县| 平舆县| 醴陵市| 景泰县| 宝山区| 泰安市| 佛坪县| 广元市| 上思县| 江阴市| 西盟| 济宁市| 阿拉善右旗| 阿瓦提县| 石泉县|