專(zhuān)利名稱:一種基于文件的菜單自動(dòng)生成系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在系統(tǒng)框架下,界面菜單和功能通過(guò)外部文件配置和 自動(dòng)生成的技術(shù),主要應(yīng)用在電信數(shù)據(jù)通信網(wǎng)管系統(tǒng)中的菜單設(shè)計(jì)、功能 樹(shù)設(shè)計(jì)、消息顯示窗口設(shè)計(jì)等。
背景技術(shù):
目前在通信系統(tǒng)中,構(gòu)建一個(gè)可管理、可運(yùn)營(yíng)、可分析的網(wǎng)絡(luò)很重要, 其中網(wǎng)管系統(tǒng)是管理員對(duì)整個(gè)網(wǎng)絡(luò)管理的一個(gè)非常重要的工具,通過(guò)網(wǎng)管 系統(tǒng)可以方便的對(duì)系統(tǒng)進(jìn)行配置、性能、安全等管理。網(wǎng)管系統(tǒng)隨著網(wǎng)絡(luò) 的建設(shè)其地位越來(lái)越重要。網(wǎng)絡(luò)的快速發(fā)展,就要求網(wǎng)管系統(tǒng)能適應(yīng)網(wǎng)絡(luò) 的快速變化,要能迅速滿足用戶的要求。其中對(duì)網(wǎng)管的設(shè)計(jì)、開(kāi)發(fā)就提出 很高的要求。首先,網(wǎng)管要滿足用戶不斷變化的要求。其次網(wǎng)管要能不斷 地平滑升級(jí)更新。要滿足這些條件,其最基本的一點(diǎn)就是要滿足如何設(shè) 計(jì)不斷滿足用戶要求的功能菜單,以及這些功能如何能夠方便地進(jìn)行動(dòng)態(tài) 加載和更新。如圖l所示傳統(tǒng)的界面菜單功能開(kāi)發(fā)實(shí)現(xiàn)流程和原理示意圖。通常都 是首先采集用戶的需求,然后修改程序,在程序中設(shè)計(jì)相關(guān)的菜單,然后 根據(jù)菜單實(shí)現(xiàn)功能。要求開(kāi)發(fā)人員必須接觸到整個(gè)系統(tǒng)的代碼,才能在這 個(gè)基礎(chǔ)上修改。這樣的修改方式,就會(huì)造成幾個(gè)不好的后果 一方面是更 新速度比較慢,開(kāi)發(fā)工作量比較大,效率低,另一方面,系統(tǒng)修改很麻煩, 改動(dòng)一點(diǎn)都要重新編譯,修改,測(cè)試,發(fā)布,系統(tǒng)更新很復(fù)雜。所以,目 前的這種設(shè)計(jì)開(kāi)發(fā)模式存在著浪費(fèi)大量的人力、物力,而且代碼和功能不 好維護(hù)和擴(kuò)展。發(fā)明內(nèi)容本發(fā)明提出了一種基于文件的菜單自動(dòng)生成系統(tǒng)和方法,將菜單和該 菜單要實(shí)現(xiàn)的功能通過(guò)配置文件進(jìn)行配置和存儲(chǔ),通過(guò)對(duì)配置文件的解析 自動(dòng)生成界面菜單,解決了現(xiàn)有技術(shù)中菜單和相應(yīng)功能開(kāi)發(fā)缺乏靈活性、 擴(kuò)展性、效率低下等技術(shù)問(wèn)題。本發(fā)明提出的基于文件的菜單自動(dòng)生成系統(tǒng),包括 界面生成引擎,用于對(duì)配置文件進(jìn)行解析,從中獲取界面配置信息; 生成菜單和界面信息,對(duì)菜單和界面組件進(jìn)行監(jiān)聽(tīng);至少一個(gè)實(shí)現(xiàn)類(lèi)單元,用于在菜單操作中被加載和調(diào)用,以實(shí)現(xiàn)相應(yīng) 的邏輯功能。 '優(yōu)選的,所述的實(shí)現(xiàn)類(lèi)單元在菜單操作中通過(guò)反射機(jī)制被加載和調(diào)用。 優(yōu)選的,所述界面生成引擎從配置文件中獲取的界面配置信息包括至少一種以下信息菜單信息、工具條信息、功能菜單樹(shù)信息和信息顯示窗 口信息。優(yōu)選的,所述的配置文件為xml格式的配置文件,所述實(shí)現(xiàn)類(lèi)單元通 過(guò)Java語(yǔ)言類(lèi)反射機(jī)制被加載和調(diào)用。本發(fā)明提出的基于文件的菜單自動(dòng)生成方法,包括如下步驟1) 界面生成引擎對(duì)配置文件進(jìn)行解析,生成菜單和界面信息;2) 接收界面菜單的操作信息,并加載和調(diào)用對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)單元,運(yùn)行 該實(shí)現(xiàn)類(lèi)單元以實(shí)現(xiàn)相應(yīng)的邏輯功能。優(yōu)選的,所述步驟l)具體包括以下處理過(guò)程11) 對(duì)配置文件中的元素信息進(jìn)行解析,并按照配置的順序進(jìn)行菜單的編排;12) 根據(jù)解析出的配置信息,生成菜單和界面信息;13) 對(duì)菜單和界面組件進(jìn)行監(jiān)聽(tīng)。優(yōu)選的,所述步驟12)中解析出的配置信息包括至少一種以下信息 菜單信息、工具條信息、功能菜單樹(shù)信息和信息顯示窗口信息。優(yōu)選的,所述步驟2)中具體為通過(guò)反射機(jī)制加載和調(diào)用對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)單元。優(yōu)選的,所述被解析的配置文件為xml格式的配置文件,所述實(shí)現(xiàn)類(lèi) 單元通過(guò)Java語(yǔ)言類(lèi)反射機(jī)制被加載和調(diào)用。本發(fā)明通過(guò)界面生成弓I擎來(lái)解析配置文件并自動(dòng)產(chǎn)生用戶的界面菜單, 同時(shí)通過(guò)配置實(shí)現(xiàn)類(lèi)單元,由反射機(jī)制自動(dòng)加載和調(diào)用,這樣生成的程序菜單和界面就有很好的可維護(hù)性和可擴(kuò)展性,.同時(shí)提供界面菜單的事件處 理功能,使得這種機(jī)制構(gòu)建出來(lái)的界面能夠滿足復(fù)雜的用戶需求。這種模 型設(shè)計(jì)的實(shí)現(xiàn)了用戶界面和用戶邏輯業(yè)務(wù)功能實(shí)現(xiàn)的部分分離,減少開(kāi)發(fā) 人員的工作量,減少多個(gè)開(kāi)發(fā)人員一起工作而引起的文件修改沖突。
圖1是現(xiàn)有技術(shù)界面菜單功能開(kāi)發(fā)原理圖;圖2是本發(fā)明菜單自動(dòng)生成系統(tǒng)實(shí)現(xiàn)原理圖;圖3是本發(fā)明菜單自動(dòng)生成方法優(yōu)選實(shí)施例實(shí)現(xiàn)流程圖。
具體實(shí)施方式
本發(fā)明提出的菜單自動(dòng)生成系統(tǒng)和方法,較好的實(shí)現(xiàn)了目前開(kāi)發(fā)中的 靈活性和擴(kuò)張性,下面將結(jié)合附圖和實(shí)施用例具體說(shuō)明。圖2是本發(fā)明系統(tǒng)實(shí)現(xiàn)原理圖。本發(fā)明基于文件的菜單自動(dòng)生成系統(tǒng), 主要包括存儲(chǔ)配置信息的配置文件,實(shí)現(xiàn)菜單邏輯功能的實(shí)現(xiàn)類(lèi)單元, 以及生成界面菜單的界面生成引擎。其中界面生成引擎處于整個(gè)菜單自動(dòng) 生成系統(tǒng)的核心地位, 一方面要解析用戶配置文件和映射相關(guān)的類(lèi),另一 方面要生成用戶需求的菜單以及監(jiān)聽(tīng)菜單事件,然后調(diào)用配置的實(shí)現(xiàn)類(lèi)。 配置文件所包含的配置信息主要包括菜單信息、工具條信息、功能菜單 樹(shù)信息和信息顯示窗口信息。其中菜單信息包括菜單名稱、菜單級(jí)別, 菜單對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)等;工具條信息包括工具條名稱、圖標(biāo)等;功能菜單 樹(shù)信息包括樹(shù)結(jié)點(diǎn)類(lèi)型、樹(shù)結(jié)點(diǎn)名稱、樹(shù)結(jié)點(diǎn)實(shí)現(xiàn)的類(lèi)等信息。系統(tǒng)設(shè) 計(jì)人員可以修改或添加菜單、工具條、功能樹(shù)菜單等功能項(xiàng),然后指定實(shí) 現(xiàn)類(lèi)。具體的實(shí)現(xiàn)類(lèi)單元可以分配給不同的人來(lái)開(kāi)發(fā),通過(guò)運(yùn)行實(shí)現(xiàn)類(lèi)單 元實(shí)現(xiàn)菜單的邏輯功能。這樣的開(kāi)發(fā)分配方式實(shí)現(xiàn)了系統(tǒng)模塊的弱耦合關(guān) 系。以下通過(guò)一個(gè)基于xml格式配置文件,在網(wǎng)管系統(tǒng)中設(shè)置菜單和對(duì)應(yīng) 功能項(xiàng)目的實(shí)施例來(lái)說(shuō)明本發(fā)明的具體實(shí)現(xiàn)過(guò)程。如圖3所示的實(shí)現(xiàn)流程 圖,包括以下處理過(guò)程1、 一組系統(tǒng)設(shè)計(jì)人員首先要分析用戶需求,要添加哪些功能項(xiàng)目。 另一組開(kāi)發(fā)人員編寫(xiě)用于實(shí)現(xiàn)菜單邏輯功能的實(shí)現(xiàn)類(lèi)單元。2、 按照指定的格式編寫(xiě)系統(tǒng)菜單對(duì)應(yīng)的XML文件。2a、在xml配置文件中,首先確定一個(gè)父菜單,或者新建一個(gè)父 菜單,然后建立一個(gè)子菜單。2b、填寫(xiě)菜單名稱(也可以認(rèn)為是內(nèi)部ID)、菜單顯示的名稱(界 面菜單顯示的名字)、菜單對(duì)應(yīng)的圖標(biāo)、菜單的快捷鍵、菜單對(duì)應(yīng)實(shí) 現(xiàn)的組件類(lèi)型、界面生成引擎的構(gòu)造器、實(shí)現(xiàn)的類(lèi)名(也可以配置是 外部的程序或者命令)。3、 啟動(dòng)界面菜單自動(dòng)生成系統(tǒng)。4、 系統(tǒng)啟動(dòng)時(shí),界面生成引擎會(huì)讀取并解析xml格式的配置文件, 根據(jù)xml文件中的生成菜單元素,將配置信息布局到系統(tǒng)界面中。5、 界面引擎加載菜單等組件的事件監(jiān)聽(tīng),這些事件監(jiān)聽(tīng)的類(lèi)名就是 在xml文件中描述的對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)名。6、 當(dāng)接收到該菜單對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)的觸發(fā)信息;7、 界面生成引擎通過(guò)Java語(yǔ)言反射機(jī)制,.調(diào)用該事件對(duì)應(yīng)的實(shí)現(xiàn) 類(lèi),實(shí)現(xiàn)預(yù)定義的邏輯實(shí)現(xiàn)功能。Java語(yǔ)言反射機(jī)制提供了一種動(dòng)態(tài)鏈接程序組件的方法。它允許程序 創(chuàng)建和控制任何類(lèi)的對(duì)象(根據(jù)安全性限制),無(wú)需提前硬編碼目標(biāo)類(lèi)。這 些特性使得反射特別適用于創(chuàng)建以非常普通的方式與對(duì)象協(xié)作的庫(kù)。例如, 反射經(jīng)常在持續(xù)存儲(chǔ)對(duì)象在數(shù)據(jù)庫(kù)、xml或其它外部格式的框架中使用。 Java反射非常有用,它使類(lèi)和數(shù)據(jù)結(jié)構(gòu)能按名稱動(dòng)態(tài)檢索相關(guān)信息,并允 許在運(yùn)行著的程序中操作這些信息。Java的這一特性非常強(qiáng)大,并且是其 它一些常用語(yǔ)言,如C、 C++、 Fortran或者Pascal等都不具備的。使用反射會(huì)模糊程序內(nèi)部實(shí)際要發(fā)生的事情,反射機(jī)制繞過(guò)了源代碼的技術(shù)帶 來(lái)的維護(hù)問(wèn)題。 綜上所述,本發(fā)明提出的自動(dòng)生成界面菜單的方式,通過(guò)配置文件配 置系統(tǒng)功能菜單,并配置菜單事件監(jiān)聽(tīng)對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)的方法,可以使界面 生成實(shí)現(xiàn)了根據(jù)用戶需求快速變化,界面規(guī)范也容易配置,便于維護(hù)和更 新。通過(guò)這種方法,可以有效地實(shí)現(xiàn)界面設(shè)計(jì)和邏輯業(yè)務(wù)分離,可以有效 地降低程序中代碼的耦合度。以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō) 明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù) 領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于文件的菜單自動(dòng)生成系統(tǒng),其特征在于,包括界面生成引擎,用于對(duì)配置文件進(jìn)行解析,從中獲取界面配置信息;生成菜單和界面信息,對(duì)菜單和界面組件進(jìn)行監(jiān)聽(tīng);至少一個(gè)實(shí)現(xiàn)類(lèi)單元,用于在菜單操作中被加載和調(diào)用,以實(shí)現(xiàn)相應(yīng)的邏輯功能。
2. 根據(jù)權(quán)利要求1所述的基于文件的菜單自動(dòng)生成系統(tǒng),其特征在于, 所述的實(shí)現(xiàn)類(lèi)單元在菜單操作中通過(guò)反射機(jī)制被加載和調(diào)用。
3. 根據(jù)權(quán)利要求1或2所述的基于文件的菜單自動(dòng)生成系統(tǒng),其特征 在于,所述界面生成引擎從配置文件中獲取的界面配置信息包括至少一種 以下信息菜單信息、工具條信息、功能菜單樹(shù)信息和信息顯示窗口信息。
4. 根據(jù)權(quán)利要求2所述的基于文件的菜單自動(dòng)生成系統(tǒng),其特征在于, 所述的配置文件為xml格式的配置文件,所述實(shí)現(xiàn)類(lèi)單元通過(guò)Java語(yǔ)言類(lèi) 反射機(jī)制被加載和調(diào)用。
5. —種基于文件的菜單自動(dòng)生成方法,其特征在于,包括如下步驟1) 界面生成引擎對(duì)配置文件進(jìn)行解析,生成菜單和界面信息;2) 接收界面菜單的操作信息,并加載和調(diào)用對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)單元,運(yùn)行 該實(shí)現(xiàn)類(lèi)單元以實(shí)現(xiàn)相應(yīng)的邏輯功能。 .
6. 根據(jù)權(quán)利要求5所述的基于文件的菜單自動(dòng)生成方法,其特征在于, 所述步驟l)具體包括以下處理過(guò)程11) 對(duì)配置文件中的元素信息進(jìn)行解析,并按照配置的順序進(jìn)行菜單 的編排;12) 根據(jù)解析出的配置信息,生成菜單和界面信息;13) 對(duì)菜單和界面組件進(jìn)行監(jiān)聽(tīng)。 '
7. 根據(jù)權(quán)利要求6所述的基于文件的菜單自動(dòng)生成方法,其特征在 于,所述步驟12)中解析出的配置信息包括至少一種以下信息菜單信息、 工具條信息、功能菜單樹(shù)信息和信息顯示窗口信息。
8. 根據(jù)權(quán)利要求5所述的于文件的菜單自動(dòng)生成方法,其特征在于, 所述步驟2)中具體為通過(guò)反射機(jī)制加載和調(diào)用對(duì)應(yīng)的實(shí)現(xiàn)類(lèi)單元。
9. 根據(jù)權(quán)利要求8所述的于文件的菜單自動(dòng)生成方法,其特征在于,所述被解析的配置文件為xml格式的配置文件,所述實(shí)現(xiàn)類(lèi)單元通過(guò)Java 語(yǔ)言類(lèi)反射機(jī)制被加載和調(diào)用。
全文摘要
本發(fā)明公開(kāi)了一種基于文件的菜單自動(dòng)生成系統(tǒng)和方法,通過(guò)界面生成引擎來(lái)解析配置文件并自動(dòng)產(chǎn)生用戶的界面菜單,同時(shí)通過(guò)配置實(shí)現(xiàn)類(lèi)單元,由反射機(jī)制自動(dòng)加載和調(diào)用,這樣生成的程序菜單和界面就有很好的可維護(hù)性和可擴(kuò)展性,同時(shí)提供界面菜單的事件處理功能,使得這種機(jī)制構(gòu)建出來(lái)的界面能夠滿足復(fù)雜的用戶需求。這種模型設(shè)計(jì)的實(shí)現(xiàn)了用戶界面和用戶邏輯業(yè)務(wù)功能實(shí)現(xiàn)的部分分離,減少開(kāi)發(fā)人員的工作量,減少多個(gè)開(kāi)發(fā)人員一起工作而引起的文件修改沖突。
文檔編號(hào)G06F9/44GK101246424SQ200810065408
公開(kāi)日2008年8月20日 申請(qǐng)日期2008年2月22日 優(yōu)先權(quán)日2008年2月22日
發(fā)明者薛紹文 申請(qǐng)人:深圳國(guó)人通信有限公司