午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種自適應(yīng)的圖形用戶界面構(gòu)建裝置及方法

文檔序號:6599112閱讀:154來源:國知局
專利名稱:一種自適應(yīng)的圖形用戶界面構(gòu)建裝置及方法
技術(shù)領(lǐng)域
本發(fā)明關(guān)于計算機系統(tǒng)中的圖形用戶界面技術(shù),特別是關(guān)于圖形用戶界面的布局技術(shù),具體的講是一種自適應(yīng)的圖形用戶界面構(gòu)建裝置及方法。
背景技術(shù)
圖形用戶界面(⑶I)是一種由對話框、標簽、按鈕、組件容器等一系列⑶I控件組成的可視系統(tǒng),GUI布局是對GUI控件的合理布置和安排,其美觀性、合理性和實用性直接影響著用戶的觀感和評價。然而在復(fù)雜程度較高的企業(yè)化信息系統(tǒng)開發(fā)中,研發(fā)人員往往需要在極短的時間內(nèi)完成大規(guī)模的GUI布局設(shè)計;同時,隨著業(yè)務(wù)流程的發(fā)展和變更,原有 GUI布局和風格不可避免發(fā)生變化,需要進行布局重排。導(dǎo)致⑶I布局重排的原因主要有以下兩種一、⑶I控件調(diào)整,包括在已有布局上新增、刪除組件,或調(diào)整組件的絕對位置,由此引起GUI布局中大量GUI控件的重新調(diào)整; 二、界面的可視面積發(fā)生變化,從而使得原有內(nèi)容無法適應(yīng)新的組件容器。面對因局部調(diào)整 GUI控件而引起的布局重排,現(xiàn)有技術(shù)沒有考慮控件之間的關(guān)聯(lián)性約束,重排后的布局存在 GUI控件的交叉和截斷的問題,使得用戶無法理解控件的含義,使用很不方便。

