infotalk S04-插件開發(fā)指南_第1頁
infotalk S04-插件開發(fā)指南_第2頁
infotalk S04-插件開發(fā)指南_第3頁
infotalk S04-插件開發(fā)指南_第4頁
infotalk S04-插件開發(fā)指南_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、插件開發(fā)指南目錄1文檔概述12擴展插件簡介22.1擴展插件的特點22.2術語及定義22.3常見問題23快速開始53.2開始一個簡單的應用54擴展插件開發(fā)指南124.1第一課:擴展插件開發(fā)基礎124.2第二課:替換infotalk文件224.3第三課:自定義模塊244.4第四課:自定義資源樹右鍵菜單344.5第五課:自定義任務面板474.6第六課:新增系統(tǒng)選項574.7第七課:如何修改infotalk js文件的方法614.8第八課:服務端java接口調(diào)用624.9第九課:高級應用645擴展點945.1服務端945.2客戶端966示例集1006.1新增資源類型1006.2靈活分析queryvie

2、w對象的擴展1036.3數(shù)據(jù)集定義businessview對象擴展1056.4數(shù)據(jù)集定義中新增sql表達式校驗控制1066.5用戶密碼合法性判斷的添加106 第 107 頁 共108頁1 文檔概述使用下表快速訪問插件開發(fā)指南。若要了解請參見擴展插件簡介簡單介紹擴展插件的特點及常見問題??焖匍_始讓讀者盡快掌握擴展插件開發(fā)的基本步驟。擴展插件開發(fā)指南通過一些課程來指導如何開發(fā)擴展插件。擴展點介紹產(chǎn)品中已提供的擴展點,供擴展開發(fā)參考。示例集給讀者提供常用的擴展開發(fā)示例。文檔目的隨著客戶對bi前端功能的要求越來越深入,infotalk的很多應用項目都有定制化需求。為滿足這類需求,產(chǎn)品進一步增強“穩(wěn)定內(nèi)

3、核+api擴展”的架構,支持插件擴展。每個項目的定制化的需求都可以做成單獨的插件,這樣,最大限度地控制項目化的需求對產(chǎn)品的影響,控制不同項目之間相互影響,項目需求響應的及時性也能得到保證。適用范圍本文面向infotalk定制開發(fā)人員以及研發(fā)人員。2 擴展插件簡介擴展插件從應用角度上看,它是一個可以加載到infotalk中執(zhí)行的功能插件;從技術角度上看,它是一個web項目,包含html、jsp、java、js和資源等文件。2.1 擴展插件的特點l 擴展插件通過infotalk加載執(zhí)行。l 擴展插件中的文件會覆蓋infotalk相同路徑下的同名文件。l 擴展插件可以調(diào)用infotalk的內(nèi)部對象。

4、l 擴展插件可以通過擴展點對infotalk進行定制開發(fā),能夠把新功能無縫集成到系統(tǒng)中。2.2 術語及定義術語定義擴展點為了能夠在不改動infotalk代碼的情況下,讓新開發(fā)的插件無縫集成到系統(tǒng)中,infotalk系統(tǒng)框架提供了大量的功能插入接口,這些接口即稱之為“擴展點”。一級模塊“審核”、“瀏覽”、“定制”、“管理”、“儀表盤”、“個人設置”、“幫助”等功能模塊入口。二級模塊一級模塊的子模塊入口。任務面板infotalk模塊主界面中大圖標展現(xiàn)的快捷功能操作入口區(qū)。資源樹以樹的方式展現(xiàn)infotalk資源。知識庫用于存儲infotalk系統(tǒng)資源信息的數(shù)據(jù)庫我們稱之為知識庫。知識庫對象使用hi

5、bernate運行機制,知識庫表映射到一個pojo實體類,該實體類指知識庫對象。知識庫升級infotalk使用升級類代碼對知識庫版本進行維護,當擴展插件中需要修改知識庫對象時就必須添加相應的升級類進行知識庫版本的維護。java查詢指基于java數(shù)據(jù)源中java查詢對象作為查詢源的一種業(yè)務查詢。2.3 常見問題2.3.1 為什么要使用擴展插件?l 從項目角度上看把項目定制化的需求做成擴展插件,這樣能夠最大限度地控制項目化的需求對產(chǎn)品的影響,控制不同項目之間相互影響,項目需求響應的及時性也能得到保證。l 從產(chǎn)品開發(fā)角度上看把產(chǎn)品新功能模塊的開發(fā)做成擴展插件,這樣可以有效避免新功能開發(fā)對產(chǎn)品的影響,

