<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hengheng123456789

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
    JPivot - 是一個自定義的JSP的標(biāo)簽庫,可以用來在JSP頁面中嵌入OLAP表格和圖表。用戶可以執(zhí)行典型的OLAP導(dǎo)航,如下鉆,切片和切塊。它使用Mondrian 作為其OLAP服務(wù)器。

    JPivot MVC結(jié)構(gòu)

    Web應(yīng)用的架構(gòu)來講,JPivot完全遵循MVC結(jié)構(gòu),甚至十分苛刻。為了減少對特定第三方框架的以來,JPivot自己實(shí)現(xiàn)了MVC框架,但它可以與其它MVC框架共同使用。

    1.JPivot模型Model:

    JPivotModel部分處理Olap的模型定義,查詢及結(jié)果集;JPivot自己定義了一個Olap模型,然后分別提供了MondrianXML/AJPivot model實(shí)現(xiàn),這兩個實(shí)現(xiàn)又通過AdapterMondrian系統(tǒng)及xml/a系統(tǒng)交互。

    2.JPivot視圖View:

    JPivotView部分比較豐富,包括JPivot taglibwfc taglib定義及相關(guān)的UI Component助手類。用戶可以在自己的JSP中使用tag構(gòu)建新的視圖。與其它Web框架不同的是JPivot在該層次提供了大量的Web組件,類似于JSF那樣。

    3.JPivot控制器Controller:

    JPivot的控制器部分非常有特色。在JPivot中,使用單件模式(Singleton)在每個用戶的HttpSession中維護(hù)唯一一個WcfController對象,然后以此對象為根,使用Composition模式,將所有的控件請求處理的RequestFilter組織成樹形結(jié)構(gòu)。

    PATH o:connecttype="rect" gradientshapeok="t" o:extrusionok="f" />SHAPE id=_x0000_i1025 style="WIDTH: 336.75pt; HEIGHT: 187.5pt; mso-position-horizontal-relative: text; mso-position-vertical-relative: text" type="#_x0000_t75" o:allowoverlap="f" />/SHAPE />

    JPivot中,所有的UI控件操作都使用DispatcherSupport來維護(hù)處理該控件中UI交互的一個或多個Handler(比如表示表格中擴(kuò)展鉆取的“+”圖標(biāo)的DrillExpandUI類中的dispatcher屬性與ExpandHandler內(nèi)部類),而每個UI控件的dispatcher又在其父控件的dispatcher中注冊。JPivot根據(jù)客戶端操作所請求的URL在以WfcController為根的RequestFileter樹中查找對應(yīng)的處理器

    JPivot設(shè)計模式

    在JPivot中使用了大量的設(shè)計模式(Design Patterns),本文對這些設(shè)計模式實(shí)例進(jìn)行簡單的介紹。個人認(rèn)為通過分析這些實(shí)際的系統(tǒng)來學(xué)習(xí)設(shè)計模式所得到的體會還是比較深刻的。

    一、Decorator裝飾模式

    1. OlapModel類與OlapModelDecorator類構(gòu)成Decorator模式,JPivot基于OlapModelDecoratorOlapModel提供了兩種裝飾器:

    §??OlapModelProxy對在HttpSession中唯一添加OlapModel提供了支持,并限制了其它對象對OlapModel的初始化與重置操作;增加了OlapModel在改變時通知注冊的Listener所發(fā)生的改變這一職責(zé)。

    §??CachingOlapModelOlapModel提供了在一定的周期內(nèi)(Model沒有發(fā)生改變時)緩存Result結(jié)果集的職責(zé)。

    2.? PartBuilder類與PartBuilderDecorator類構(gòu)成Decorator模式,具體的裝飾器比較多,但裝飾器都是針對特定的Part來裝飾的。通過繼承這些裝飾器,可以為構(gòu)建Table的各個部分(行、列、單元格、切片)的xml進(jìn)行。JPivot結(jié)合Apache PATH o:connecttype="rect" gradientshapeok="t" o:extrusionok="f" />SHAPE id=_x0000_s1026 style="MARGIN-TOP: 0px; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 0px; WIDTH: 346.5pt; POSITION: absolute; HEIGHT: 254.6pt; TEXT-ALIGN: left; mso-position-horizontal-relative: text; mso-position-vertical-relative: text" type="#_x0000_t75" />/WRAPBLOCK />
    Digester,使我們可以不用修改任何現(xiàn)有代碼,僅需實(shí)現(xiàn)這些裝飾器及對應(yīng)TableExtension,并在config.xml中注冊就可以對所生成的Olap Pivot TableUI表現(xiàn)上進(jìn)行擴(kuò)充,并且可以增加或修改對相應(yīng)的交互操作進(jìn)行處理的Handler

    ?

    3. JPivot使用wfc.tree包對成員及層次的樹形展示進(jìn)行支持。JPivot定義了一些裝飾來增加樹形控件模型的職責(zé)。其中:

    • GroupingTreeModelDecorator裝飾增加的職責(zé)是在子成員數(shù)目比較大的時候,可以分組顯示子成員以提高效率。
    • OptimizingTreeModelDecorator裝飾增加的職責(zé)是可以根據(jù)過濾器(NodeFilter)動態(tài)的隱藏掉不滿足過濾條件的分支及節(jié)點(diǎn)。
    • SimpleOptimizingTreeModelDecorator裝飾增加的職責(zé)是當(dāng)樹只有一個頂級根節(jié)點(diǎn)的時候,不顯示該根節(jié)點(diǎn),而是直接顯示第二層的子節(jié)點(diǎn),這樣用戶就不用每次都要做無謂的展開操作。
    • CachingTreeModelDecorator裝飾增加的職責(zé)是當(dāng)用戶在樹形中執(zhí)行展開等瀏覽操作時,保存用戶每次操作請求的數(shù)據(jù),形成TreeModel節(jié)點(diǎn)的緩存,以提高以后再次操作的相應(yīng)效率。

     ??

    二、Observer觀察者模式

    ??? 在JPivot中,大量使用Observer模式解除視圖與模型之間的耦合,處理兩者之間的依賴關(guān)系及內(nèi)容與表示同步。

    ??? Model類及其子類(JPivot自定義Olap 模型的Mondrian實(shí)現(xiàn)、xml/a實(shí)現(xiàn))ModelChangeListener及其子類(表格、鉆取/旋轉(zhuǎn)/排序排名等、圖形、成員樹等展示控件)構(gòu)成Observer模式(嚴(yán)格的說應(yīng)該是Listener模式),作用是在模型發(fā)生改變時,同步更新所有的UI控件展示。


    posted on 2006-12-03 17:22 哼哼 閱讀(3278) 評論(0)  編輯  收藏 所屬分類: BI
    主站蜘蛛池模板: 国产成人不卡亚洲精品91| 国产在线观看免费视频播放器| 成人免费无遮挡无码黄漫视频| a级毛片视频免费观看| 狠狠综合亚洲综合亚洲色| 亚洲精品第五页中文字幕| 国产成人综合亚洲AV第一页| 全免费a级毛片免费看无码| 无码一区二区三区免费| www在线观看免费视频| 亚洲国产美女精品久久久| 亚洲国产精品无码久久久| 久久亚洲国产视频| 亚洲精品自在在线观看| 亚洲一区二区三区国产精品| 俄罗斯极品美女毛片免费播放| 成年女人免费v片| 无码日韩人妻av一区免费| 69pao强力打造免费高清| 无码国产精品一区二区免费16| 天黑黑影院在线观看视频高清免费| 一级做α爱过程免费视频| 男人j进女人p免费视频| 久久精品国产亚洲av天美18| 亚洲精品无码不卡在线播放| 亚洲中文字幕一二三四区| 亚洲自国产拍揄拍| 亚洲人成77777在线观看网| 久久精品国产亚洲AV忘忧草18| 亚洲成a人不卡在线观看| 精品无码一区二区三区亚洲桃色| 亚洲天天做日日做天天看| 亚洲激情中文字幕| 亚洲精品视频免费看| 亚洲国产av一区二区三区丶| 91亚洲国产在人线播放午夜| 亚洲成aⅴ人片在线影院八| 亚洲性色高清完整版在线观看| 亚洲人成网站18禁止久久影院| 亚洲国产精品张柏芝在线观看| 亚洲精品视频久久|