亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

繪制應(yīng)用程序視圖的方法和裝置的制作方法

文檔序號:6437943閱讀:155來源:國知局
專利名稱:繪制應(yīng)用程序視圖的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件開發(fā)領(lǐng)域,特別涉及一種繪制應(yīng)用程序視圖的方法和裝置
背景技術(shù)
編寫網(wǎng)絡(luò)應(yīng)用程序是一個(gè)單調(diào)乏味且易于出錯(cuò)的過程。開發(fā)人員可能要花費(fèi)90% 的時(shí)間來處理瀏覽器行話。此外,構(gòu)建、重復(fù)使用以及維護(hù)大量JavaScript代碼庫和AJAX 組件可能困難且不可靠。如何提高應(yīng)用程序的開發(fā)效率一直是人們關(guān)注的焦點(diǎn)和致力于解決的問題?,F(xiàn)有的網(wǎng)絡(luò)應(yīng)用程序開發(fā)的框架,如圖1所示,開發(fā)人員對于不同的瀏覽器,要撰寫不同瀏覽器端運(yùn)行的AJAX腳本和撰寫可以和瀏覽器交互的運(yùn)行在服務(wù)器端的程序,來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用程序,另外,客戶端和服務(wù)端采用不同語言,開發(fā)人員在開發(fā)過程中需要在不同種語言直接頻繁切換。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題對于不同的瀏覽器,由于運(yùn)行在不同瀏覽器上的AJAX腳本有差異,且同一瀏覽器的不同版本AJAX腳本也有差異,開發(fā)人員需要使用多種編碼語言構(gòu)建和維護(hù)JavaScript 前端的AJAX腳本;調(diào)試AJAX腳本是一件非常繁雜的事,由于AJAX腳本是弱類型的語言,很多BUG都是出現(xiàn)在數(shù)據(jù)類型混淆的問題上,隨著腳本數(shù)量的增多,隱含的BUG也會(huì)增多,且不容易將BUG找出來,增加了網(wǎng)絡(luò)應(yīng)用程序的開發(fā)難度。