6、從而最大限度的保證產(chǎn)品的質(zhì)量。2.3.2 如何在infotalk中加載擴展插件?l 項目定制化的需求開發(fā)的擴展插件啟動infotalk服務器,訪問http:/ip:host/infotalk/config。在config界面上,指定擴展插件的路徑,如“c: /infotalkextension/src/web/”,保存配置。l 研發(fā)內(nèi)部開發(fā)的新功能擴展插件:修改infotalk.war/web-inf/extensions/extensions.list文件,每一行為一個擴展插件路徑的聲明。聲明加載指定目錄的擴展插件如:“.extensionmanager.sandboxsrcweb”。2.3

7、.3 infotalk是否可以同時加載多個擴展插件?infotalk里面允許同時加載多個擴展插件。把多個插件放到同一個目錄中,然后通過config配置界面把擴展插件路徑指向該目錄,或者在extensions.list文件中添加多個擴展插件路徑。2.3.4 擴展插件的加載策略是什么?擴展策略:infotalk服務器啟動時,會自動加載所有擴展插件,并調(diào)用相關的激活方法。若擴展插件中存在與infotalk.war中同名的文件時,會優(yōu)先讀取擴展插件中的文件,當多個擴展插件中存在同名文件時會以第一個擴展插件優(yōu)先,但configurationpatch.js會自動合并,不存在覆蓋問題。擴展插件的聲明方式:

8、產(chǎn)品允許采用兩種方式來設置擴展包的加載路徑。l 通過infotalk.war/web-inf/extensions/extensions.list文件進行聲明。l 通過infotalk配置界面進行聲明。擴展插件的加載順序:l 先加載 infotalk.war/web-inf/extensions/extensions.list 文件聲明的擴展包,再加載infotalk配置界面中指定的目錄。l 在extensions.list文件中,每一行為一個擴展插件路徑的聲明,系統(tǒng)按順序加載各個擴展插件。例如:下面聲明了三個擴展插件,系統(tǒng)加載順序依次是sample3、sample1.ext、sample2.

9、ext。l 通過infotalk配置界面聲明擴展插件的存放路徑時,該路徑中可以保存多個以.ext結(jié)尾的擴展插件或者包含多個擴展插件的目錄。其對擴展插件的加載順序是按擴展插件的名字順序來進行加載,假如該目錄中存放了三個插件,則系統(tǒng)依次加載sample1.ext、sample2.ext、sample3。2.3.5 在websphere部署擴展插件的問題當使用websphere作為服務器時,可能會出現(xiàn)無法加載擴展插件內(nèi)的圖片、servlet的情況,在出現(xiàn)此情況下,請按以下步驟進行修改:(1) 展開服務器 應用程序服務器。(2) 點擊 server1。(3) 點擊 web容器設置 web容器。(4)

10、點擊 定制屬性。(5) 點擊 新建。(6) 輸入名稱:com.ibm.ws.webcontainer.invokefilterscompatibility,值為true。(7) 保存并重新啟動應用服務器。3 快速開始3.1.1 下載java開發(fā)工具在這里推薦一個開源的java開發(fā)工具eclipse,下載地址:/downloads/ 。3.2 開始一個簡單的應用3.2.1 示例說明這是一個簡單的應用開發(fā),它演示了“如何修改infotalk本身的圖片,如何添加一級模塊菜單,如何在資源樹的右鍵菜單添加第三方的功能菜單”的開發(fā)過程。具體需求如下:需求一:在in

