專(zhuān)利名稱:基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信的網(wǎng)絡(luò)管理領(lǐng)域,具體來(lái)講是一種基于XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)的可配置菜單實(shí)現(xiàn)方法。
背景技術(shù):
隨著通信設(shè)備發(fā)展的日新月異,其功能越來(lái)越強(qiáng)大,對(duì)于網(wǎng)絡(luò)管理軟件的研發(fā)也因此提出了更高的要求。網(wǎng)絡(luò)管理軟件的模塊越來(lái)越復(fù)雜,管理功能也越來(lái)越多,如何研發(fā)一種可靈活配置、可方便維護(hù)的系統(tǒng)便顯得越來(lái)越重要。目前系統(tǒng)對(duì)于菜單的傳統(tǒng)做法是菜單在軟件的各個(gè)功能模塊中硬編碼的進(jìn)行定義,而在使用時(shí)則需要每次重新編譯整個(gè)源代碼工程。這種做法的缺陷是菜單無(wú)法靈活配置,修改菜單必須修改源代碼,編譯過(guò)程耗費(fèi)時(shí)間,而且菜單的代碼會(huì)散落分布在各處源代碼中,不利于統(tǒng)一維護(hù)。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于XML的可配置菜單實(shí)現(xiàn)方法,簡(jiǎn)化了菜單配置的復(fù)雜度,減少源代碼的編寫(xiě)、調(diào)試及編譯等工作量,提高了工作效率;菜單靈活配置,方便統(tǒng)一查找和維護(hù)。為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是一種基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,包括如下步驟在可擴(kuò)展標(biāo)記語(yǔ)言配置文件中定義多個(gè)片段節(jié)點(diǎn),多個(gè)片段節(jié)點(diǎn)之間通過(guò)片段分隔標(biāo)識(shí)符分隔,每個(gè)片段節(jié)點(diǎn)包含多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)和多個(gè)分隔符節(jié)點(diǎn),每個(gè)菜單節(jié)點(diǎn)包含多個(gè)子元素節(jié)點(diǎn);調(diào)用可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi),讀取一個(gè)片段節(jié)點(diǎn)中的多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)、多個(gè)分隔符節(jié)點(diǎn)、多個(gè)子元素節(jié)點(diǎn)的各個(gè)屬性后,若有片段分隔標(biāo)識(shí)符,則再次讀取下一個(gè)片段節(jié)點(diǎn),直至沒(méi)有片段分隔標(biāo)識(shí)符停止,讀取過(guò)程中若出現(xiàn)讀取不成功,則返回錯(cuò)誤信息。在上述技術(shù)方案的基礎(chǔ)上,所述多個(gè)分隔符節(jié)點(diǎn)將菜單項(xiàng)節(jié)點(diǎn)和/或菜單節(jié)點(diǎn)按功能分為若干組,菜單項(xiàng)節(jié)點(diǎn)、菜單節(jié)點(diǎn)以及分隔符節(jié)點(diǎn)均為片段節(jié)點(diǎn)的子節(jié)點(diǎn)。在上述技術(shù)方案的基礎(chǔ)上,每一所述片段節(jié)點(diǎn)的讀取過(guò)程為讀取菜單項(xiàng)節(jié)點(diǎn)成功后,讀取菜單節(jié)點(diǎn),讀取成功后再讀取子元素節(jié)點(diǎn),當(dāng)讀取菜單項(xiàng)節(jié)點(diǎn)或菜單節(jié)點(diǎn)時(shí),若讀取到分隔符節(jié)點(diǎn),則做出分組標(biāo)記。在上述技術(shù)方案的基礎(chǔ)上,所述片段節(jié)點(diǎn)表示菜單項(xiàng)配置腳本片段,定義主菜單或右鍵菜單內(nèi)容,片段節(jié)點(diǎn)的資源文件參數(shù)指定國(guó)際化資源文件路徑。在上述技術(shù)方案的基礎(chǔ)上,所述菜單項(xiàng)節(jié)點(diǎn)包括指定菜單對(duì)應(yīng)的操作類(lèi)名的“操作”屬性,從對(duì)應(yīng)的國(guó)際化資源文件中讀取相應(yīng)文本的“文本”屬性,用來(lái)讀取相應(yīng)圖標(biāo)的 “圖標(biāo)”屬性,指定快捷鍵的“快捷方式”屬性。在上述技術(shù)方案的基礎(chǔ)上,所述菜單節(jié)點(diǎn)表示一個(gè)菜單,其包括“圖標(biāo)”屬性,可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi)通過(guò)該屬性設(shè)置的路徑來(lái)讀取相應(yīng)的圖標(biāo)。
在上述技術(shù)方案的基礎(chǔ)上,所述菜單節(jié)點(diǎn)具有“文本”屬性,通過(guò)“文本”屬性內(nèi)國(guó)際化資源文件的內(nèi)容設(shè)置菜單熱鍵。在上述技術(shù)方案的基礎(chǔ)上,所述菜單節(jié)點(diǎn)具有定義菜單快捷鍵的“快捷方式”屬性。在上述技術(shù)方案的基礎(chǔ)上,所述子元素節(jié)點(diǎn)表示動(dòng)態(tài)多級(jí)子菜單,其包括“提供者”屬性,定義的內(nèi)容為動(dòng)態(tài)子菜單的實(shí)現(xiàn)類(lèi)的路徑。在上述技術(shù)方案的基礎(chǔ)上,所述可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi)通過(guò)查找類(lèi)的路徑解析出子菜單對(duì)象。本發(fā)明的有益效果在于I.采用描述的方式對(duì)配置項(xiàng)進(jìn)行定義,簡(jiǎn)化了菜單配置的復(fù)雜度。2.通過(guò)網(wǎng)管中的XML配置文件解析類(lèi),來(lái)解析XML配置文件中的各個(gè)配置項(xiàng),保證了菜單配置的正確性、靈活性。3.腳本定義通過(guò)編寫(xiě)格式化的XML配置文件完成,減少了軟件源代碼的編寫(xiě)、調(diào)試及編譯等工作量,極大的提高了工作效率。4.通過(guò)簡(jiǎn)單的修改XML配置文件,就能實(shí)現(xiàn)動(dòng)態(tài)加載各個(gè)子系統(tǒng)或子模塊,增強(qiáng)了系統(tǒng)的可擴(kuò)展性。5.對(duì)于XML配置文件使用統(tǒng)一存放和管理,實(shí)現(xiàn)了方便查找和維護(hù)。
圖I本發(fā)明基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法實(shí)施例的流程圖。
具體實(shí)施例方式以下結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明所述的基于XML的可配置菜單實(shí)現(xiàn)方法,包括如下步驟在可擴(kuò)展標(biāo)記語(yǔ)言配置文件中定義多個(gè)片段節(jié)點(diǎn),多個(gè)片段節(jié)點(diǎn)之間通過(guò)片段分隔標(biāo)識(shí)符分隔,每個(gè)片段節(jié)點(diǎn)包含多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)和多個(gè)分隔符節(jié)點(diǎn),每個(gè)菜單節(jié)點(diǎn)包含多個(gè)子元素節(jié)點(diǎn);調(diào)用可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi),讀取一個(gè)片段節(jié)點(diǎn)中的多個(gè)菜單項(xiàng)節(jié)點(diǎn)、 多個(gè)菜單節(jié)點(diǎn)、多個(gè)分隔符節(jié)點(diǎn)、多個(gè)子元素節(jié)點(diǎn)的各個(gè)屬性后,若有片段分隔標(biāo)識(shí)符,則再次讀取下一個(gè)片段節(jié)點(diǎn),直至沒(méi)有片段分隔標(biāo)識(shí)符停止,讀取過(guò)程中若出現(xiàn)讀取不成功, 則返回錯(cuò)誤信息。如圖I所示,本實(shí)施例基于XML的可配置菜單實(shí)現(xiàn)方法具體步驟如下SI.在XML配置文件中定義多個(gè)片段節(jié)點(diǎn),多個(gè)片段節(jié)點(diǎn)之間通過(guò)片段分隔標(biāo)識(shí)符分隔,每個(gè)片段節(jié)點(diǎn)包含多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)和多個(gè)分隔符節(jié)點(diǎn),每個(gè)菜單節(jié)點(diǎn)包含多個(gè)子元素節(jié)點(diǎn),上述每個(gè)節(jié)點(diǎn)都有自己的屬性。多個(gè)所述菜單項(xiàng)節(jié)點(diǎn)、菜單節(jié)點(diǎn)以及分隔符節(jié)點(diǎn)均為片段節(jié)點(diǎn)的子節(jié)點(diǎn),多個(gè)分隔符節(jié)點(diǎn)將菜單項(xiàng)節(jié)點(diǎn)和/或菜單節(jié)點(diǎn)按功能分為若干組,根據(jù)功能可以將相互關(guān)聯(lián)的菜單項(xiàng)和菜單分為一組,也可以將相互關(guān)聯(lián)的菜單項(xiàng)或菜單分為不同的組。S2.調(diào)用XML配置文件解析類(lèi),查找XML配置文件。
S3.判斷XML配置文件是否存在,若是存在,就通過(guò)XML配置文件解析類(lèi)開(kāi)始讀取文件信息,若文件不存在,則返回S10。S4.讀取一個(gè)片段節(jié)點(diǎn)的各個(gè)屬性,所述片段節(jié)點(diǎn)表示菜單對(duì)象配置腳本片段,定義主菜單或右鍵菜單內(nèi)容,XML配置文件解析類(lèi)會(huì)根據(jù)其編號(hào)來(lái)讀取。片段節(jié)點(diǎn)的“資源文件”參數(shù)指定國(guó)際化資源文件路徑。若片段節(jié)點(diǎn)讀取成功,就開(kāi)始讀取片段節(jié)點(diǎn)的子節(jié)點(diǎn)信息,失敗則返回S10。S5.讀取菜單項(xiàng)節(jié)點(diǎn)的各個(gè)屬性,可依次讀取,也可以多個(gè)菜單項(xiàng)并列讀取,菜單項(xiàng)節(jié)點(diǎn)讀取成功就讀取菜單節(jié)點(diǎn),失敗則返回S10。當(dāng)讀取菜單項(xiàng)或菜單節(jié)點(diǎn)時(shí),若讀取到分隔符節(jié)點(diǎn),則在菜單或菜單項(xiàng)之后做出一個(gè)分組標(biāo)記。菜單項(xiàng)節(jié)點(diǎn)表示一個(gè)菜單項(xiàng),包括 “操作”屬性,用來(lái)指定菜單對(duì)應(yīng)的操作類(lèi)名;“操作編號(hào)”屬性,指定對(duì)應(yīng)權(quán)限的操作值,在登錄系統(tǒng)時(shí),權(quán)限模塊會(huì)根據(jù)“操作編號(hào)”去后臺(tái)校驗(yàn)權(quán)限,XML配置文件解析類(lèi)根據(jù)后臺(tái)返回的權(quán)限來(lái)控制菜單的顯示與否;“文本”屬性,XML配置文件解析類(lèi)通過(guò)該屬性從對(duì)應(yīng)的國(guó)際化資源文件中讀取相應(yīng)文本;“圖標(biāo)”屬性,XML配置文件解析類(lèi)通過(guò)該屬性設(shè)置的路徑來(lái)讀取相應(yīng)的圖標(biāo);“快捷方式”屬性,指定快捷鍵。快捷鍵可以使用Ctrl、Shift、Alt 與字符組合的方式,之間以“加號(hào)”分隔。S6.讀取菜單節(jié)點(diǎn)的各個(gè)屬性,菜單節(jié)點(diǎn)表示一個(gè)菜單,其包含“圖標(biāo)”屬性,XML 配置文件解析類(lèi)通過(guò)該屬性設(shè)置的路徑來(lái)讀取相應(yīng)的圖標(biāo)。菜單節(jié)點(diǎn)還包含“文本”屬性, 與“菜單項(xiàng)”節(jié)點(diǎn)的相同屬性類(lèi)似,菜單熱鍵是通過(guò)“文本”屬性中國(guó)際化文本的內(nèi)容來(lái)設(shè)置的,例如設(shè)置網(wǎng)元屬性菜單項(xiàng)的“文本”屬性為“網(wǎng)元屬性(&R)”,這里&符號(hào)后面的字母就是熱鍵,那么XML配置文件解析類(lèi)解析出的網(wǎng)元屬性菜單項(xiàng)的熱鍵就是“R”鍵。菜單通過(guò) “快捷方式”屬性定義菜單快捷鍵,例如設(shè)置查找菜單項(xiàng)的“快捷方式”屬性為“Ctrl+F”,那么XML配置文件解析類(lèi)解析出的查找菜單項(xiàng)的快捷鍵就是“Ctrl+F”鍵。若菜單屬性讀取成功,則進(jìn)入S7,讀取失敗則返回S10。S7.讀取子元素節(jié)點(diǎn)的各個(gè)屬性,子元素節(jié)點(diǎn)表示動(dòng)態(tài)多級(jí)子菜單,其包括“提供者”屬性,本發(fā)明的動(dòng)態(tài)多級(jí)子菜單加載是通過(guò)子元素節(jié)點(diǎn)的“提供者”屬性來(lái)定義的,其定義的內(nèi)容為動(dòng)態(tài)子菜單的實(shí)現(xiàn)類(lèi)的路徑,XML配置文件解析類(lèi)會(huì)查找該類(lèi)的路徑,然后解析出動(dòng)態(tài)多級(jí)子菜單對(duì)象。子元素節(jié)點(diǎn)讀取成功后,進(jìn)入S8,讀取失敗則返回S10。S8.判斷是否有片段分隔標(biāo)識(shí)符,XML配置文件解析類(lèi)通過(guò)該屬性解析,若有片段分隔標(biāo)識(shí)符,則轉(zhuǎn)入S4讀取下一個(gè)片段節(jié)點(diǎn),若沒(méi)有片段分隔標(biāo)識(shí)符,則進(jìn)入S9。S9.完成解析,返回解析后生成的右鍵菜單或主菜單對(duì)象。S10.返回錯(cuò)誤信息。本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于包括如下步驟在可擴(kuò)展標(biāo)記語(yǔ)言配置文件中定義多個(gè)片段節(jié)點(diǎn),多個(gè)片段節(jié)點(diǎn)之間通過(guò)片段分隔標(biāo)識(shí)符分隔,每個(gè)片段節(jié)點(diǎn)包含多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)和多個(gè)分隔符節(jié)點(diǎn),每個(gè)菜單節(jié)點(diǎn)包含多個(gè)子元素節(jié)點(diǎn);調(diào)用可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi),讀取一個(gè)片段節(jié)點(diǎn)中的多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)、多個(gè)分隔符節(jié)點(diǎn)、多個(gè)子元素節(jié)點(diǎn)的各個(gè)屬性后,若有片段分隔標(biāo)識(shí)符,則再次讀取下一個(gè)片段節(jié)點(diǎn),直至沒(méi)有片段分隔標(biāo)識(shí)符停止,讀取過(guò)程中若出現(xiàn)讀取不成功,則返回錯(cuò)誤信息。
2.如權(quán)利要求I所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述多個(gè)分隔符節(jié)點(diǎn)將菜單項(xiàng)節(jié)點(diǎn)和/或菜單節(jié)點(diǎn)按功能分為若干組,菜單項(xiàng)節(jié)點(diǎn)、菜單節(jié)點(diǎn)以及分隔符節(jié)點(diǎn)均為片段節(jié)點(diǎn)的子節(jié)點(diǎn)。
3.如權(quán)利要求2所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于每一所述片段節(jié)點(diǎn)的讀取過(guò)程為讀取菜單項(xiàng)節(jié)點(diǎn)成功后,讀取菜單節(jié)點(diǎn),讀取成功后再讀取子元素節(jié)點(diǎn),當(dāng)讀取菜單項(xiàng)節(jié)點(diǎn)或菜單節(jié)點(diǎn)時(shí),若讀取到分隔符節(jié)點(diǎn),則做出分組標(biāo)記。
4.如權(quán)利要求I所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述片段節(jié)點(diǎn)表示菜單項(xiàng)配置腳本片段,定義主菜單或右鍵菜單內(nèi)容,片段節(jié)點(diǎn)的資源文件參數(shù)指定國(guó)際化資源文件路徑。
5.如權(quán)利要求4所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述菜單項(xiàng)節(jié)點(diǎn)包括指定菜單對(duì)應(yīng)的操作類(lèi)名的“操作”屬性,從對(duì)應(yīng)的國(guó)際化資源文件中讀取相應(yīng)文本的“文本”屬性,用來(lái)讀取相應(yīng)圖標(biāo)的“圖標(biāo)”屬性,指定快捷鍵的“快捷方式”屬性。
6.如權(quán)利要求4所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述菜單節(jié)點(diǎn)表示一個(gè)菜單,其包括“圖標(biāo)”屬性,可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi)通過(guò)該屬性設(shè)置的路徑來(lái)讀取相應(yīng)的圖標(biāo)。
7.如權(quán)利要求I所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述菜單節(jié)點(diǎn)具有“文本”屬性,通過(guò)“文本”屬性內(nèi)國(guó)際化資源文件的內(nèi)容設(shè)置菜單熱鍵。
8.如權(quán)利要求I所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述菜單節(jié)點(diǎn)具有定義菜單快捷鍵的“快捷方式”屬性。
9.如權(quán)利要求I所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述子元素節(jié)點(diǎn)表示動(dòng)態(tài)多級(jí)子菜單,其包括“提供者”屬性,定義的內(nèi)容為動(dòng)態(tài)子菜單的實(shí)現(xiàn)類(lèi)的路徑。
10.如權(quán)利要求I所述的基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,其特征在于所述可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi)通過(guò)查找類(lèi)的路徑解析出子菜單對(duì)象。
全文摘要
基于可擴(kuò)展標(biāo)記語(yǔ)言的可配置菜單實(shí)現(xiàn)方法,涉及通信的網(wǎng)絡(luò)管理領(lǐng)域,包括步驟在可擴(kuò)展標(biāo)記語(yǔ)言配置文件中定義多個(gè)片段節(jié)點(diǎn),多個(gè)片段節(jié)點(diǎn)之間通過(guò)片段分隔標(biāo)識(shí)符分隔,每個(gè)片段節(jié)點(diǎn)包含多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)和多個(gè)分隔符節(jié)點(diǎn),每個(gè)菜單節(jié)點(diǎn)包含多個(gè)子元素節(jié)點(diǎn);調(diào)用可擴(kuò)展標(biāo)記語(yǔ)言配置文件解析類(lèi),讀取一個(gè)片段節(jié)點(diǎn)中的多個(gè)菜單項(xiàng)節(jié)點(diǎn)、多個(gè)菜單節(jié)點(diǎn)、多個(gè)分隔符節(jié)點(diǎn)、多個(gè)子元素節(jié)點(diǎn)的各個(gè)屬性后,若有片段分隔標(biāo)識(shí)符,則再次讀取下一個(gè)片段節(jié)點(diǎn),直至沒(méi)有片段分隔標(biāo)識(shí)符停止,讀取不成功則返回錯(cuò)誤信息。該方法簡(jiǎn)化了菜單配置的復(fù)雜度,減少源代碼的編寫(xiě)、調(diào)試及編譯等工作量,提高了工作效率;菜單靈活配置,方便統(tǒng)一查找和維護(hù)。
文檔編號(hào)G06F9/44GK102609249SQ20121000239
公開(kāi)日2012年7月25日 申請(qǐng)日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者萬(wàn)金利, 劉言軍, 尹永勝, 朱春燕, 王 琦 申請(qǐng)人:烽火通信科技股份有限公司