發(fā)明內(nèi)容
為了降低網(wǎng)絡(luò)應(yīng)用程序的開發(fā)難度,本發(fā)明提供了一種繪制應(yīng)用程序視圖的方法和裝置,本發(fā)明是一種基于J2EE結(jié)合GWT開發(fā)的構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的方法和裝置。所述技術(shù)方案如下本發(fā)明提供了一種繪制應(yīng)用程序視圖的方法,所述方法包括基于GWT加載主框架,并實(shí)例化主框架;啟動(dòng)所述主框架,并在所述主框架中啟動(dòng)主持;調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)所述應(yīng)用程序資源和主持繪制出應(yīng)用程序視圖。具體地,所述主框架至少包括中心面板,所述實(shí)施例主框架具體包括預(yù)設(shè)主框架的中心面板對應(yīng)的面板參數(shù),所述面板參數(shù)包括邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、高度、寬度及初始內(nèi)容中的一個(gè)或多個(gè);根據(jù)所述中心面板對應(yīng)的面板參數(shù),實(shí)例化所述主框架;相應(yīng)地,啟動(dòng)主框架具體包括根據(jù)所述中心面板對應(yīng)的面板參數(shù),調(diào)用部署中心面板函數(shù),得到中心面板實(shí)例。具體地,所述主框架還包括頂部面板、左側(cè)面板、底部面板、右側(cè)面板中的一個(gè)面板或多個(gè)面板;相應(yīng)地,所述實(shí)例化主框架還包括
預(yù)設(shè)主框架的頂部面板、左側(cè)面板、底部面板和右側(cè)面板各自對應(yīng)的面板參數(shù),所述面板參數(shù)包括邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、高度、寬度及初始內(nèi)容中的一個(gè)或多個(gè);根據(jù)所述頂部面板、左側(cè)面板、底部面板和右側(cè)面板各自對應(yīng)的面板參數(shù),實(shí)例化所述主框架。進(jìn)一步地,所述啟動(dòng)主框架還包括根據(jù)所述頂部面板對應(yīng)的面板參數(shù),調(diào)用部署頂部面板函數(shù),得到頂部面板實(shí)例;根據(jù)所述左側(cè)面板對應(yīng)的面板參數(shù),調(diào)用部署左側(cè)面板函數(shù),得到左側(cè)面板實(shí)例;根據(jù)所述底部面板對應(yīng)的面板參數(shù),調(diào)用部署底部面板函數(shù),得到底部面板實(shí)例;根據(jù)所述右側(cè)面板對應(yīng)的面板參數(shù),調(diào)用部署右側(cè)面板函數(shù),得到右側(cè)面板實(shí)例。其中,所述在所述主框架中啟動(dòng)主持具體包括在所述主框架中設(shè)置視圖對主持的監(jiān)聽,相應(yīng)地,所述根據(jù)所述應(yīng)用程序資源和主持繪制出應(yīng)用程序視圖,具體包括實(shí)例化根據(jù)預(yù)存的應(yīng)用程序資源得到的視圖;在主框架的主持中設(shè)置繪制視圖的監(jiān)聽標(biāo)志,所述監(jiān)聽標(biāo)志對應(yīng)一個(gè)視圖;所述監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到所述監(jiān)聽標(biāo)志時(shí),在所述主框架中繪制出所述監(jiān)聽標(biāo)志對應(yīng)的視圖。進(jìn)一步地,所述方法還包括啟動(dòng)主持后,監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志時(shí),在所述主框架中添加所述視圖對所述主持的監(jiān)聽;獲取所述主持對應(yīng)的所有視圖,并添加所述主持對應(yīng)的所有視圖對所述主持的監(jiān)聽。進(jìn)一步地,所述方法還包括視圖監(jiān)聽到主持時(shí),向所述主持發(fā)出請求信息,所述請求信息中攜帶使所述主持對應(yīng)于另一視圖的信息;所述主持接收到所述請求信息后,更改自身的監(jiān)聽標(biāo)志,使更改后的監(jiān)聽標(biāo)志對應(yīng)所述另一個(gè)視圖;所述另一個(gè)視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志為自身視圖時(shí),切換所述另一視圖到當(dāng)前視圖。本發(fā)明還提供了一種繪制應(yīng)用程序視圖的裝置,所述裝置包括加載模塊,用于基于GWT加載主框架,并實(shí)例化主框架;啟動(dòng)模塊,用于啟動(dòng)所述主框架,并在所述主框架中啟動(dòng)主持;繪制模塊,用于調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)所述應(yīng)用程序資源和主持繪制出應(yīng)用程序視圖。其中,所述啟動(dòng)模塊還用于在所述主框架中設(shè)置視圖對主持的監(jiān)聽;相應(yīng)地,所述繪制模塊具體包括調(diào)度單元和繪制單元;所述調(diào)度單元,用于調(diào)度預(yù)存的應(yīng)用程序資源得到視所述繪制單元,用于實(shí)例化所述調(diào)度單元得到的視圖;在主框架的主持中設(shè)置繪制視圖的監(jiān)聽標(biāo)志,所述監(jiān)聽標(biāo)志對應(yīng)一個(gè)視圖;所述監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到所述監(jiān)聽標(biāo)志時(shí),在所述主框架中繪制出所述監(jiān)聽標(biāo)志對應(yīng)的視圖。其中,所述裝置還包括切換模塊,所述切換模塊包括發(fā)送單元、更改單元和切換單元;所述發(fā)送單元,用于當(dāng)視圖監(jiān)聽到主持時(shí),向所述主持發(fā)出請求信息,所述請求信息中攜帶使所述主持對應(yīng)于另一視圖的信息;更改單元,用于當(dāng)所述主持接收到所述請求信息后,更改自身的監(jiān)聽標(biāo)志,使更改后的監(jiān)聽標(biāo)志對應(yīng)所述另一個(gè)視圖;切換單元,用于所述另一個(gè)視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志為自身視圖時(shí),切換所述另一視圖到當(dāng)前視圖。本發(fā)明提供的技術(shù)方案帶來的有益效果是通過使用GWT所提供的控件構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架,并通過主持與視圖之間的關(guān)系,在容器框架中繪制出視圖。由于GWT采用控件或組件作為表現(xiàn)層開發(fā)的基本單元,以事件驅(qū)動(dòng)方式控制和操作組件,可以實(shí)現(xiàn)高度復(fù)雜和友好的人機(jī)交互界面,可以完全運(yùn)用JAVA開發(fā)復(fù)雜且用戶體驗(yàn)良好的網(wǎng)絡(luò)應(yīng)用程序,通過該框架進(jìn)行網(wǎng)絡(luò)應(yīng)用程序的開發(fā),可以提高網(wǎng)絡(luò)應(yīng)用程序的開發(fā)效率。