11、fotalk主界面的“瀏覽”菜單旁邊添加“163網(wǎng)站”,點擊后即在瀏覽面板中顯示163網(wǎng)頁。需求二:在infotalk“定制展現(xiàn)定制”界面資源樹右鍵菜單中添加“hello 163”菜單項,點擊“hello 163”菜單彈出163網(wǎng)站頁面。3.2.2 第一步:創(chuàng)建擴展插件使用eclipse 開發(fā)工具,通過“file - new - project”創(chuàng)建一個hellodemo的項目,該項目的目錄結(jié)構如下:3.2.3 第二步:配置文件在“meta-inf”目錄中創(chuàng)建擴展插件的聲明文件extension.xml。在該文件中聲明擴展插件的名稱、別名和描述,該聲明文件是必需的。3.2.4 第三步:定制開發(fā)

12、需求一:在“瀏覽”菜單旁邊添加“163網(wǎng)站”在“hellodemosrcwebvisionjsext”目錄中添加擴展點聲明文件configurationpatch. js。在“hellodemosrcwebvisionjsextsamples”目錄中添加動作對象類urlaction.js。configurationpatch.js聲明文件如下:(具體的說明請參照“擴展點配置”)var configurationpatch = patches : path : /extensionpoints/mainframe/actions, /*一級模塊擴展點*/key : 1, /*指功能模塊位置,這里

13、指放在第1位,也就是瀏覽模塊之前*/operation : insert, /*執(zhí)行插入的動作,這里指插入163網(wǎng)站功能模塊*/value : /*功能模塊信息*/groupid : default, /*組的id,這里使用默認值*/classname : ext.samples.urlaction, /*功能模塊執(zhí)行的動作類,這里我們定義了urlaction動作類*/text: 163網(wǎng)站 /*功能模塊顯示名稱*/urlaction.js源代碼如下:(一級模塊和二級模塊的動作文件,必須繼承abstractaction基類)var urlaction = function(treeslot,

14、toolbarslot, viewslot, leftpane, splitter, tabslot) /執(zhí)行父類結(jié)構方法urlaction.superclass.constructor.call(this, treeslot, toolbarslot, viewslot, leftpane, splitter, tabslot);/模塊的顯示名稱this.text = 163網(wǎng)站; /打開鏈接地址this.url = ; this.treeslot = treeslot;this.toolbarslot = toolbarslot;this.viewslot

15、 = viewslot;this.leftpane = leftpane;this.splitter = splitter;this.tabslot = tabslot;this.status = hidden;/* * 指定繼承abstractaction */lang.extend(urlaction, mon.abstractaction);/* * 當打開模塊時調(diào)用 */urlatotype.open = function(arg) /隱藏左邊的目錄樹this.leftpane.style.display = none;/隱藏左邊目錄樹

16、與右邊主界面之間的分隔線this.splitter.style.display = none;/隱藏主界面的工具欄this.toolbarslot.style.display = none;/生成iframe,在iframe中打開指定的jsp文件this.viewslot.innerhtml = ;/返回true表示成功return true;/* * 當模塊關閉時調(diào)用 */urlatotype.close = function(arg) /恢復目錄樹、分隔線、工具欄可見this.leftpane.style.display = ;this.splitter.style.di

17、splay = ;this.toolbarslot.style.display = ;/釋放iframethis.viewslot.innerhtml = ;return true;需求二:在“定制”-“瀏覽”界面資源樹右鍵菜單中添加“hello”菜單項操作步驟如下:(1) 修改configuration.js聲明文件,添加資源樹右鍵菜單的聲明。(2) 在“hellodemosrc webvisionjsextsamples”目錄中添加自定義右鍵菜單句柄類hellopopupmenuhandler.js。(3) 在hellopopupmenuhandler對象中新建“hello”菜單項。具體修

18、改說明如下:l configuration.js聲明文件修改如下:(具體的說明請參照“擴展點配置”)var configurationpatch = /*extensionpoints.catalogtree.displaycustomhandler是“定制”-“瀏覽”資源樹擴展點路徑*/ extensionpoints : catalogtree: displaycustomhandler:classname : ext.samples.hellopopupmenuhandler ,patches : path : /extensionpoints/mainframe/actions, /*

19、一級模塊擴展點*/key : 1, /*指功能模塊位置,這里指放在第1位,也就是瀏覽模塊之前*/operation : insert, /*執(zhí)行插入的動作,這里指插入163網(wǎng)站功能模塊*/value : /*功能模塊信息*/groupid : default, /*組的id,這里使用默認值*/classname : ext.samples.urlaction, /*功能模塊執(zhí)行的動作類,這里我們定義了urlaction動作類*/text: 163網(wǎng)站 /*功能模塊顯示名稱*/l hellopopupmenuhandler.js源代碼如下:/* * 構造函數(shù) */var hellopopupme