發(fā)明內(nèi)容
本發(fā)明實施例提供了一種自適應(yīng)的圖形用戶界面構(gòu)建裝置及方法,用以解決因 ⑶I控件局部調(diào)整和業(yè)務(wù)需求變化而進行的⑶I布局重排問題。本發(fā)明的目的之一是,提供一種自適應(yīng)的圖形用戶界面構(gòu)建方法,該方法包括接收用戶輸入的資源文件和界面框架模板文件;將所述的資源文件分解為數(shù)據(jù)項記錄,根據(jù)用戶輸入的控件屬性設(shè)置指令對所述數(shù)據(jù)項記錄中的控件屬性和控件之間的關(guān)聯(lián)關(guān)系進行設(shè)置,生成⑶I控件資源;將⑶I控件資源中具有坐標位置屬性的⑶I控件資源封裝成坐標資源對象,并將GUI控件資源中不具有坐標位置屬性的GUI控件資源封裝成非坐標資源對象,并將坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲;讀取GUI對象,按照適應(yīng)GUI布局的順序?qū)UI對象作為邏輯節(jié)點插入到基于界面框架模板文件的資源樹中;接收用戶輸入的控件位置設(shè)置指令,并根據(jù)控件位置設(shè)置指令對資源樹中GUI對象的坐標位置數(shù)據(jù)進行設(shè)置;將設(shè)置后的資源樹翻譯為⑶I布局,并顯示⑶I布局。本發(fā)明的目的之一是,提供一種自適應(yīng)的圖形用戶界面構(gòu)建裝置,該裝置包括文件接收單元,用于接收用戶輸入的資源文件和界面框架模板文件;控件屬性設(shè)置單元,用于將所述的資源文件分解為數(shù)據(jù)項記錄,根據(jù)用戶輸入的控件屬性設(shè)置指令對所述數(shù)據(jù)項記錄中的控件屬性和控件之間的關(guān)聯(lián)關(guān)系進行設(shè)置,生成GUI控件資源;GUI對象存儲單元, 用于將GUI控件資源中具有坐標位置屬性的GUI控件資源封裝成坐標資源對象,并將GUI 控件資源中不具有坐標位置屬性的GUI控件資源封裝成非坐標資源對象,并將坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲;資源樹生成單元,用于讀取GUI對象,按照適應(yīng)GUI布局的順序?qū)UI對象作為邏輯節(jié)點插入到基于界面框架模板文件的資源樹中;控件位置設(shè)置單元,用于接收用戶輸入的控件位置設(shè)置指令,并根據(jù)控件位置設(shè)置指令對資源樹中⑶I對象的坐標位置數(shù)據(jù)進行設(shè)置;⑶I布局顯示單元,用于將設(shè)置后的資源樹翻譯為⑶I布局,并顯示⑶I布局。本發(fā)明解決了因為業(yè)務(wù)需求變化而需要進行GUI布局重排時產(chǎn)生的效率低下、控件位置交叉和信息截斷、不關(guān)心控件關(guān)聯(lián)關(guān)系,以及無法自適應(yīng)調(diào)整⑶I控件布局的問題, 本發(fā)明的有益效果在于一、針對由于業(yè)務(wù)變化和界面重新設(shè)計導(dǎo)致的⑶I布局重排,本發(fā)明通過⑶I布局調(diào)整能夠自適應(yīng)地對GUI控件的布局進行適配,并且提供最適合的顯示效果,有效解決了控件交叉和信息截斷問題,使得本發(fā)明具有極大的實用性,有效提高了圖形用戶界面布局的構(gòu)建效率。二、本發(fā)明對于具有關(guān)聯(lián)關(guān)系的GUI控件和非關(guān)聯(lián)關(guān)系的GUI控件,在GUI布局構(gòu)建中予以區(qū)別對待,使得具有關(guān)聯(lián)關(guān)系的GUI控件之間的關(guān)系更加緊密,能夠顯示最符合客戶需求的GUI布局。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例自適應(yīng)的圖形用戶界面構(gòu)建方法流程圖;圖2為本發(fā)明實施例控件屬性設(shè)置界面示意圖;圖3為本發(fā)明實施例控件之間的關(guān)聯(lián)關(guān)系示意圖;圖4為本發(fā)明實施例資源樹結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例控件位置設(shè)置界面示意圖;圖6為本發(fā)明實施例的工作流程圖;圖7為本發(fā)明實施例自適應(yīng)的圖形用戶界面構(gòu)建裝置結(jié)構(gòu)框圖;圖8為本發(fā)明實施例資源樹生成單元程序框圖;圖9為本發(fā)明實施例的控件位置設(shè)置單元程序框圖;圖10為本發(fā)明實施例自適應(yīng)的圖形用戶界面布局示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示,本發(fā)明具體實施方式
提供了一種自適應(yīng)的圖形用戶界面構(gòu)建方法, 該方法包括接收用戶輸入的資源文件和界面框架模板文件(步驟S101);將所述的資源文件分解為數(shù)據(jù)項記錄,根據(jù)用戶輸入的控件屬性設(shè)置指令對所述數(shù)據(jù)項記錄中的控件屬性和控件之間的關(guān)聯(lián)關(guān)系進行設(shè)置,生成GUI控件資源(步驟S102);將GUI控件資源中具有坐標位置屬性的GUI控件資源封裝成坐標資源對象,并將GUI控件資源中不具有坐標位置屬性的GUI控件資源封裝成非坐標資源對象,并將坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲(步驟S103);讀取GUI對象,按照適應(yīng)GUI布局的順序?qū)UI對象作為邏輯節(jié)點插入到基于界面框架模板文件的資源樹中(步驟S104);接收用戶輸入的控件位置設(shè)置指令,并根據(jù)控件位置設(shè)置指令對資源樹中GUI對象的坐標位置數(shù)據(jù)進行設(shè)置(步驟S105);將設(shè)置后的資源樹翻譯為⑶I布局,并顯示⑶I布局(步驟S106)。在本實施例的自適應(yīng)的圖形用戶界面構(gòu)建方法中,可通過網(wǎng)絡(luò)終端向用戶提供資源文件和界面框架模板文件選擇界面,并接收用戶的選擇指令。在通過網(wǎng)絡(luò)與網(wǎng)絡(luò)終端相連接的服務(wù)器中解析用戶所選擇的資源文件的內(nèi)容,將其分解為數(shù)據(jù)項記錄,輸出到網(wǎng)絡(luò)終端供用戶設(shè)置數(shù)據(jù)項的屬性。如圖2所示,為DSR元數(shù)據(jù)表顯示了 DSR網(wǎng)關(guān)文件經(jīng)過解析后的數(shù)據(jù)項記錄,提供了數(shù)據(jù)項的六種屬性供用戶設(shè)置,其中組件類型列提供控件屬性的下拉菜單供用戶選擇。網(wǎng)絡(luò)終端可接收用戶對于數(shù)據(jù)項記錄中控件之間的關(guān)聯(lián)關(guān)系的定義,例如將標簽和輸入場標識為有關(guān)聯(lián)關(guān)系的控件(如圖3所示),將用戶設(shè)置的控件之間的關(guān)聯(lián)關(guān)系保存到數(shù)據(jù)項的屬性中,為后續(xù)設(shè)置控件間距做準備。在如圖2所示的控件屬性設(shè)置界面中,通過輸入/輸出屬性對用戶選擇的數(shù)據(jù)項進行分類,以確定其所屬的組(GROUP);然后根據(jù)GUI控件資源是否具有布局信息,將用戶選擇的GUI控件資源劃分成圖形坐標資源和圖形非坐標資源,并將經(jīng)過分類的資源封裝成資源對象,存儲到資源對象數(shù)據(jù)庫中。順序讀取資源對象數(shù)據(jù)庫中的資源對象,并根據(jù)資源對象和GUI對象的對應(yīng)關(guān)系將資源對象翻譯成GUI對象,存儲到GUI對象數(shù)據(jù)庫中。如圖4所示,將用戶輸入的界面框架模板文件作為產(chǎn)生資源樹的初始起點,即資源樹的雛形;然后,順序從GUI對象數(shù)據(jù)庫讀取GUI對象,若該GUI對象的輸入/輸出屬性為輸入(I),則從根節(jié)點(Window)依次遍歷資源樹,找到輸入節(jié)點組(Group Jnput);進一步的,遍歷輸入節(jié)點組(Groupjnput)下的⑶I對象節(jié)點,若新⑶I對象節(jié)點已經(jīng)存在,則返回繼續(xù)執(zhí)行下一個⑶I對象插入資源樹的步驟,否則在輸入節(jié)點組(Groupjnput)中添加一個GUI對象節(jié)點。若GUI對象的輸入/輸出屬性為輸出(0),則從根節(jié)點(Window)依次遍歷資源樹,找到輸出節(jié)點組(Group_0utput),進一步的,遍歷輸出節(jié)點組(Group_0utput) 下的GUI對象節(jié)點,若新GUI對象節(jié)點已經(jīng)存在,則返回繼續(xù)執(zhí)行下一個GUI對象插入資源樹的步驟,否則在輸出節(jié)點組(Group_0utput)中添加一個⑶I對象節(jié)點。重復(fù)上述插入 GUI對象節(jié)點的步驟,直到資源對象數(shù)據(jù)庫中的GUI對象已經(jīng)處理完畢。網(wǎng)絡(luò)終端向用戶展示GUI控件位置參數(shù)設(shè)置界面,接收用戶設(shè)置的參數(shù)。順序讀取資源樹中的數(shù)據(jù),獲?、荌對象,并結(jié)合用戶設(shè)置的布局參數(shù),依次自適應(yīng)地設(shè)置⑶I對象的位置屬性。其中包括(1)尺寸調(diào)整,根據(jù)資源文件中數(shù)據(jù)項的長度與實際控件長度的差異估算縮放比率,即長度系數(shù);然后,根據(jù)長度系數(shù)和數(shù)據(jù)項長度計算GUI控件的長度, 同樣地計算出GUI控件的寬度;最后將GUI控件的長度和寬度作為位置屬性存儲到資源樹數(shù)據(jù)庫中。(2)位置調(diào)整,用于進行GUI控件的X坐標和Y坐標的調(diào)整,使得被調(diào)整控件的 X坐標對齊上一列子控件X坐標,Y坐標對齊上一行子控件Y坐標;保證布局的整齊美觀,并將控件的坐標作為位置屬性存儲到資源樹數(shù)據(jù)庫中。C3)邊界調(diào)整,通過自適應(yīng)邊界差值法調(diào)整GUI控件的間距,通過多次越界檢查,直到找到符合邊界范圍的間距參數(shù),確定GUI控件的間距。在越界檢查和間距設(shè)置嘗試已無法獲得合適間距的情況下,則通過采取減少或增加每行控件數(shù)的方法重新確定GUI控件的間距,避免發(fā)生控件越界或邊距過大現(xiàn)象。如圖5所示,控件位置設(shè)置界面由四個參數(shù)組構(gòu)成,第一組參數(shù)用于選擇⑶I控件的輸出控件類型,可選擇表格類型輸出組件、按固定長度構(gòu)建圖形組件;第二組參數(shù)用于設(shè)置⑶I布局中第一個組控件(Groupl)的初始坐標和長寬大??;第三組參數(shù)用于設(shè)置組控件(Group)中 GUI控件的位置屬性,包括文本標簽(Label)的初始位置信息、行間距,文本輸入場(Text) 的初始位置信息,按鈕控件(Button)的初始位置信息等;第四組參數(shù)用于設(shè)置輸出控件類型為表格控件的位置信息,該參數(shù)隊列只有當用戶選擇了按照表格類型輸出組件時才生效。用戶在圖5所示的控件位置設(shè)置界面中,依次自適應(yīng)地調(diào)整⑶I對象的布局,依次完成以下幾項任務(wù)1)按照輸入/輸出數(shù)據(jù)項的縮放比例調(diào)整GUI控件的實際長度;2)調(diào)整輸入/輸出標簽和控件的坐標位置;幻調(diào)整組控件中第一個和最后一個GUI控件的絕對位置;4)設(shè)置輸入/輸出控件的列數(shù)、行間距、列間距等。根據(jù)⑶I對象的位置屬性信息,通過⑶I圖形顯示插件將資源樹翻譯成⑶I布局, 并輸出到網(wǎng)絡(luò)終端供用戶預(yù)覽。如圖6所示,本實施例的具體步驟包括步驟401,向用戶提供資源文件/界面框架模板文件選擇界面,并接收用戶的選擇指令。步驟402,解析用戶所選擇的資源文件的內(nèi)容,將其分解為數(shù)據(jù)項記錄。步驟403,用戶設(shè)置數(shù)據(jù)項的屬性。步驟404,接收用戶對于控件的關(guān)聯(lián)關(guān)系定義,將標簽和輸入場標識為有關(guān)聯(lián)關(guān)系的控件,將用戶設(shè)置的關(guān)聯(lián)關(guān)系保存到數(shù)據(jù)項的屬性中。步驟405,通過輸入/輸出屬性對用戶選擇的數(shù)據(jù)項進行分類,以確定其所屬的組 (GROUP);然后根據(jù)GUI控件資源是否具有布局信息,將用戶選擇的GUI控件資源劃分成圖形坐標資源和圖形非坐標資源,并將經(jīng)過分類的資源封裝成資源對象,存儲到資源對象數(shù)據(jù)庫中。步驟406,訪問資源對象數(shù)據(jù)庫,判斷新加入的資源對象是否為新,如果不是,則返回步驟403,繼續(xù)處理資源文件中的下一個數(shù)據(jù)項直到處理完成,否則,將新的資源對象保存在資源對象數(shù)據(jù)庫中。步驟407,遍歷資源對象數(shù)據(jù)庫,順序讀取資源對象,并根據(jù)資源對象和GUI對象的對應(yīng)關(guān)系將資源對象翻譯成GUI對象,存儲到GUI對象數(shù)據(jù)庫中。步驟408,將GUI對象數(shù)據(jù)庫中的GUI對象轉(zhuǎn)換成邏輯節(jié)點,按照GUI布局的控件順序,將GUI對象插入資源樹中,并存儲到資源樹數(shù)據(jù)庫中。步驟409,向用戶展示⑶I控件位置參數(shù)設(shè)置界面,接收用戶設(shè)置的參數(shù)。步驟410-步驟412,順序讀取資源樹數(shù)據(jù)庫中的數(shù)據(jù),獲取GUI對象,并結(jié)合用戶設(shè)置的布局參數(shù),依次自適應(yīng)地設(shè)置GUI對象的位置屬性。其中包括步驟410,尺寸調(diào)整。步驟411,位置調(diào)整。
步驟412,邊界調(diào)整。步驟413,訪問⑶I對象數(shù)據(jù)庫,判斷是否存在未經(jīng)設(shè)置的⑶I對象,如果存在,則返回步驟408,執(zhí)行將GUI對象插入資源樹的任務(wù),步驟409-步驟413重復(fù)執(zhí)行,直到所有的⑶I對象均已插入資源樹。如果已經(jīng)完成對所有⑶I對象的遍歷,則轉(zhuǎn)步驟414執(zhí)行。步驟414,訪問資源樹數(shù)據(jù)庫,通過⑶I圖形顯示插件將資源樹翻譯成圖形用戶界面,并輸出到用戶終端,展現(xiàn)GUI布局的預(yù)覽效果。步驟415,用戶終端接收用戶對于GUI布局的選擇結(jié)果,如果需要調(diào)整GUI布局, 返回步驟403,對GUI布局的控件參數(shù)等進行調(diào)整;如果不需要調(diào)整GUI布局,則轉(zhuǎn)到步驟 416。步驟416,輸出⑶I布局界面,結(jié)束本流程。如圖7所示,本實施例還提供一種自適應(yīng)的圖形用戶界面構(gòu)建裝置,該裝置包括 文件接收單元201,用于接收用戶輸入的資源文件和界面框架模板文件;控件屬性設(shè)置設(shè)置單元202,用于將所述的資源文件分解為數(shù)據(jù)項記錄,根據(jù)用戶輸入的控件屬性設(shè)置指令對所述數(shù)據(jù)項記錄中的控件屬性和控件之間的關(guān)聯(lián)關(guān)系進行設(shè)置,生成GUI控件資源;GUI 對象存儲單元203,用于將GUI控件資源中具有坐標位置屬性的GUI控件資源封裝成坐標資源對象,并將GUI控件資源中不具有坐標位置屬性的GUI控件資源封裝成非坐標資源對象,并將坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲;資源樹生成單元204,用于讀?、荌對象,按照適應(yīng)⑶I布局的順序?qū)ⅱ荌對象作為邏輯節(jié)點插入到基于界面框架模板文件的資源樹中;控件位置設(shè)置單元205,用于接收用戶輸入的控件位置設(shè)置指令,并根據(jù)控件位置設(shè)置指令對資源樹中⑶I對象的坐標位置數(shù)據(jù)進行設(shè)置;⑶I布局顯示單元206,用于將設(shè)置后的資源樹翻譯為⑶I布局,并顯示⑶I布局。如圖8所示,資源樹生成單元包括資源樹存儲模塊,用于存儲根據(jù)界面框架模板文件生成的包括資源樹根節(jié)點的資源樹初始框架;GUI對象讀取模塊,用于按照適應(yīng)GUI布局的順序讀取GUI對象;節(jié)點插入模塊,用于根據(jù)GUI對象的屬性,從根節(jié)點依次遍歷資源樹,找到與GUI對象的屬性相對應(yīng)的節(jié)點組,在節(jié)點組中添加GUI對象作為資源樹的一個新節(jié)點。本實施例裝置接收用戶提供的界面框架模板和資源文件,并將資源文件中的數(shù)據(jù)元轉(zhuǎn)換成GUI控件,為了便于進行布局調(diào)整,本實施例裝置還按照GUI布局中的控件的層次關(guān)系,將GUI布局轉(zhuǎn)換成由GUI控件作為節(jié)點的資源樹,再以資源樹為基礎(chǔ),線性調(diào)整GUI 控件的位置屬性,從而達到調(diào)整整個GUI布局的目的。GUI控件資源包括容器(窗體、外框、層、組)、組件(按鈕、文本框、下拉框、標簽、 編輯框等)、組合組件(按鈕組、表格)三類。在本實施例中,GUI布局調(diào)整系統(tǒng)建立在GUI 設(shè)計器平臺基礎(chǔ)上,因此GUI控件資源是預(yù)先確定的。本實施例裝置可為一服務(wù)器,本實施例裝置可通過網(wǎng)絡(luò)與網(wǎng)絡(luò)終端相連接,并通過該網(wǎng)絡(luò)終端實現(xiàn)與用戶之間的信息交互。本實施例裝置包括文件接收程序模塊,接收用戶選擇資源文件/界面框架模板文件,傳遞到控件屬性設(shè)置程序模塊進行解析,并展示解析后的數(shù)據(jù)項供用戶輸入數(shù)據(jù)項的屬性;控件位置設(shè)置程序模塊,供用戶輸入GUI控件位置參數(shù),并進行⑶I布局的調(diào)整;⑶I布局顯示程序模塊,生成圖形界面向用戶展示,供用戶確認是否需要調(diào)整GUI布局;GUI對象數(shù)據(jù)庫,負責存儲資源文件數(shù)據(jù)項轉(zhuǎn)換的GUI對象;資源樹生成程序模塊,按照GUI控件在GUI布局中的的層次關(guān)系將GUI布局轉(zhuǎn)換成由GUI 對象作為節(jié)點的資源樹,存儲到資源樹數(shù)據(jù)庫中。控件屬性設(shè)置程序模塊,負責讀取用戶輸入的資源文件和界面框架模板文件,將資源文件解析成數(shù)據(jù)項,接收用戶確定的用于GUI布局的數(shù)據(jù)項,以及對數(shù)據(jù)項屬性的設(shè)定(具有屬性之后的數(shù)據(jù)項對應(yīng)成為GUI控件資源),同時按照GUI控件資源是否具有坐標位置屬性將其劃分成坐標資源和非坐標資源,具有布局位置信息的GUI控件資源稱為圖形坐標資源,包括標簽、輸入/輸出場、按鈕、組控件等;不具有布局位置信息的GUI控件資源稱為非坐標資源,包括窗體、圖層、光標控件等,最后將經(jīng)過分類的資源封裝成資源對象存儲到資源對象數(shù)據(jù)庫中。GUI對象存儲模塊,負責訪問資源對象數(shù)據(jù)庫的資源對象,順序讀取資源對象,并將其轉(zhuǎn)換成GUI對象,并存儲在GUI對象數(shù)據(jù)庫中。資源樹生成程序模塊,負責將GUI對象數(shù)據(jù)庫中的GUI對象按照GUI布局的控件順序,作為邏輯節(jié)點插入資源樹中,并存儲到資源樹數(shù)據(jù)庫中??丶恢迷O(shè)置程序模塊,負責將資源樹中的所有分類為圖形坐標資源的GUI對象,自適應(yīng)調(diào)整其尺寸、位置、邊界等位置屬性,并更新到資源樹數(shù)據(jù)庫中。其包括尺寸調(diào)整單元、位置調(diào)整單元、邊界調(diào)整單元。尺寸調(diào)整單元,負責根據(jù)資源文件中數(shù)據(jù)項的長、寬,以及父控件的長寬,估算實際控件的長度和寬度的縮放系數(shù),并據(jù)此調(diào)整控件的尺寸大小,實現(xiàn)數(shù)據(jù)項長度到GUI控件長度的轉(zhuǎn)換。首先,根據(jù)資源文件中數(shù)據(jù)項的長度與實際控件長度的差異,估計縮放比率,即長度系數(shù)。長度系數(shù)遵循如下兩條約束條件一、水平向控件的長度和間距累加不能大于父控件的實際寬度;二、父控件的寬度與水平向控件的長度和間距的長度和之差不能小于用戶的邊界距。長度系數(shù)的公式設(shè)資源文件中數(shù)據(jù)項的長度為X,水平向控件的長度為len,r為長度系數(shù),Ien滿足關(guān)系式len = rx(顯然,給定父控件的寬度時,r值取決于水平控件的長度len)。水平控件長度與數(shù)據(jù)項長度的關(guān)系比例可根據(jù)線性計算公式表示, 其公式如下r = (Ienl/xl+len2/x2+. · · +lenN/xN)/N其中,N表示坐標控件數(shù),xl,x2. . . xn是數(shù)據(jù)項長度,lenl,len2. . . Ierm是實際的輸入/輸出組件長度。垂直向控件的寬度估計方法與長度系數(shù)相類似。按照同樣的方式, 可以計算垂直向的寬度系數(shù)i。然后,根據(jù)長度系數(shù)和數(shù)據(jù)項的長度可以計算GUI控件的長度X = len/r,同樣地可以計算出⑶I控件的寬度y = width/i。最后,將⑶I控件的長度和寬度作為GUI控件的位置屬性值,保存到資源樹數(shù)據(jù)庫中。 位置調(diào)整單元,負責進行⑶I控件的X坐標和Y坐標的調(diào)整,使得被調(diào)整控件的X 坐標對齊上一列子控件χ坐標,Y坐標對齊上一行子控件Y坐標;保證布局的整齊美觀。邊界調(diào)整單元,負責調(diào)整⑶I父控件中出現(xiàn)的第一個子控件,同一輸出行最后一個子控件以及最后一個輸出行的第一個子控件的邊界位置信息,使得邊界的長度不大于用戶提供的邊界設(shè)置值;同時,調(diào)整水平向GUI控件的間距,包括調(diào)整具有關(guān)聯(lián)關(guān)系的GUI控件間距和非關(guān)聯(lián)關(guān)系的⑶I控件間距,使界面布局整齊,空間利用率較高。對于具有關(guān)聯(lián)關(guān)系的GUI控件間距,默認取固定值(例如1個字符)的長度;對于非關(guān)聯(lián)關(guān)系的GUI控件間距,除了根據(jù)用戶設(shè)置的控件間距作為參考,也要控制避免因水平控件數(shù)過大而產(chǎn)生實際輸出寬度的越界影響,裝置使用“自適應(yīng)邊界差值法”進行調(diào)整首先,參考用戶設(shè)置的GUI控件間距來計算水平控件和間距的長度和,若組控件的寬度與該長度和的邊界差值大于0,且邊界差值在邊距的一定范圍內(nèi)(例如士30%),則接受現(xiàn)有的布局參數(shù);若邊界差值大于邊距某特定值(例如30% ),則將非關(guān)聯(lián)關(guān)系⑶I控件的間距遞增若干個單位長度(例如若干個字符長度),嘗試再次執(zhí)行上述越界檢查,直到獲得的間距落在標準范圍;若邊界差值小于邊距某特定值(例如30% ),則將非關(guān)聯(lián)關(guān)系GUI控件的間距遞減若干個單位長度,嘗試再次執(zhí)行上述越界檢查,直到獲得的間距落在標準范圍。由于該步驟最多可涉及多次間距調(diào)整,稱這種調(diào)整方法為“自適應(yīng)邊界差值法”。其次,在越界檢查和間距設(shè)置嘗試已無法獲得合適間距的前提下,通過采取減少或增加輸出GUI控件數(shù)的方法,避免發(fā)生GUI控件越界或邊距過大現(xiàn)象。具體步驟如下1 遍歷資源樹存儲單元,順序讀取組控件下的⑶I對象;2 按照最大列數(shù)(假設(shè)為6,包含三組標簽+文本框),循環(huán)執(zhí)行以下步驟計算邊界差值是否在合理的范圍內(nèi),即邊界差值在用戶設(shè)置的邊距的一定范圍內(nèi) (例如30% )0若邊界差值小于0,且超過文本輸入框和標簽長度和,達到該長度和的一定范圍值 (例如+30至+50% ),則采用自適應(yīng)邊界差值法調(diào)整控件間距和邊距;若無法獲得合適的間距,則將最大列數(shù)減2,重新進行自適應(yīng)邊界差值法調(diào)整,重復(fù)此步驟直至獲得合適的間距。若邊界差值大于0,且其絕對值超過文本輸入框和標簽長度和,達到該長度和的一定范圍值(例如+30至+50%之間),則采用自適應(yīng)邊界差值法調(diào)整控件的間距和邊距;若無法獲得合適的間距,則將最大列數(shù)加2,重新進行自適應(yīng)邊界差值法調(diào)整,重復(fù)此步驟直至獲得合適的間距。如果選擇的邊距在合理的范圍內(nèi),則記錄水平向⑶I控件的位置參數(shù)。3:執(zhí)行下一行控件及其位置參數(shù)設(shè)置。檢查組控件的高度與當前行輸出的控件高度、行間距總和的差值(垂直邊界差值)是否在合理的范圍內(nèi)。若垂直邊界差值在某個區(qū)間內(nèi)(例如小于1. 5倍邊距,且大于1倍邊距),則減少若干單位的(例如1個單位)行間距和邊距,重新進行越界檢查,直到垂直邊界差值等于適當?shù)闹?例如1. 5倍邊距);若垂直邊界差值大于某個值(例如2倍邊距),則增加若干單位(例如1個單位)行間距和邊距,重新進行越界檢查,直到垂直邊界差值等于適當?shù)闹?例如1.5倍邊距);若垂直邊界差值小于某個值(例如1倍邊距),則增加組控件的高度,使得垂直邊界差值達到適當?shù)闹?例如1. 5倍邊距);最后,將計算得到的GUI控件的行間距和邊距作為其位置屬性,存儲到資源樹存儲單元中。經(jīng)過調(diào)整后,界面布局整齊,空間利用率較高。數(shù)據(jù)存儲裝置,負責存儲本裝置運行所需要的數(shù)據(jù)信息,包括資源文件、界面框架模板文件、資源對象及GUI對象數(shù)據(jù)庫、資源樹。其中,資源文件存儲單元,負責存儲用戶用于進行GUI布局設(shè)計的相關(guān)的資源文件,用于提供給用戶選擇本次進行GUI設(shè)計所使用的資源文件,可以為DSR網(wǎng)關(guān)文件、接口文件等等。界面框架模板文件存儲單元,負責存儲原始的GUI布局文件,包括窗體、圖層和組控件等構(gòu)成GUI布局的基本控件,其作用是輔助確定用戶需要的GUI布局雛形。資源對象存儲單元,負責存儲經(jīng)過資源分析和分類后封裝的資源對象。資源樹存儲單元,負責存儲按照GUI布局的控件順序?qū)UI對象作為邏輯節(jié)點的資源樹,以便于進行線性調(diào)整GUI對象的位置屬性,實現(xiàn)GUI布局的調(diào)整。GUI布局顯示程序模塊,負責解析資源樹存儲單元中的GUI對象,根據(jù)GUI對象的位置屬性信息,通過⑶I圖形顯示插件將資源樹翻譯成圖形用戶界面布局,并輸出到用戶終端,向用戶展現(xiàn)GUI布局的預(yù)覽效果,最終生成的圖形用戶界面布局。優(yōu)選地,控件位置設(shè)置程序模塊的三個單元尺寸調(diào)整單元、位置調(diào)整單元、邊界調(diào)整單元,每個單元的組成結(jié)構(gòu)如圖9所示,其包括格布局調(diào)整單元311、流布局調(diào)整單元 312、邊界布局調(diào)整單元313、關(guān)聯(lián)布局調(diào)整單元314。布局調(diào)整單元311、312、313、314可以相互嵌套,例如,格布局調(diào)整單元311可以嵌套于邊界布局調(diào)整單元313中,使得網(wǎng)格單元可用于度量控件的邊界距離。由于布局調(diào)整單元具有相互嵌套的性質(zhì),其結(jié)構(gòu)可有多種構(gòu)成方式,圖9所示為其中一種結(jié)構(gòu)示例。格布局調(diào)整單元311,負責是使用網(wǎng)格來劃分控件的坐標,建立基于網(wǎng)格的坐標空間??丶倪吘唷㈤g距、長度和寬度等距離就以網(wǎng)格單元的尺寸來衡量,表示為網(wǎng)格尺寸大小的整數(shù)倍,例如規(guī)定一個網(wǎng)格單位長度為一個字符;流布局調(diào)整單元312,負責控制水平面控件坐標(X坐標)的間距,避免因橫向顯示控件數(shù)據(jù)量太多,以及間距過大而發(fā)生的水平方向的越界沖突;邊界布局調(diào)整單元313,負責控制矩形方框中控件和四種邊界區(qū)域,即上邊界、下邊界、左邊界和右邊界的邊界距,使邊距不能超越用戶設(shè)置的邊界值。關(guān)聯(lián)布局調(diào)整單元314,負責控制有關(guān)聯(lián)關(guān)系的控件間的間距關(guān)系,使有關(guān)聯(lián)關(guān)系的控件的關(guān)系緊密。規(guī)定控件之間的關(guān)聯(lián)關(guān)系是十分必要的,比如文本標簽和輸入場之間總是成對出現(xiàn),而表格和表格列也存在著對應(yīng)關(guān)系,這種對應(yīng)關(guān)系在界面設(shè)計中需要定義合適的間距。例如規(guī)定有關(guān)聯(lián)關(guān)系的標簽與輸入場的間距為一個網(wǎng)格單位長度。圖10為運用本實施例裝置構(gòu)建的⑶I界面。該界面由3個組控件構(gòu)成,組控件包含的子控件由文本框、標簽、下拉框和按鈕構(gòu)成,由圖10可見,同一水平向控件的Y坐標相等,同一垂直向控件的X坐標相等,控件的長度基本相等,有特殊長度要求的控件除外。通過自適應(yīng)算法調(diào)整后,⑶I布局界面的邊距和間距設(shè)置較為合理,已達到圖形用戶界面布局設(shè)計的要求。本發(fā)明解決了因為業(yè)務(wù)需求變化而需要進行GUI布局重排時產(chǎn)生的效率低下、控件位置交叉和信息截斷、不關(guān)心控件關(guān)聯(lián)關(guān)系,以及無法自適應(yīng)調(diào)整⑶I控件布局的問題, 本發(fā)明的優(yōu)點在于一、針對由于業(yè)務(wù)變化和界面重新設(shè)計導(dǎo)致的⑶I布局重排,本發(fā)明通過⑶I布局調(diào)整裝置3能夠自適應(yīng)地對GUI控件的布局進行適配,并且提供最適合的顯示效果,有效解決了控件交叉和信息截斷問題,使得本發(fā)明具有極大的實用性,有效提高了圖形用戶界面布局的構(gòu)建效率。
二、本發(fā)明對于具有關(guān)聯(lián)關(guān)系的GUI控件和非關(guān)聯(lián)關(guān)系的GUI控件,在GUI布局構(gòu)建中予以區(qū)別對待,使得具有關(guān)聯(lián)關(guān)系的GUI控件之間的關(guān)系更加緊密,能夠顯示最符合客戶需求的GUI布局。本發(fā)明中應(yīng)用了具體實施例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員, 依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種自適應(yīng)的圖形用戶界面構(gòu)建方法,其特征是,所述的方法包括 接收用戶輸入的資源文件和界面框架模板文件;將所述的資源文件分解為數(shù)據(jù)項記錄,根據(jù)用戶輸入的控件屬性設(shè)置指令對所述數(shù)據(jù)項記錄中的控件屬性和控件之間的關(guān)聯(lián)關(guān)系進行設(shè)置,生成GUI控件資源;將所述GUI控件資源中具有坐標位置屬性的GUI控件資源封裝成坐標資源對象,并將所述GUI控件資源中不具有坐標位置屬性的GUI控件資源封裝成非坐標資源對象,并將所述的坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲;讀取所述的GUI對象,按照適應(yīng)GUI布局的順序?qū)⑺龅腉UI對象作為邏輯節(jié)點插入到基于所述界面框架模板文件的資源樹中;接收用戶輸入的控件位置設(shè)置指令,并根據(jù)所述的控件位置設(shè)置指令對所述資源樹中 ⑶I對象的坐標位置數(shù)據(jù)進行設(shè)置;將設(shè)置后的資源樹翻譯為⑶I布局,并顯示所述的⑶I布局。
2.根據(jù)權(quán)利要求1所述的方法,其特征是,所述的數(shù)據(jù)項記錄包括變量名稱、輸入/ 輸出類型、層次、數(shù)組、組件類型和長度。
3.根據(jù)權(quán)利要求1所述的方法,其特征是,所述的GUI對象的坐標位置數(shù)據(jù)包括控件的輸入/輸出類型、控件在所述圖形用戶界面中的位置數(shù)據(jù)以及控件的長度和寬度。
4.根據(jù)權(quán)利要求3所述的方法,其特征是,所述的控件在所述圖形用戶界面中的位置數(shù)據(jù)包括括文本標簽的初始位置數(shù)據(jù)和行間距; 文本輸入場初始位置數(shù)據(jù); 按鈕控件的初始位置數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征是,所述的按照適應(yīng)GUI布局的順序?qū)⑺龅?GUI對象作為邏輯節(jié)點插入到基于所述界面框架模板文件的資源樹中包括根據(jù)所述的界面框架模板文件生成所述資源樹的根節(jié)點; 按照適應(yīng)GUI布局的順序讀取所述的GUI對象;根據(jù)所述的GUI對象的屬性,從所述根節(jié)點依次遍歷資源樹,找到與所述GUI對象的屬性相對應(yīng)的節(jié)點組,在所述節(jié)點組中添加所述的GUI對象作為所述資源樹的一個新節(jié)點。
6.一種自適應(yīng)的圖形用戶界面構(gòu)建裝置,其特征是,所述的裝置包括 文件接收單元,用于接收用戶輸入的資源文件和界面框架模板文件;控件屬性設(shè)置單元,用于將所述的資源文件分解為數(shù)據(jù)項記錄,根據(jù)用戶輸入的控件屬性設(shè)置指令對所述數(shù)據(jù)項記錄中的控件屬性和控件之間的關(guān)聯(lián)關(guān)系進行設(shè)置,生成GUI 控件資源;GUI對象存儲單元,用于將所述GUI控件資源中具有坐標位置屬性的GUI控件資源封裝成坐標資源對象,并將所述GUI控件資源中不具有坐標位置屬性的GUI控件資源封裝成非坐標資源對象,并將所述的坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲;資源樹生成單元,用于讀取所述的GUI對象,按照適應(yīng)GUI布局的順序?qū)⑺龅腉UI對象作為邏輯節(jié)點插入到基于所述界面框架模板文件的資源樹中;控件位置設(shè)置單元,用于接收用戶輸入的控件位置設(shè)置指令,并根據(jù)所述的控件位置設(shè)置指令對所述資源樹中GUI對象的坐標位置數(shù)據(jù)進行設(shè)置;⑶I布局顯示單元,用于將設(shè)置后的資源樹翻譯為⑶I布局,并顯示所述的⑶I布局。
7.根據(jù)權(quán)利要求6所述的裝置,其特征是,所述的數(shù)據(jù)項記錄包括變量名稱、輸入/ 輸出類型、層次、數(shù)組、組件類型和長度。
8.根據(jù)權(quán)利要求6所述的裝置,其特征是,所述的GUI對象的坐標位置數(shù)據(jù)包括控件的輸入/輸出類型、控件在所述圖形用戶界面中的位置數(shù)據(jù)以及控件的長度和寬度。
9.根據(jù)權(quán)利要求8所述的裝置,其特征是,所述的控件在所述圖形用戶界面中的位置數(shù)據(jù)包括括文本標簽的初始位置數(shù)據(jù)和行間距;文本輸入場初始位置數(shù)據(jù);按鈕控件的初始位置數(shù)據(jù)。
10.根據(jù)權(quán)利要求6所述的裝置,其特征是,所述的資源樹生成單元包括資源樹存儲模塊,用于存儲根據(jù)所述的界面框架模板文件生成的包括資源樹根節(jié)點的資源樹初始框架;GUI對象讀取模塊,用于按照適應(yīng)GUI布局的順序讀取所述的GUI對象;節(jié)點插入模塊,用于根據(jù)所述的GUI對象的屬性,從所述根節(jié)點依次遍歷資源樹,找到與所述GUI對象的屬性相對應(yīng)的節(jié)點組,在所述節(jié)點組中添加所述的GUI對象作為所述資源樹的一個新節(jié)點。
全文摘要
本發(fā)明提供一種自適應(yīng)的圖形用戶界面構(gòu)建方法及裝置,該裝置包括文件接收單元,接收用戶輸入的資源文件和界面框架模板文件;控件屬性設(shè)置設(shè)置單元,將所述的資源文件分解為數(shù)據(jù)項記錄,生成GUI控件資源;GUI對象存儲單元,將坐標資源對象和非坐標資源對象翻譯成對應(yīng)的GUI對象進行存儲;資源樹生成單元,按照適應(yīng)GUI布局的順序?qū)UI對象作為邏輯節(jié)點插入到基于界面框架模板文件的資源樹中;控件位置設(shè)置單元,根據(jù)控件位置設(shè)置指令對資源樹中GUI對象的坐標位置數(shù)據(jù)進行設(shè)置;GUI布局顯示單元,顯示GUI布局。用以解決GUI布局重排的問題。
文檔編號G06F9/44GK102193786SQ20101012271
公開日2011年9月21日 申請日期2010年3月11日 優(yōu)先權(quán)日2010年3月11日
發(fā)明者梁敏俐, 王向榮, 羅強 申請人:中國工商銀行股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1