圖1是現(xiàn)有技術(shù)中提供的網(wǎng)絡(luò)應(yīng)用程序開發(fā)的框架示意圖;圖2是本發(fā)明1中提供的GWT的結(jié)構(gòu)示意圖;圖3是本發(fā)明1中提供的構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架的方法流程圖;圖4是本發(fā)明2中提供的構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架的方法流程圖;圖5是本發(fā)明3中提供的構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架的裝置的示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。實(shí)施例1本發(fā)明采用GWT開發(fā)表現(xiàn)層,完全采用JAVA語言構(gòu)建和維護(hù)JavaScript前端應(yīng)用程序,能夠使用hibernate作為服務(wù)器端的數(shù)據(jù)持久層。其中,GWT的結(jié)構(gòu)參見圖1,GWT是一個(gè)JAVA軟件開發(fā)框架,完全使用JAVA —種語言作為開發(fā)語言,用于開發(fā)類似于Google Maps和Gmail的AJAX應(yīng)用程序。本發(fā)明中,GWT 的設(shè)計(jì)參考JAVA AWT包設(shè)計(jì),如類命名規(guī)則、接口設(shè)計(jì)、事件監(jiān)聽等均與JAVA AWT包的設(shè)計(jì)方法相同,本發(fā)明用JAVA編程語言開發(fā)界面,然后用GWT編譯器將JAVA類轉(zhuǎn)換成適合瀏覽器執(zhí)行的JavaScript和HTML。GWT比傳統(tǒng)網(wǎng)絡(luò)應(yīng)用程序開發(fā)方式容易學(xué)習(xí)、調(diào)試,由于AJAX和html經(jīng)過編譯,開發(fā)程序的效率比人工撰寫的代碼要高。GWT采用控件或組件作為表現(xiàn)層開發(fā)的基本單元,以事件驅(qū)動(dòng)方式控制和操作組件,可以實(shí)現(xiàn)高度復(fù)雜和友好的人機(jī)交互界面,完全運(yùn)用JAVA 開發(fā)復(fù)雜且用戶體驗(yàn)良好的網(wǎng)絡(luò)應(yīng)用程序,實(shí)現(xiàn)傳統(tǒng)JSP等網(wǎng)絡(luò)應(yīng)用程序開發(fā)中需要大量AJAX才能夠?qū)崿F(xiàn)人機(jī)交互效果。參見圖2,本發(fā)明提供了一種構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架的方法,具體包括步驟101 基于GWT加載主框架,并實(shí)例化主框架;步驟102 啟動(dòng)主框架,并在主框架中啟動(dòng)主持;步驟103 調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)應(yīng)用程序資源和主持繪制出應(yīng)用程序視圖。本發(fā)明提供的方法,通過使用GWT所提供的控件構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架,并通過主持與視圖之間的關(guān)系,在容器框架中繪制出視圖。由于GWT采用控件或組件作為表現(xiàn)層開發(fā)的基本單元,以事件驅(qū)動(dòng)方式控制和操作組件,可以實(shí)現(xiàn)高度復(fù)雜和友好的人機(jī)交互界面,可以完全運(yùn)用JAVA開發(fā)復(fù)雜且用戶體驗(yàn)良好的網(wǎng)絡(luò)應(yīng)用程序,通過該框架進(jìn)行網(wǎng)絡(luò)應(yīng)用程序的開發(fā),可以提高網(wǎng)絡(luò)應(yīng)用程序的開發(fā)效率。實(shí)施例2參見圖2,本發(fā)明提供了一種構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架的方法,具體包括步驟201 基于GWT加載網(wǎng)絡(luò)應(yīng)用程序開發(fā)的主框架,并實(shí)例化主框架;其中,主框架是網(wǎng)絡(luò)應(yīng)用程序開發(fā)的應(yīng)用場景,該主框架由面板組成,根據(jù)具體的應(yīng)用場景,主框架包括中心面板、頂部面板、左側(cè)面板、底部面板和右側(cè)面板中的一個(gè)面板和多個(gè)面板,實(shí)際應(yīng)用中主框架至少包括中心面板。具體地,加載主框架時(shí)可以由Framework類的onModuleLoad函數(shù)執(zhí)行,在執(zhí)行 onModuleLoad的過程中作了實(shí)例化主框架的操作,實(shí)例化主框架就是實(shí)例化AppStart類, 由于AppStart屬于一個(gè)抽象類,所以實(shí)際實(shí)例化的是AppStartWithCommand類。其中,實(shí)例化是指用類創(chuàng)建對象的過程,實(shí)例化一個(gè)對象其實(shí)就是在內(nèi)存中開放一個(gè)空間,用于存儲(chǔ)對象。主框架包括中心面板時(shí),實(shí)例化AppStartWithCommand類的過程,具體是實(shí)例化中心面板,即預(yù)設(shè)主框架的中心面板對應(yīng)的面板參數(shù),面板參數(shù)包括邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、高度、寬度及初始內(nèi)容中的一個(gè)或多個(gè);根據(jù)中心面板對應(yīng)的面板參數(shù),實(shí)例化所述主框架。主框架除了中心面板,還包括頂部面板、左側(cè)面板、底部面板和右側(cè)面板中的一個(gè)面板或多個(gè)面板時(shí),實(shí)例化AppStartWithCommand類的過程,具體是實(shí)例化頂部面板、左側(cè)面板、底部面板和右側(cè)面板,實(shí)例化各個(gè)面板的過程不分先后順序。初始化主框架的操作主要是根據(jù)預(yù)設(shè)的面板參數(shù),設(shè)置出上述各面板。面板參數(shù)包括邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、高度、寬度及初始內(nèi)容中的一個(gè)或多個(gè)。 通過初始化操作,設(shè)置上述各面板的邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、寬度、高度及初始內(nèi)容等基本要素。步驟202 啟動(dòng)主框架,并布局主框架中的面板;其中,本發(fā)明中通過執(zhí)行實(shí)例化后的AppStart類的StartRun函數(shù)來啟動(dòng)主框架。 主框架包括中心面板時(shí),啟動(dòng)主框架包括根據(jù)預(yù)設(shè)的中心面板的面板參數(shù),調(diào)用AppStart 類的部署中心面板函數(shù)cbployCenterPanel,得到中心面板實(shí)例。主框架除了中心面板,還包括頂部面板、左側(cè)面板、底部面板和右側(cè)面板中的一個(gè)面板或多個(gè)面板時(shí),啟動(dòng)主框架還包括根據(jù)預(yù)設(shè)的頂部面板的面板參數(shù),調(diào)用AppStart類的部署頂部面板函數(shù)d印loyNorthPanel,得到頂部面板實(shí)例;根據(jù)預(yù)設(shè)的左側(cè)面板的面板參數(shù),調(diào)用AppStart類的部署左側(cè)面板函數(shù)cbployWestPanel,返回結(jié)果為左側(cè)面板實(shí)例;根據(jù)預(yù)設(shè)的底部面板的面板參數(shù),調(diào)用AppStart類的ploySouthPanel部署底部面板函數(shù),得到底部面板實(shí)例;根據(jù)預(yù)設(shè)的右側(cè)面板的面板參數(shù),調(diào)用AppStart類的部署右側(cè)面板函數(shù)CbployEastPanel,得到右側(cè)面板實(shí)例。具體地,布局頂部面板和左側(cè)面板時(shí),由于AppStart類的d印IoyNorthPanel函數(shù)和CbployWestPanel函數(shù)都屬于抽象函數(shù),所以實(shí)際是在AppStartWithCommand類的 deployNorthPanel 函數(shù),deployffestPanel 函數(shù)中進(jìn)行布局,AppStartWithCommand 類的 CbployNorthPanel函數(shù)和cbployWestPanel函數(shù)主要負(fù)責(zé)頂部面板,左側(cè)面板的外部布局,使頂部面板和左側(cè)面板分別布局在頂部和左側(cè)。同時(shí),還可以設(shè)置頂部和左側(cè)的外部邊距、最大尺寸和最小尺寸等參數(shù)。實(shí)際應(yīng)用中,布局左側(cè)面板的過程中會(huì)布局位于左側(cè)面板內(nèi)的命令菜單,如布局位于左側(cè)面板的手風(fēng)琴菜單,該手風(fēng)琴菜單屬于命令菜單。手風(fēng)琴菜單是交互頁面上經(jīng)常使用的一種展現(xiàn)方式,通常用在有多個(gè)二級導(dǎo)航(或內(nèi)容)以上的并列層級,這些層級可以是標(biāo)簽,標(biāo)題,卡片等。但是不管形式如何,其目的是為了將有用的信息展現(xiàn)給用戶,將臨時(shí)不用的信息隱藏起來,可以起到節(jié)省空間的作用。具體地,布局中心面板時(shí),將中心面板實(shí)例作為參數(shù)傳遞到實(shí)例化AppContext的構(gòu)造函數(shù)中,實(shí)例化AppContext的構(gòu)造函數(shù)還需要另一個(gè)參數(shù)ActivityList. ACTIVITYP 類型的枚舉值,由枚舉值唯一標(biāo)識(shí)一個(gè)主持,是獲取主持的依據(jù)。AbstractActivity是所有主持類的抽象類,實(shí)際應(yīng)用中,在AbstractActivity中有多個(gè)主持,主持的數(shù)量隨實(shí)際情況而定。本發(fā)明以AbstractActivity有兩個(gè)主持為例進(jìn)行說明,這兩個(gè)主持分別為 IndexActivity 禾口 TopicActivity,均繼自 AbstractActivity。保存實(shí)例化 AppContext 后的結(jié)果,如保存到_appC0ntext中,實(shí)例化AppContext就是初始化應(yīng)用程序上下文。步驟203 根據(jù)預(yù)設(shè)的應(yīng)用程序上下文獲取初始功能的主持類別,根據(jù)預(yù)設(shè)的主持類別與主持的對應(yīng)關(guān)系,獲取主持,并實(shí)例化主持;具體地,依據(jù)ActivityList. ACTIVITYP類型的枚舉值通過調(diào)用ActivityList. getActivityByactivityplace函數(shù)獲取主持類別,由于預(yù)設(shè)有主持類別與主持的對應(yīng)關(guān)系,得到主持類別后,根據(jù)主持類別與主持的對應(yīng)關(guān)系,獲取該主持類別對應(yīng)的主持,如獲取到IndexActivity主持,并對主持進(jìn)行實(shí)例化。步驟204 在主框架中啟動(dòng)主持;具體地,下面以在中心面板中啟動(dòng)主持,并在中心面板中添加視圖為例進(jìn)行說明。在實(shí)例化AppContext的后,調(diào)用_aCtivity的Start函數(shù)啟動(dòng)主持。由于 AbstractActivity為所有主持類的抽象類,調(diào)用它的Start函數(shù)就會(huì)調(diào)用相應(yīng)主持的 Start函數(shù)。Start函數(shù)有兩個(gè)參數(shù)分別是RPC代理和中心面板,其中RPC代理用于主持和服務(wù)器通信。實(shí)際應(yīng)用中,由于一個(gè)主持可以對應(yīng)多個(gè)視圖,所以啟動(dòng)主持時(shí)要實(shí)例化該主持對應(yīng)的所有視圖。如本發(fā)明中,主框架的IndexActivity主持對應(yīng)兩個(gè)視圖,分別為 Editview視圖和Indexview視圖,TopicActivity主持對應(yīng)一個(gè)Topicview視圖,因此,本實(shí)施例中實(shí)例化IndexActivity時(shí),還要實(shí)例化Editview視圖和Indexview視圖;實(shí)例化TopicActivity時(shí),還要實(shí)例化Topicview視圖。本發(fā)明還進(jìn)一步保存視圖實(shí)例,用于主持獲取視圖數(shù)據(jù)。其中,監(jiān)聽是靠一種監(jiān)聽者設(shè)計(jì)模式實(shí)現(xiàn),監(jiān)聽者設(shè)計(jì)模式又被稱作觀察者設(shè)計(jì)模式,下面是對觀察者設(shè)計(jì)模式的介紹。關(guān)于監(jiān)聽定義,監(jiān)聽定義了對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)主題對象的狀態(tài)發(fā)生改變時(shí),所有監(jiān)聽它的觀察者對象都得到通知并被自動(dòng)更新。關(guān)于監(jiān)聽原理,主題對象并不知道引用了哪些具體觀察者對象類型,而只知道抽象觀察者類型,這樣具體主題對象可以動(dòng)態(tài)地維護(hù)一系列的觀察者對象的引用,并在需要的時(shí)候調(diào)用每一個(gè)觀察者共有的更新方法。這是“針對接口編程”的體現(xiàn)。關(guān)于監(jiān)聽特征,監(jiān)聽特征包括了抽象主題角色、抽象觀察者角色、具體主持角色、 具體觀察者角色。其中,抽象主題(Subject)角色保存所有的觀察者對象的引用到一個(gè)聚集里(如 Vector),并提供注冊或移除觀察者的操作。一般用一個(gè)抽象類或一個(gè)接口實(shí)現(xiàn)。也稱被觀察者或發(fā)布者。抽象觀察者(Observer)角色為具體觀察者定義一個(gè)更新接口,更新接口中包含了更新的方法,在得到主題的通知時(shí)更新自己。一般用一個(gè)抽象類或一個(gè)接口實(shí)現(xiàn)。也稱監(jiān)聽者或訂閱者。具體主題(ConcreteSubject)角色實(shí)現(xiàn)抽象主題,在內(nèi)部狀態(tài)發(fā)生變化時(shí),給所有注冊的觀察者發(fā)出通知。具體觀察者(ConcreteObserver)角色實(shí)現(xiàn)抽象觀察者角色所定義的更新方法, 在得到主題的通知時(shí)更新自己的狀態(tài)。如有需要,具體觀察者可以保存一個(gè)指向具體主題對象的引用。監(jiān)聽者設(shè)計(jì)模式時(shí)常被用于事件處理,本技術(shù)中把它用于視圖監(jiān)聽主持。其中,設(shè)置視圖對主持的監(jiān)聽后,視圖會(huì)實(shí)時(shí)監(jiān)聽到主持操作的變化,從而便于視圖做出相應(yīng)的變化。同時(shí),視圖也可以把視圖的變化傳遞給主持,主持的變化又會(huì)被別的視圖監(jiān)聽到,視圖可以做出相應(yīng)變化,這樣可以做到視圖之間的監(jiān)聽。步驟205 實(shí)例化根據(jù)預(yù)存的應(yīng)用程序資源得到的視圖,在主框架的主持中設(shè)置繪制視圖的監(jiān)聽標(biāo)志,監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到監(jiān)聽標(biāo)志時(shí),在主框架中繪制監(jiān)聽標(biāo)志對應(yīng)的視圖。具體地,監(jiān)聽標(biāo)志對應(yīng)一個(gè)視圖。通過設(shè)置監(jiān)聽標(biāo)志,使相應(yīng)的視圖監(jiān)聽到該監(jiān)聽標(biāo)志后,繪制相應(yīng)的視圖。如主持設(shè)置的監(jiān)聽標(biāo)志為a,若視圖在視圖庫中的標(biāo)識(shí)為a,則視圖a監(jiān)聽到繪制視圖的標(biāo)志a后,觸發(fā)中心面板繪制視圖a。在主框架中完成繪制視圖后,即完成了網(wǎng)絡(luò)應(yīng)用程序的框架的構(gòu)建方案,從而可以根據(jù)構(gòu)建的框架進(jìn)行網(wǎng)絡(luò)應(yīng)用程序的開發(fā)操作。進(jìn)一步地,本發(fā)明還提供了主持之間的切換操作。具體地,主持發(fā)起切換指令,該切換指令中攜帶了要切換到的另一主持的類別,根據(jù)該切換指令獲取該切換后的主持類別,根據(jù)該主持類別獲取切換后的主持,本發(fā)明將切換后的主持稱為新主持,對新主持進(jìn)行實(shí)例化處理,并實(shí)例化該新主持對應(yīng)的新視圖,添加該新視圖對新主持的監(jiān)聽,并觸發(fā)綁定視圖上控件的事件,綁定視圖上控件的事件后,事件處理函數(shù)會(huì)在用戶激發(fā)視圖上控件時(shí),作出響應(yīng)。對該新主持設(shè)置繪制視圖的監(jiān)聽標(biāo)志,該監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到該監(jiān)聽標(biāo)志后,繪制視圖。進(jìn)一步地,本發(fā)明還提供了視圖之間的切換操作。具體地,視圖切換到監(jiān)聽其他主持時(shí),向當(dāng)前監(jiān)聽的主持發(fā)出請求信息,該請求信息中攜帶使當(dāng)前主持對應(yīng)于另一視圖的信息;當(dāng)前主持接收到請求信息后,更改自身的監(jiān)聽標(biāo)志,使更改后的監(jiān)聽標(biāo)志對應(yīng)另一個(gè)視圖;因而,另一個(gè)視圖監(jiān)聽到當(dāng)前主持的監(jiān)聽標(biāo)志為自身視圖時(shí),觸發(fā)面板繪制出另一個(gè)視圖。另外,根據(jù)構(gòu)建的框架進(jìn)行網(wǎng)絡(luò)應(yīng)用程序的開發(fā)時(shí),可以將從服務(wù)器獲取的顯示數(shù)據(jù)填充到視圖中。具體地,本發(fā)明由GWT提供網(wǎng)絡(luò)訪問庫,用于在瀏覽器與服務(wù)器的交互時(shí)使用,本發(fā)明通過在瀏覽器輸入數(shù)據(jù),并將輸入的數(shù)據(jù)提交到服務(wù)器上,進(jìn)行瀏覽器與服務(wù)器之間的交互,并從服務(wù)器獲取視圖中顯示的數(shù)據(jù),獲取視圖中顯示的數(shù)據(jù)可以在繪制視圖之前,也可以在完成繪制視圖之后,若獲取視圖中顯示的數(shù)據(jù)在繪制視圖之前,需要將該數(shù)據(jù)進(jìn)行緩存,完成視圖繪制后,將該數(shù)據(jù)填充到視圖中。填充完成后,即在瀏覽器上顯示了開發(fā)出來的程序的運(yùn)行效果。具體地,主持和服務(wù)器端交互時(shí)采用JSONObject數(shù)據(jù)結(jié)構(gòu),避免了不同數(shù)據(jù)結(jié)構(gòu)傳遞時(shí)需要定義相應(yīng)的對象,減少了服務(wù)器的工作量。另外,JSON作為一種輕量級數(shù)據(jù)交互結(jié)構(gòu),大大降低了交互的數(shù)據(jù)量。下面給出JSONObject數(shù)據(jù)結(jié)構(gòu)的代碼
JSONObject input = new JSONObject ();
JSONString value = new JSONString("mazhao");
input, put("name", value);
JSONArray arrayValue = new JSONArray();
arrayValue. set(0, new JSONString("array
arrayValue. set(1,new JSONString("array
arrayValue. set (2, new JSONString("array
input.put ("array", arrayValue);
String textToServer=input. toString();
textToServer為向服務(wù)器發(fā)送的json文本。
還原服務(wù)器端傳遞的JSONObject
JSONObject jsonObject =(JSONObject) JSONParser. parseLenient(result);
jsonObject為從服務(wù)器還原的JSONObject對象。
本發(fā)明提供的方法,與傳統(tǒng)的JAVA WEB應(yīng)用程序不同,在開發(fā)過程中用戶無需撰寫任何HTML和JAVA SCRIPT以及CSS等在瀏覽器客戶端上面運(yùn)行的程序,本發(fā)明允許開發(fā)人員使用JAVA編程語言快速構(gòu)建和維護(hù)復(fù)雜而又高性能的JavaScript前端應(yīng)用程序,降低了開發(fā)難度。本發(fā)明由于使用JAVA語言一種編程語言,避免了開發(fā)人員在不同種語言之
item 0")); item Y')); item 2"));間頻繁切換的麻煩,自始至終開發(fā)人員只使用JAVA—種語言進(jìn)行軟件開發(fā),因而在服務(wù)器端的軟件開發(fā)中可以完全保留傳統(tǒng)網(wǎng)絡(luò)應(yīng)用程序開發(fā)的優(yōu)勢,比如hibernate等來提高應(yīng)用程序服務(wù)器端的開發(fā)效率和性能。Hibernate可以為應(yīng)用程序提供數(shù)據(jù)持久層,提高應(yīng)用程序數(shù)據(jù)訪問的性能。本發(fā)明的優(yōu)點(diǎn)還在于,可以和GWT的很多第三方支撐庫(比如GWTEXT)結(jié)合使用, 整體架構(gòu)采用更符合GWT開發(fā)的MVP設(shè)計(jì)模式,MVP設(shè)計(jì)模式完全隔離了模塊和視圖,一個(gè)主持可以對應(yīng)多個(gè)視圖,通過主持來實(shí)現(xiàn)模塊和視圖的交互,并在主持和視圖交互時(shí)采用視圖監(jiān)聽主持的方式。本發(fā)明提供的方法,通過基于GWT采用MVP設(shè)計(jì)模式作為整體架構(gòu),可以清晰地分離模塊和視圖。其中,通過主持和視圖交互時(shí)采用視圖監(jiān)聽主持的方式,主持?jǐn)?shù)據(jù)的變化立即會(huì)被視圖監(jiān)聽到,視圖做出相應(yīng)的改變,如果一個(gè)視圖有了變化通知主持,其他視圖監(jiān)聽到主持的變化也會(huì)做出相應(yīng)的變化,這樣可以做到視圖之間的監(jiān)聽,可以保證良好的人際對話。在主持之間切換時(shí)采用狀態(tài)設(shè)計(jì)模式可以靈敏切換主持,保持客戶端功能模塊的完整和獨(dú)立。另外,本發(fā)明在主持和服務(wù)器交互時(shí)采用JSONObject數(shù)據(jù)結(jié)構(gòu),避免不同數(shù)據(jù)結(jié)構(gòu)傳遞時(shí)需要定義相應(yīng)的對象,同時(shí)JSON作為一種輕量級數(shù)據(jù)交互結(jié)構(gòu),大大減低了交互的數(shù)據(jù)量。服務(wù)器端采用hibernate作為數(shù)據(jù)持久層,在大規(guī)模數(shù)據(jù)訪問時(shí)可以保持服務(wù)器端效率穩(wěn)定。實(shí)施例3參見圖4,本發(fā)明提供了一種繪制應(yīng)用程序視圖的裝置,所述裝置包括加載模塊 301、啟動(dòng)模塊302和繪制模塊303 ;加載模塊301,用于基于GWT加載主框架,并實(shí)例化主框架;啟動(dòng)模塊302,用于啟動(dòng)加載模塊301加載的主框架,并在主框架中啟動(dòng)主持;繪制模塊303,用于在啟動(dòng)模塊302啟動(dòng)的主框架中調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)應(yīng)用程序資源和主持繪制出應(yīng)用程序視圖。其中,啟動(dòng)模塊302還用于在主框架中設(shè)置視圖對主持的監(jiān)聽;相應(yīng)地,繪制模塊303具體包括調(diào)度單元和繪制單元;調(diào)度單元,用于調(diào)度預(yù)存的應(yīng)用程序資源得到視圖;繪制單元,用于實(shí)例化調(diào)度單元得到的視圖;在主框架的主持中設(shè)置繪制視圖的監(jiān)聽標(biāo)志,監(jiān)聽標(biāo)志對應(yīng)一個(gè)視圖;監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到監(jiān)聽標(biāo)志時(shí),在主框架中繪制出監(jiān)聽標(biāo)志對應(yīng)的視圖。其中,所述裝置還包括切換模塊,該切換模塊包括發(fā)送單元、更改單元和切換單元;所述發(fā)送單元,用于當(dāng)視圖監(jiān)聽到主持時(shí),向所述主持發(fā)出請求信息,所述請求信息中攜帶使所述主持對應(yīng)于另一視圖的信息;更改單元,用于當(dāng)所述主持接收到所述請求信息后,更改自身的監(jiān)聽標(biāo)志,使更改后的監(jiān)聽標(biāo)志對應(yīng)所述另一個(gè)視圖;切換單元,用于所述另一個(gè)視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志為自身視圖時(shí),切換所述另一視圖到當(dāng)前視圖。
本發(fā)明提供的裝置,通過使用GWT所提供的控件構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架,并通過主持與視圖之間的關(guān)系,在容器框架中繪制出視圖。由于GWT采用控件或組件作為表現(xiàn)層開發(fā)的基本單元,以事件驅(qū)動(dòng)方式控制和操作組件,可以實(shí)現(xiàn)高度復(fù)雜和友好的人機(jī)交互界面,可以完全運(yùn)用JAVA開發(fā)復(fù)雜且用戶體驗(yàn)良好的網(wǎng)絡(luò)應(yīng)用程序,通過該框架進(jìn)行網(wǎng)絡(luò)應(yīng)用程序的開發(fā),可以提高網(wǎng)絡(luò)應(yīng)用程序的開發(fā)效率。本實(shí)施例提供的裝置,具體可以與方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過軟件編程實(shí)現(xiàn),其軟件程序存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如計(jì)算機(jī)中的硬盤、光盤或軟盤。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種繪制應(yīng)用程序視圖的方法,其特征在于,所述方法包括 基于GWT加載主框架,并實(shí)例化主框架;啟動(dòng)所述主框架,并在所述主框架中啟動(dòng)主持;調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)所述應(yīng)用程序資源和所述主持繪制出應(yīng)用程序視圖。
2.如權(quán)利要求1所述的方法,其特征在于,所述主框架至少包括中心面板,所述實(shí)施例主框架具體包括預(yù)設(shè)主框架的中心面板對應(yīng)的面板參數(shù),所述面板參數(shù)包括邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、高度、寬度及初始內(nèi)容中的一個(gè)或多個(gè); 根據(jù)所述中心面板對應(yīng)的面板參數(shù),實(shí)例化所述主框架;相應(yīng)地,啟動(dòng)主框架具體包括根據(jù)所述中心面板對應(yīng)的面板參數(shù),調(diào)用部署中心面板函數(shù),得到中心面板實(shí)例。
3.如權(quán)利要求2所述的方法,其特征在于,所述主框架還包括頂部面板、左側(cè)面板、底部面板、右側(cè)面板中的一個(gè)面板或多個(gè)面板;相應(yīng)地,所述實(shí)例化主框架還包括預(yù)設(shè)主框架的頂部面板、左側(cè)面板、底部面板和右側(cè)面板各自對應(yīng)的面板參數(shù),所述面板參數(shù)包括邊框風(fēng)格、內(nèi)邊距、本身布局、背景顏色、標(biāo)題、高度、寬度及初始內(nèi)容中的一個(gè)或多個(gè);根據(jù)所述頂部面板、左側(cè)面板、底部面板和右側(cè)面板各自對應(yīng)的面板參數(shù),實(shí)例化所述主框架。
4.如權(quán)利要求3所述的方法,其特征在于,所述啟動(dòng)主框架還包括根據(jù)所述頂部面板對應(yīng)的面板參數(shù),調(diào)用部署頂部面板函數(shù),得到頂部面板實(shí)例; 根據(jù)所述左側(cè)面板對應(yīng)的面板參數(shù),調(diào)用部署左側(cè)面板函數(shù),得到左側(cè)面板實(shí)例; 根據(jù)所述底部面板對應(yīng)的面板參數(shù),調(diào)用部署底部面板函數(shù),得到底部面板實(shí)例; 根據(jù)所述右側(cè)面板對應(yīng)的面板參數(shù),調(diào)用部署右側(cè)面板函數(shù),得到右側(cè)面板實(shí)例。
5.如權(quán)利要求1所述的方法,其特征在于,所述在所述主框架中啟動(dòng)主持具體包括在所述主框架中設(shè)置視圖對主持的監(jiān)聽,相應(yīng)地,所述根據(jù)所述應(yīng)用程序資源和所述主持繪制出應(yīng)用程序視圖,具體包括實(shí)例化根據(jù)預(yù)存的應(yīng)用程序資源得到的視圖;在主框架的主持中設(shè)置繪制視圖的監(jiān)聽標(biāo)志,所述監(jiān)聽標(biāo)志對應(yīng)一個(gè)視圖; 所述監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到所述監(jiān)聽標(biāo)志時(shí),在所述主框架中繪制出所述監(jiān)聽標(biāo)志對應(yīng)的視圖。
6.如權(quán)利要求5所述的方法,其特征在于,所述方法還包括啟動(dòng)主持后,監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志時(shí),在所述主框架中添加所述視圖對所述主持的監(jiān)聽;獲取所述主持對應(yīng)的所有視圖,并添加所述主持對應(yīng)的所有視圖對所述主持的監(jiān)聽。
7.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括視圖監(jiān)聽到主持時(shí),向所述主持發(fā)出請求信息,所述請求信息中攜帶使所述主持對應(yīng)于另一視圖的信息;所述主持接收到所述請求信息后,更改自身的監(jiān)聽標(biāo)志,使更改后的監(jiān)聽標(biāo)志對應(yīng)所述另一個(gè)視圖;所述另一個(gè)視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志為自身視圖時(shí),切換所述另一視圖到當(dāng)前視圖。
8.一種繪制應(yīng)用程序視圖的裝置,其特征在于,所述裝置包括加載模塊,用于基于GWT加載主框架,并實(shí)例化主框架;啟動(dòng)模塊,用于啟動(dòng)所述主框架,并在所述主框架中啟動(dòng)主持;繪制模塊,用于調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)所述應(yīng)用程序資源和所述主持繪制出應(yīng)用程序視圖。
9.如權(quán)利要求8所述的裝置,其特征在于,所述啟動(dòng)模塊還用于在所述主框架中設(shè)置視圖對主持的監(jiān)聽;相應(yīng)地,所述繪制模塊具體包括調(diào)度單元和繪制單元;所述調(diào)度單元,用于調(diào)度預(yù)存的應(yīng)用程序資源得到視圖;所述繪制單元,用于實(shí)例化所述調(diào)度單元得到的視圖;在主框架的主持中設(shè)置繪制視圖的監(jiān)聽標(biāo)志,所述監(jiān)聽標(biāo)志對應(yīng)一個(gè)視圖;所述監(jiān)聽標(biāo)志對應(yīng)的視圖監(jiān)聽到所述監(jiān)聽標(biāo)志時(shí),在所述主框架中繪制出所述監(jiān)聽標(biāo)志對應(yīng)的視圖。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括切換模塊,所述切換模塊包括發(fā)送單元、更改單元和切換單元;所述發(fā)送單元,用于當(dāng)視圖監(jiān)聽到主持時(shí),向所述主持發(fā)出請求信息,所述請求信息中攜帶使所述主持對應(yīng)于另一視圖的信息;更改單元,用于當(dāng)所述主持接收到所述請求信息后,更改自身的監(jiān)聽標(biāo)志,使更改后的監(jiān)聽標(biāo)志對應(yīng)所述另一個(gè)視圖;切換單元,用于所述另一個(gè)視圖監(jiān)聽到所述主持的監(jiān)聽標(biāo)志為自身視圖時(shí),切換所述另一視圖到當(dāng)前視圖。
全文摘要
本發(fā)明公開了一種繪制應(yīng)用程序視圖的方法的裝置,屬于軟件開發(fā)領(lǐng)域。所述方法包括基于GWT加載主框架,并實(shí)例化主框架;啟動(dòng)所述主框架,并在所述主框架中啟動(dòng)主持;調(diào)度預(yù)存的應(yīng)用程序資源,根據(jù)所述應(yīng)用程序資源和主持繪制出應(yīng)用程序視圖。本發(fā)明通過使用GWT所提供的控件構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的框架,并通過主持與視圖之間的關(guān)系,在容器框架中繪制出視圖??梢詫?shí)現(xiàn)高度復(fù)雜和友好的人機(jī)交互界面,可以完全運(yùn)用JAVA開發(fā)復(fù)雜且用戶體驗(yàn)良好的網(wǎng)絡(luò)應(yīng)用程序,通過該框架進(jìn)行網(wǎng)絡(luò)應(yīng)用程序的開發(fā),可以提高網(wǎng)絡(luò)應(yīng)用程序的開發(fā)效率。
文檔編號G06F9/44GK102508665SQ20111035587
公開日2012年6月20日 申請日期2011年11月10日 優(yōu)先權(quán)日2011年11月10日
發(fā)明者金晨, 駱文平 申請人:北京高森明晨信息科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1