20、nuhandler = function(popupmenu) this.popupmenu = popupmenu;/* * 析構函數(shù) */hellopopupmenuhtotype.destroy = function() /* * 初始化菜單,只會調(diào)用一次。一般在這里創(chuàng)建菜單項 */hellopopupmenuhtotype.initmenu = function() /創(chuàng)建菜單項:參數(shù)為【顯示名稱】、【功能編號(傳遞到docmd方法中)】、【快捷鍵】、【圖標】、【插入在哪個菜單項之前】this.popupmenu.hellomenu = this

21、.popupmenu.createmenuitem(hello 163, hellocommand, h, null, 刷新);/* * 清空菜單狀態(tài),每次彈出前調(diào)用。一般應在這里隱藏本handler所創(chuàng)建的所有菜單 */hellopopupmenuhtotype.clearmenustate = function() this.popupmenu.hellomenu.setvisibility(false);/* * 根據(jù)傳入的node控制菜單的顯示與否 */hellopopupmenuhtotype.resetmenustate = function

22、(node) if(!node)return;this.popupmenu.hellomenu.setvisibility(true);/* * 當點擊菜單時,響應的代碼 */hellopopupmenuhtotype.docmd = function(node, func) if (!node)return;if(typeof func = string)if(func = hellocommand)window.open();3.2.5 第四步:打包擴展插件使用jar命令將擴展插件打包,以ext為擴展名。操作步驟如下:(1) 啟動命令行

23、提示符cmd;(2) 通過cd命令進入到項目所在的srcweb目錄,例如:d:hellodemosrcweb;(3) 輸入命令:c: jdk1.5.0_01binjar.execvfhellodemo.ext *.*(4) 回車后,即將hellodemosrcweb目錄下的所有內(nèi)容打包進hellodemo.ext文件。3.2.6 第五步:加載擴展插件(1) 啟動infotalk應用服務器。(2) 訪問http:/ip:host/infotalk/config頁面。(3) 設置擴展插件存放路徑。如:d:infotalkextensions。(4) 保存設置。(5) 重新啟動infotalk應用服

24、務器,登錄后即可看到效果。3.2.7 示例代碼下載4 擴展插件開發(fā)指南4.1 第一課:擴展插件開發(fā)基礎4.1.1 創(chuàng)建項目工程使用eclipse 開發(fā)工具,通過“file - new - project”創(chuàng)建一個擴展插件項目工程,該項目的目錄結(jié)構如下:相關目錄及文件說明如下:l web目錄,是擴展插件的根目錄。l meta-inf目錄,是擴展插件的配置文件和相關的類存放位置。n classes:包含擴展插件中類文件編譯后的class文件(可選)。n lib目錄:擴展插件引用到的類庫。infotalk已經(jīng)包括的類庫,不應該放在此目錄中(可選)。n applicationcontext.xml:擴

25、展插件spring配置文件(可選)。n extension.xml:擴展插件配置文件(必選)。l vision目錄,是前端文件存放位置。n img目錄:資源圖片存放目錄(可選)。n js目錄:javascript前端文件存放目錄(可選)。n jsextconfigurationpatch.js:前端配置文件,多個擴展插件會自動合并(可選)。說明l vision目錄中,同路徑下的同名文件會替換infotalk相關文件,因此定制開發(fā)的文件一般放到ext目錄中。4.1.2 配置擴展插件 插件聲明文件extension.xml(必要)extension.xml文件是擴展插件的必要聲明文件

26、,存放于meta-inf目錄中。基本要素:屬性描述可選與否name擴展插件的名稱。必選alias擴展插件的別名。必選desc擴展插件的描述。必選version擴展插件的版本號。必選enable-jsp-processor支持在擴展插件中使用jsp文件??蛇xfile-encoding聲明擴展插件中js、html等文件的編碼,默認為utf-8。可選servlet聲明擴展插件中的servlet對象,請參考web.xml中的結(jié)構。可選servlet-mapping聲明servlet的映射,請參考web.xml中的結(jié)構??蛇x文件內(nèi)容示例: gbk testservlet bof.extension.te

