本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種根據(jù)配置信息動態(tài)生成界面的方法及根據(jù)該方法設(shè)置的系統(tǒng)。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,計算機軟件應(yīng)用越來越廣,用戶界面作為軟件的一部分,起著尤為重要的作用,用戶界面是軟件在被應(yīng)用過程中,直接面向用戶、和用戶交互最多的軟件組成部分。針對不同場景不同需求,用戶要求界面的展現(xiàn)形式及功能多種多樣。
傳統(tǒng)的軟件為支持不同場景,滿足不同業(yè)務(wù)需求,需不斷開發(fā)具有特定界面及功能的軟件,若場景改變,則需重寫代碼開發(fā)新的界面。這大大增加了工作量,延長了開發(fā)周期且不利于維護,代碼的可重用性低。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的不足,提供一種靈活可配的界面生成方法和系統(tǒng)。本發(fā)明的目的是解決傳統(tǒng)軟件界面開發(fā)繁瑣、代碼可復(fù)用性低且環(huán)境適應(yīng)性差的現(xiàn)狀,要求能夠針對不同業(yè)務(wù)類型、不同客戶需求定制相應(yīng)的配置信息,能夠根據(jù)配置信息生成相應(yīng)界面,且界面靈活可配。
為了達到上述發(fā)明目的,本發(fā)明提供的技術(shù)方案如下:
一種靈活可配的界面生成方法包括步驟如下:
第一步、開發(fā)構(gòu)件庫,在構(gòu)件庫中封裝常用并且高可復(fù)用性的控件和功能模塊,使構(gòu)件庫信息不斷完善;
第二步、編寫配置文件,將包括系統(tǒng)界面展現(xiàn)形式、布局、屬性、功能模塊在內(nèi)的信息寫入配置文件中;
第三步、解析配置模塊,對載入到該系統(tǒng)的配置文件進行解析,提取出能識別的界面信息,所述能夠識別的界面信息包括有控件類型、布局、屬性和操作;第四步、生成UI界面,根據(jù)解析后的界面信息在構(gòu)件庫中查找對應(yīng)的控件和功能模塊:當(dāng)構(gòu)件庫中存在對應(yīng)的控件和功能模塊時,實例化控件與功能模塊以配置文件中的界面信息要求的形式生成UI界面;當(dāng)構(gòu)件庫中不存在相應(yīng)的控件和功能模塊時,實施所述第一步,完善構(gòu)件庫,在所述構(gòu)件庫中封裝相應(yīng)的控件和功能模塊,根據(jù)解析后的界面信息在構(gòu)件庫中查找對應(yīng)的控件和功能模塊,實例化控件與功能模塊以配置文件中的界面信息要求的形式生成UI界面。
在本發(fā)明的一種靈活可配的界面生成方法中,所述第一步中,所述的控件為自主開發(fā)的包括表格、樹、選項卡、按鈕、標(biāo)簽、下拉框在內(nèi)的常用控件。
在本發(fā)明的一種靈活可配的界面生成方法中,所述第一步中,所述功能模塊是指針對不同業(yè)務(wù)所開發(fā)的專有模塊。
在本發(fā)明的一種靈活可配的界面生成方法中,所述第二步中,所述配置文件包括有文本文件和二進制文件兩種形式。
在本發(fā)明的一種靈活可配的界面生成方法中,所述第二步中,所述包括系統(tǒng)的界面展現(xiàn)形式、布局、屬性、功能模塊在內(nèi)的信息以固定格式寫入配置文件中,所述的固定格式是指為所述控件和所述功能模塊指定標(biāo)識,并定義對應(yīng)的參數(shù)數(shù)據(jù)結(jié)構(gòu),以對配置文件進行解析。
在本發(fā)明的一種靈活可配的界面生成方法中,所述第三步中,所述的屬性包括有標(biāo)題、顯示文本、樣式、大小、位置和狀態(tài)。
一種靈活可配的界面生成系統(tǒng),包括有構(gòu)件庫、配置文件、解析模塊和UI界面,所述配置文件與所述解析模塊相連接,所述解析模塊連接于所述構(gòu)件庫上,所述構(gòu)件庫連接有所述UI界面。
在本發(fā)明的一種靈活可配的界面生成系統(tǒng)中,所述配置文件,通過文本文件和二進制文件形式存儲界面信息,配置文件所存儲的界面信息包括有系統(tǒng)的界面展現(xiàn)形式、布局、屬性和功能模塊;
所述解析模塊,用于對配置文件進行解析,提取出包括界面展現(xiàn)形式、布局和功能模塊在內(nèi)的能夠識別的界面信息,并在構(gòu)件庫中查找與所述能夠識別的界面信息相對應(yīng)的控件和功能模塊;
所述構(gòu)件庫,封裝常用并且高可復(fù)用的控件和功能模塊,供解析模塊查找調(diào)用需要的控件和功能模塊,并實例化所找到的控件和功能模塊生成UI界面;
所述UI界面,用于展現(xiàn)實例化構(gòu)件庫中控件和功能模塊的結(jié)果。
基于上述技術(shù)內(nèi)容,本發(fā)明的靈活可配界面生成技術(shù)與現(xiàn)有技術(shù)相比具有如下技術(shù)優(yōu)點:
1.本發(fā)明一種靈活可配的界面生成方法和系統(tǒng)中,該界面生成方法的優(yōu)點是生成界面的靈活性高,可滿足用戶的個性定制,能適應(yīng)不同環(huán)境,滿足不同業(yè)務(wù)需求,開發(fā)人員只需不斷完善維護構(gòu)件庫和增加特定業(yè)務(wù)的功能模塊即可。
2.本發(fā)明一種靈活可配的界面生成方法和系統(tǒng),采用由配置信息生成界面的方法提高代碼的可重復(fù)使用性,并大大縮短開發(fā)周期。
附圖說明
圖1是本發(fā)明一種靈活可配的界面生成系統(tǒng)的結(jié)構(gòu)圖。
圖2是本發(fā)明一種靈活可配的界面生成方法的流程圖。
圖3是場景為報警檢測時的UI界面圖。
圖4是場景為學(xué)生成績時的UI界面圖。
具體實施方式
下面我們結(jié)合附圖和具體的實施例來對本發(fā)明的一種靈活可配的界面生成方法和系統(tǒng)作進一步的詳細(xì)闡述,以求更清楚的理解本發(fā)明的結(jié)構(gòu)組成和工作原理,但不能以此來限制本發(fā)明的保護范圍。
請看圖1,圖1是本發(fā)明一種靈活可配的界面生成系統(tǒng)的結(jié)構(gòu)圖。
本發(fā)明的一種靈活可配的界面生成系統(tǒng)的結(jié)構(gòu)中包括有構(gòu)件庫1、配置文件2、解析模塊3和UI界面4。
構(gòu)件庫1,構(gòu)件庫1封裝了常用控件和針對不同業(yè)務(wù)所開發(fā)的具有特定功能的功能模塊。該構(gòu)件庫1中的常用控件為自主開發(fā)具有相應(yīng)功能的控件。這些常用控件具有高可復(fù)用性,可以重復(fù)調(diào)用。高可復(fù)用性的常用控件包含有自主開發(fā)的窗體、標(biāo)題攔、表格、選項卡、樹、按鈕、標(biāo)簽等常用控件。為了使其具有比較好的靈活性,可通過配置滿足不同場景,應(yīng)為控件提供豐富功能與接口函數(shù)。功能模塊則針對不同業(yè)務(wù)需求開發(fā)的專有模塊。這些專有模塊在某種業(yè)務(wù)中常用但在其它業(yè)務(wù)中很少用到。
配置文件2,配置文件2存儲的是以固定格式編寫的界面信息,配置文件2有兩種形式:文本文件、二進制文件。文本文件直觀方便用戶觀看,二進制文件是為了保證系統(tǒng)加載配置文件2的速度。系統(tǒng)能識別這兩種格式的配置文件2,并可對其解析。
解析配置模塊3,將配置文件2載入系統(tǒng)后并對載入的配置文件2進行解析,提取出能夠識別的界面信息,這些能夠識別的界面信息包括控件類型、布局、屬性(標(biāo)題、顯示文本、樣式、大小、位置、狀態(tài)等)及操作(對應(yīng)的業(yè)務(wù)邏輯)等??丶愋桶ㄔ跇?gòu)件庫1中的自主開發(fā)的窗體、標(biāo)題攔、表格、選項卡、樹等,控件的布局則包括GridLayout、FillLayout、SashForm等,控件的屬性(標(biāo)題、顯示文本、樣式、大小、位置、狀態(tài)等)樣式包括SWT.NONE、SWT.CLOSE、SWT.MIN、SWT.VERTICAL等,大小則包括控件的寬、高等信息,位置包括x坐標(biāo)、y坐標(biāo),狀態(tài)則包括可見、隱藏等。
UI界面4,根據(jù)解析的配置信息及構(gòu)件庫1提供的構(gòu)件和功能模塊生成UI界面4。利用解析后的界面信息在構(gòu)件庫1中查找對應(yīng)的控件或功能模塊,實例化控件和功能模塊以配置信息要求的界面展現(xiàn)形式及布局生成UI界面4,該UI界面4既包含展現(xiàn)的控件也包含對應(yīng)的邏輯功能,可滿足用戶需求。
圖2是本發(fā)明一種靈活可配的界面生成方法的流程圖。
第一步,開發(fā)構(gòu)件庫1,在構(gòu)件庫1中封裝控件和功能模塊,構(gòu)件庫1中封裝的控件和功能模塊具有高可復(fù)用性,可以重復(fù)使用。當(dāng)需要使用時可以根據(jù)不同場景隨時對構(gòu)件庫1中的相應(yīng)的控件和功能模塊進行調(diào)用。這些控件是自主開發(fā)的一些常用控件,這些常用控件包括表格、樹、選項卡、按鈕、標(biāo)簽、下拉框等。功能模塊則是針對不同業(yè)務(wù)所開發(fā)的專有模塊。在實際應(yīng)用過程中不斷完善構(gòu)件庫1的控件和功能模塊等信息。例如,在實際使用過程中遇到了新的場景,但在構(gòu)件庫中找不到相應(yīng)的控件和功能模塊時,開發(fā)相應(yīng)控件和功能模塊,并使這些控件和功能模塊的具有高可復(fù)用性,然后將這些控件和功能模塊封裝在構(gòu)件庫1中,豐富構(gòu)件庫1中的信息,方便需要時調(diào)用。
第二步,編寫配置文件2,將所需要的系統(tǒng)的界面展現(xiàn)形式、布局、屬性、功能模塊等信息,以固定格式寫入配置文件2中;此處的固定格式是指為構(gòu)件庫1中的控件和功能模塊指定標(biāo)識,并定義好系統(tǒng)的界面展現(xiàn)形式、布局、屬性和功能模塊等信息的參數(shù)數(shù)據(jù)結(jié)構(gòu),方便下一步的解析。
第三步,解析配置模塊3,加載配置文件2并對該配置文件2進行解析,提取出能識別的界面信息,能夠識別的界面信息即界面的展現(xiàn)形式、布局和功能等。提取的界面信息包括有控件的類型、布局、屬性(包括有標(biāo)題、顯示文本、樣式、大小、位置、狀態(tài)等)以及操作(指對應(yīng)的業(yè)務(wù)邏輯)等;
第四步,生成UI界面4,根據(jù)第三步中所提取的界面信息并在構(gòu)件庫1中查找對應(yīng)的控件和功能模塊:若構(gòu)件庫中存在這些對應(yīng)的控件和功能模塊,則調(diào)用并且實例化這些控件和功能模塊,完成按照界面信息要求的形式生成UI界面4;若在構(gòu)件庫1中不存在相應(yīng)的控件和功能模塊時,則實施第一步,逐步完成對構(gòu)件庫信息的完善,開發(fā)相應(yīng)的控件和功能模塊并將其封裝在構(gòu)件庫中,方便使用時查找調(diào)用,然后調(diào)用并構(gòu)件庫中的相應(yīng)控件和功能模塊,完成按照界面信息要求的形式生成UI界面,生成的UI界面4既包含展現(xiàn)的控件也包含對應(yīng)的邏輯功能,可滿足用戶需求。
為方便理解本發(fā)明如何通過配置文件2信息生成UI界面4,下面結(jié)合具體實施例來進行說明。
實施例一:
請看圖3,圖3是場景為報警檢測時的UI界面4圖。本實施例中的構(gòu)件庫1包含開發(fā)的常用、高可復(fù)用性的控件及特定功能模塊,如自定義窗體CustomShell、自定義標(biāo)題欄CustomTitleBar、自定義樹CustomTree、自定義表格、CustomTable、自定義功能模塊如刪除等。配置文件2為文本文件,采用域=值的格式存儲界面信息,文本文件如下:
[CustomShell]
width=700,height=500;
[CustomTitleBar]
text=測試用例,style=center,image= smile.png;
[CustomTree]
Node={id=0,parent=-1,name=對象};
Node={id=1,parent=0,name=硬件視圖};
Node={id=2,parent=1,name=電路板1};
Node={id=3,parent=1,name=電路板2};
Node={id=4,parent=0,name=軟件視圖};
[CustomTable]
ColCnt=3,showCol={0,1,2};popMenu=刪除; colWid={50,50,50};colName={起始時間,終止時間,報警類型};
其中CustomShell(譯為:自定義窗體)、CustomTitleBar(譯為:自定義標(biāo)題欄)、CustomTree(譯為:自定義樹)、CustomTable(譯為:自定義表格)為構(gòu)件庫1中自主開發(fā)的控件。popMenu則代表構(gòu)件庫1中的一個表格的特定功能模塊,當(dāng)popMenu=刪除則代表為表格增加右鍵菜單刪除,當(dāng)鼠標(biāo)單擊該菜單時,對表格執(zhí)行刪除操作。
解析配置模塊3對配置文件2進行解析,前提是配置文件按某一固定格式編寫,解析模塊可按照該格式對配置文件2解析,得到可識別的界面信息。以上述配置文件2中的CustomTree為例,CustomTree的固定格式規(guī)定樹節(jié)點具有3個參數(shù)分別為自身id、父節(jié)點id(即parent)、名字(name),解析模塊可根據(jù)該格式解析CustomTree,根據(jù)解析后的信息就可確定節(jié)點之間的關(guān)系,從而將其正確顯示。
生成UI界面4。根據(jù)解析后的配置信息在構(gòu)件庫1中查找相應(yīng)控件及功能模塊,將其實例化可生成UI界面4,如圖3所示。
實施例二:
用本發(fā)明的一種靈活可配的界面生成方法該生成UI界面4可提高代碼的可重用性,有利于代碼的維護,并且界面靈活性比較高。例如當(dāng)場景改為顯示學(xué)生成績時,只需對實施例一中的配置文件2進行部分修改,在修改時無需更改代碼即可達到所需效果,對上述配置文件2進行部分修改后的配置文件2如下:
[CustomShell]
width=700,height=500;
[CustomTitleBar]
text=測試用例1,style=center,image= smile.png;
[CustomTree]
Node={id=0,parent=-1,name=一年級};
Node={id=1,parent=0,name=一班};
Node={id=2,parent=0,name=二班};
Node={id=3,parent=-1,name=二年級};
[CustomTable]
ColCnt=3,showCol={0,1,2,3}; colWid={50,50,50,50};colName={學(xué)號,姓名,學(xué)科,成績};
根據(jù)上述修改配置文件2,經(jīng)過解析模塊的解析,調(diào)用構(gòu)件庫1中相應(yīng)控件和功能模塊后可生成對應(yīng)UI界面4,如圖4所示,圖4是場景為學(xué)生成績時的UI界面4圖。
由上可見通過該方法生成的界面靈活性高、可適用不同場景,代碼的可重用性高,利于可維護,開發(fā)人員只需不斷完善構(gòu)件庫并編寫相應(yīng)配置文件即可。本發(fā)明的一種根據(jù)配置信息生成界面的方法及系統(tǒng),能夠針對不同業(yè)務(wù)類型、不同客戶需求定制相應(yīng)的配置信息,根據(jù)配置信息生成相應(yīng)界面,界面靈活可配。