27、st.testservlet x xv y yv 1 testservlet /testservlet spring聲明文件applicationcontext.xml(可選)applicationcontext.xml文件是擴展插件中的spring聲明文件,存放于meta-inf目錄中。該文件是可選的。在java代碼中調(diào)用服務器端sdk提供的接口時不需要本文件;僅當需要在擴展插件中使用infotalk內(nèi)部模塊的方法,或?qū)⑿略瞿K注冊到framework和rmimodule中時,才需要定義此文件。應用說明:l infotalk使用spring加載服務器上的組件,因此當擴展插件需

28、要使用到infotalk原有功能時必須也使用spring進行組件加載。l 在infotalk啟動過程中會自動加載infotalk.warweb-infapplicationcontext.xml初始化內(nèi)置組件,然后再按擴展插件順序加載擴展插件中的applicationcontext.xml。l 在擴展插件中的applicationcontext.xml可以直接引用infotalk內(nèi)置的對象,只需要通過相應的id引用就可以,例如下面示例中testext可以直接引用dao而無需再聲明daomodule。infotalk常用內(nèi)置的對象說明如下:id描述dao處理數(shù)據(jù)庫相關操作。state處理會話操作

29、。catalogtree處理資源樹操作。usermanager處理用戶管理操作。rmi聲明前端請求對應的模塊。framework處理模塊的升級和激活pojo對象。l 當需要在framework或者rmi模塊中注冊時,需要再次聲明相應的組件。向rmi和framework注冊testext組件時,需要再次聲明rmi和framework組件并添加到相應的屬性中,infotalk會自動合并內(nèi)置對象中的list或map屬性。上述示例將testext組件添加到rmi和framework原有l(wèi)ist和map中。文件內(nèi)容示例: testext testext 擴展點配置文件configurat

30、ionpatch.js(可選)configurationpatch.js存放于擴展插件中的visionjsext目錄中。該文件是擴展插件中前端js擴展點配置文件??梢酝ㄟ^對此文件的配置,把擴展功能添加到相應的擴展點中;也可以對照infotalk前端界面做一些相應的調(diào)整。configurationpatch.js包含兩個屬性,分別是extensionpoints、patches的屬性:l extensionpoints是客戶端擴展點內(nèi)容的定義,客戶端會根據(jù)擴展點內(nèi)容的聲明作出相應的處理,infotalk會自動合并原有configuration.js和所有擴展插件中的聲明。extensionpoi

31、nts對象支持以下常用屬性:屬性用途mainframe可以在mainframe.actions下添加一級菜單模塊。custom、manager等在相應一級模塊下添加二級模塊、任務面板操作入口。catalogtree添加右鍵菜單。l patches提供了更豐富的屬性定義,并且可以對extensionpoints中原有定義的屬性進行修改。比如修改infotalk原有擴展點內(nèi)容,或在指定位置插入新的擴展點。每個patch對象包含以下屬性:屬性描述path表示該path要修改的configuration.js中的對象路徑。key需要替換的鍵值,可以為數(shù)字或者字符串,當operation為appendo

32、bject時忽略此項。n 0和正數(shù):比如0,代表從左到右第一個鍵值n 負數(shù):比如-1,代表從右到左第一個鍵值operationpath的動作,共有以下幾種:n replace:替換原來的值。n append:添加到原有數(shù)組中,value可以為數(shù)組或?qū)ο蟆 appendobject:添加到原有對象中,value為是對象。n insert:插入原有數(shù)組中。n remove:刪除原有對象中的值。value修改后的值,當operation為remove時忽略此項l extensionpoints、patches均為數(shù)組,可以定義多個擴展點對象。說明infotalk可供擴展的所有擴展點請參閱“擴展點說

33、明”。擴展點聲明示例:var configurationpatch = /*調(diào)整前端界面:移除一級模塊中的定制模塊*/patches: path: /extensionpoints/custom/actions,key: 6,operation: remove,extensionpoints : /*添加一級模塊:在一級模塊未尾添加二個模塊入口 */mainframe : actions : classname :ext.b.fibonacciaction,groupid :default,classname :ext.b.numberseriesaction,groupid :default

34、, /*添加二級模塊:在定制模塊的二級模塊未尾添加一個模塊入口 */custom: actions: classname :ext.b.fibonacciaction,groupid :default, /*添加任務入口:在數(shù)據(jù)集定義任務面板中添加一個操作入口 */datasettaskpanel : config: handlers:classname:ext.custom.customtaskpanel, /*編輯菜單項:對“定制”-“展現(xiàn)定制”中資源樹的右鍵菜單項進行編輯 */catalogtree: displaycustomhandler:classname : ext.b.disp

35、laycustom_treepopupmenuhandler; 自定義portlet聲明文件portlet.xml(可選)portlet.xml文件是擴展插件中的自定義portlet聲明文件,存放于meta-inf目錄中。infotalk本身提供web鏈接、靈活分析、儀表分析、地圖分析、多維分析、復雜報表、指標報表、目錄等多種portlet資源。自定義 portlet用于實現(xiàn)產(chǎn)品未支持的資源類型,它必須滿足portlet和portletedit的接口規(guī)范。自定義portlet基本要素:屬性描述titleportlet的默認標題。iconportlet在資源樹節(jié)點上顯示的圖標,圖標

36、文件放在src/web/img/catalogtree目錄下。portlet-nameportlet名稱,portlet的標識。display-nameportlet顯示名稱,添加portlet時界面上顯示的名稱。descriptionportlet描述信息。is-bof-tree-node是否是資源樹上的節(jié)點對象。portlet-viewer-js-class展示界面對應的文件。portlet-editor-js-class編輯界面對應的文件。文件內(nèi)容示例: helloworld helloworld helloworld false csdc.helloworldportletcsdc.h

37、elloworldportletedit 4.1.3 打包擴展插件使用jar命令將擴展插件打包,以ext為擴展名。操作步驟如下:(1) 啟動命令行提示符cmd;(2) 通過cd命令進入到項目所在的srcweb目錄,例如:d:hellodemosrcweb;(3) 輸入命令:c: jdk1.5.0_01binjar.execvfhellodemo.ext *.*(4) 回車后,即將hellodemosrcweb目錄下的所有內(nèi)容打包進hellodemo.ext文件。4.1.4 加載擴展插件 通過配置界面對擴展插件進行加載加載單個插件:(1) 啟動infotalk應用服務。(2) 訪問

38、http:/ip:host/infotalk/config頁面。(3) 設置擴展插件存放路徑。如:d: infotalkextensions。(4) 保存設置。(5) 重新啟動infotalk應用服務器。加載多個插件:為了能夠同時加載多個擴展插件,把sample1.ext、sample2.ext和sample3三個擴展插件存放在d: infotalkextensions目錄中。在config頁面,設置擴展包存放路徑為:d: infotalkextensions。說明:l 一般情況下建議將擴展插件打包為*.ext文件,但系統(tǒng)也支持直接將開發(fā)的擴展插件srcweb目錄直接拷貝到擴展包的加載目錄,這

39、樣該擴展插件也能被加載。如上圖所示,sample1和sample2分別打包為 ext 文件了,而sample3則直接拷貝的srcweb目錄,這三個擴展包都會被正確加載。l 擴展插件加載順序參看常見問題:擴展插件的加載策略是什么。 通過修改extensions.list文件對擴展插件進行加載通過修改infotalk.war/web-inf/extensions/extensions.list文件,對擴展插件進行加載。文件中的每一行為一個擴展插件路徑的聲明。如圖所示:說明:l 擴展插件加載順序參看常見問題:擴展插件的加載策略是什么。 列出已加載擴展插件登錄infotal

40、k,通過【管理】【工具】【開發(fā)人員調(diào)試工具集】【列出已加載擴展插件】,查看所部署的擴展插件是否已正確加載。4.2 第二課:替換infotalk文件 infotalk擴展插件可以方便的替換infotalk原有的文件,包括圖片、樣式、html、jsp和js文件等。當需要替換原有的文件時,在擴展插件中建立與該文件在infotalk.war包中一致的目錄結(jié)構,在該目錄中建立同名的文件。infotalk會優(yōu)先加載擴展插件中的文件。替換文件最常用的場景:l 通過替換圖片及樣式來改變infotalk的皮膚。l 通過替換html文件來改變infotalk的布局。l 修改某javascript對象的方法。4.2

41、.1 替換圖片文件示例說明:infotalk默認登錄界面的背景圖如下所示:按招商銀行項目要求,需要修改登錄界面。具體界面如下:實現(xiàn)步驟:(1) 在infotalk.war包中找到登錄背景圖片所在目錄:“infotalk.warvisionimglogin”。(2) 把需要替換的背景圖、輸入框的背景圖及確定按鈕圖,分別命名為login_bg2.jpg、login_bg3.gif、login_btn_ok.gif。(3) 在sample項目中按背景圖文件在infotalk.war中的目錄結(jié)構創(chuàng)建相同的目錄,并把制作好的三個圖片文件放到該目錄中。(4) 將sample項目打包為sample2.ext

42、,參照上節(jié)在infotalk應用服務器中加載擴展插件。(5) 重啟infotalk應用服務器后,再次登錄即可看到替換的效果。示例代碼下載4.3 第三課:自定義模塊自定義模塊是指對一級模塊和二級模塊進行改造。通常用于集成第三方系統(tǒng)頁面以及對系統(tǒng)主界面的改造。4.3.1 模塊的擴展點模塊的擴展點主要用于對一級模塊和二級模塊進行一些添加、編輯、刪除的操作。通過擴展點的配置,可以方便的把新功能無縫集成到系統(tǒng)中,而無需修改系統(tǒng)代碼。擴展點動作類名描述mainframe.actionsfreequery.actions. mainframeaction 主框架browse.actionsfreequery

43、.actions. browseaction 瀏覽custom.actionsfreequery.actions.customaction 定制manager.actionsfreequery.actions.manageraction 管理myaccount.actionsfreequery.actions.myaccountaction 個人設置4.3.2 模塊動作接口對象mon.abstractaction對象。繼承該對象主要用于做模塊的點擊操作,不存在二級模塊展現(xiàn)。var abstractaction = function(treeslot, toolb

44、arslot, viewslot, leftpane, splitter, tabslot)/*當打開模塊時調(diào)用*/abstractatotype.open = function(arg)/* 當模塊關閉時調(diào)用*/abstractatotype.close = function(arg)freequery.actions.abstracttabaction對象。繼承該對象主要用于展現(xiàn)二級模塊的操作。var abstracttabaction = function(treeslot, toolbarslot, viewslot, leftpane, split

45、ter, tabslot,locationslot, viewclass) /*獲取二級模塊定義*/abstracttabatotype.readconfig = function()/*獲取面板接口對象*/abstracttabatotype.getslots = function()在二個接口對象的構造函數(shù)中涉及到六個系統(tǒng)的載體對象:l treeslot:資源樹載體;l toolbarslot:工具欄載體;l viewslot:展現(xiàn)區(qū)載體;l leftpane:左面板載體;l splitter:左面板與右面板之間的分離區(qū);l tabslot:二級模塊載體

46、。這些對象對應的界面載體如圖所示:4.3.3 一級模塊示例一級模塊指【瀏覽】、【定制】、【管理】、【儀表盤】、【個人設置】、【幫助】等功能模塊入口。如圖所示: 在未尾添加新模塊示例說明在infotalk一級模塊未尾處添加新模塊“163網(wǎng)站”,點擊該模塊在瀏覽區(qū)域中展現(xiàn)163網(wǎng)站內(nèi)容。如圖所示:修改configurationpatch.js擴展點配置文件var configurationpatch = extensionpoints : mainframe : actions : /在標簽欄的末尾添加【urlaction】classname :ext.actions.urlaction,groupid :defaulturlaction模塊動作接口實現(xiàn)類在visionjsextactions目錄下新建urlaction.js文件,用于定義“163網(wǎng)站”模塊的點擊動作。urlaction對象繼承mon.abstractaction模塊動作基類。示例代碼如下:var url

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論