專利名稱:一種實現(xiàn)數(shù)據(jù)模型的方法及圖形化設計器的制作方法
技術領域:
本發(fā)明涉及可視化編程技術,尤其涉及一種實現(xiàn)數(shù)據(jù)模型的方法及圖形化設計
O
背景技術:
隨著計算機軟件工程技術的迅速發(fā)展,可視化編程技術已經(jīng)成為當今軟件開發(fā)的重要工具和手段??梢暬幊碳夹g中的編輯框架為圖形化設計器,圖形化設計器用于為用戶提供編程的編輯區(qū)域和分組框,用戶在分組框里選擇需要的工具,以拖動或單擊的方式將工具放置在編輯區(qū)域進行編輯。通常,圖形化設計器采用的是模型-視圖-控制器(MVC,Model-View-ControlIer) 結構,主要包括以下邏輯模塊數(shù)據(jù)模型模塊、控制模塊和顯示交互模塊。其中,在用戶對工具進行操作的時候,顯示交互模塊將操作轉換成為編輯指令發(fā)給控制模塊,控制模塊接收顯示交互模塊的編輯指令,再將編輯指令轉換成為對數(shù)據(jù)模型的操作指令發(fā)送給數(shù)據(jù)模型模塊,數(shù)據(jù)模型模塊接收控制模塊關于數(shù)據(jù)模型的操作指令,按照操作指令對數(shù)據(jù)模型做編輯;數(shù)據(jù)模型模塊將編輯后的數(shù)據(jù)模型發(fā)給控制模塊,控制模塊利用其圖形函數(shù)將數(shù)據(jù)模型轉換為工具的圖形交給顯示交互模塊,顯示交互模塊將控制模塊發(fā)來的工具的圖形展示給用戶。另外,圖形化設計器還包括持久化模塊,當用戶對工具完成操作后,根據(jù)需要對編輯后的數(shù)據(jù)模型進行保存,則顯示交互模塊會將保存的操作轉化為保存指令發(fā)給控制模塊,控制模塊向數(shù)據(jù)模型模塊發(fā)送保存該數(shù)據(jù)模型的指令,數(shù)據(jù)模型模塊收到指令后,將編輯好的數(shù)據(jù)模型保存到持久化模塊。目前,圖形化設計器中的工具時常不能滿足用戶的所有需求,用戶需要在實際使用中添加工具,但是圖形化設計器中的工具所對應的數(shù)據(jù)模型是由硬編碼的方式編寫的, 并不能按照用戶的需求靈活的添加。如果要滿足用戶的需求只能重新開發(fā)圖形化設計器, 將用戶所需要的工具所對應的數(shù)據(jù)模型以硬編碼的方式寫入圖形化設計器的數(shù)據(jù)模型模塊中。另外,目前按照由編輯指令轉換的操作指令對數(shù)據(jù)模型所做的編輯只是基于數(shù)據(jù)模型的附加屬性進行的,如果需要新增或刪除附加屬性外的屬性,同樣只能將相應數(shù)據(jù)模型以硬編碼的方式寫入圖形化設計器的數(shù)據(jù)模型模塊中。這樣就會帶來開發(fā)周期長、風險大、 且浪費人力和物力的問題。可見,目前已有的圖形化設計器無法滿足用戶及時方便的添加和/或修改工具的需求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種實現(xiàn)數(shù)據(jù)模型的方法及圖形化設計器,以滿足用戶及時方便的添加和/或修改工具的需求。為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的本發(fā)明提供了一種實現(xiàn)數(shù)據(jù)模型的方法,該方法包括圖形化設計器將配置文件轉換成為文檔樹,再利用文檔樹建立并保存數(shù)據(jù)模型。
上述方案中,所述配置文件包含分組框名稱,分組框中包含的各個工具,每個工具的名稱、圖標、工具的標識,以及每個工具的屬性信息和對應的相關事件。上述方案中,所述將配置文件轉換成文檔樹,包括按照文檔樹的格式,圖形化設計器將配置文件中的每個工具轉換為文檔樹中的一個節(jié)點,將配置文件中的分組框的名稱以及各個節(jié)點在分組框中的位置轉換為文檔樹的主干。上述方案中,所述建立數(shù)據(jù)模型,包括圖形化設計器從文檔樹中逐個提取節(jié)點, 利用節(jié)點編寫數(shù)據(jù)模型的內(nèi)部屬性,再利用文檔樹中的主干編寫各個數(shù)據(jù)模型的外部屬性。本發(fā)明還提供了一種圖形化設計器,該圖形化設計器包括加載解析模塊、數(shù)據(jù)模型生成模塊和數(shù)據(jù)模型模塊;其中,加載解析模快,用于將配置文件轉換成為文檔樹,再將文檔樹發(fā)至數(shù)據(jù)模型生成模塊;數(shù)據(jù)模型生成模塊,用于接收加載解析模塊的文檔樹,利用文檔樹建立數(shù)據(jù)模型, 再將數(shù)據(jù)模型發(fā)給數(shù)據(jù)模型模塊;數(shù)據(jù)模型模塊,用于接收并保存數(shù)據(jù)模型生成模塊發(fā)來的數(shù)據(jù)模型。上述方案中,所述加載解析模塊,具體用于按照文檔樹的格式,將配置文件中的每個工具轉換為文檔樹中的一個節(jié)點,將配置文件中的分組框的名稱以及各個節(jié)點在分組框中的位置轉換為文檔樹的主干。上述方案中,所述數(shù)據(jù)模型生成模塊,具體用于從文檔樹中逐個提取節(jié)點,利用節(jié)點編寫數(shù)據(jù)模型的內(nèi)部屬性,再利用文檔樹中的主干編寫各個數(shù)據(jù)模型的外部屬性。上述方案中,該圖形化設計器進一步包括控制模塊和顯示交互模塊;其中,所述控制模塊,用于利用其圖形函數(shù)將數(shù)據(jù)模型轉換為工具的圖形,再把工具的圖形交給顯示交互模塊;所述顯示交互模塊,用于接收控制模塊轉換的工具的圖形,然后顯示給用戶。上述方案中,該圖形化設計器進一步包括持久化模塊;所述持久化模塊,用于保存數(shù)據(jù)模型模塊發(fā)來的數(shù)據(jù)模型;相應的,所述數(shù)據(jù)模型模塊,還用于將數(shù)據(jù)模型發(fā)送給持久化模塊。上述方案中,所述配置文件包含分組框名稱,分組框中包含的各個工具,每個工具的名稱、圖標、工具的標識,以及每個工具的屬性信息和對應的相關事件。本發(fā)明所提供的實現(xiàn)數(shù)據(jù)模型的方法及圖形化設計器,具有以下的優(yōu)點和特點 將所要添加和/或修改的工具編寫成配置文件,再利用配置文件建立數(shù)據(jù)模型,如此,就能夠根據(jù)用戶的需求,及時方便的添加和/或修改數(shù)據(jù)模型,避免了對圖形化設計器的重新開發(fā)而帶來的人力和物力的浪費,并且使圖形化設計器能夠靈活地適應各種需求。
圖1為本發(fā)明實現(xiàn)數(shù)據(jù)模型的方法的流程示意圖;圖2為本發(fā)明配置文件的示例圖;圖3為本發(fā)明實現(xiàn)數(shù)據(jù)模型的圖形化設計器的結構示意圖。
具體實施例方式本發(fā)明的基本思想是圖形化設計器將配置文件轉換成為文檔樹,再利用文檔樹建立并保存數(shù)據(jù)模型;所述配置文件為根據(jù)所需的分組框和工具編寫的定義文件,具體可以為根據(jù)用戶所要添加和/或修改的分組框和工具編寫的定義文件。下面結合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。本發(fā)明一種實現(xiàn)數(shù)據(jù)模型的方法如圖1所示,包括以下步驟步驟101 用戶需要添加工具,用戶根據(jù)需要編寫并保存有關數(shù)據(jù)模型的配置文件;這里,所述編寫指使用任何可以編寫文本文件的工具按照可擴展標記語言(XML, Extensible Markup Language)格式編寫配置文件,比如可以在寫字板中編寫配置文件;其中,配置文件的格式示例如圖2所示,圖中〈group〉......〈/group〉之間的內(nèi)容
為分組框的定義,比如本示例中的分組框的名稱為“actions”,〈entry〉......〈/entry〉之
間的內(nèi)容為一個工具的定義,包含每個工具的名稱、圖標、工具的標識、每個工具的屬性信息和對應的相關事件等,比如示例中第一個工具的名稱為“JavaAction”,工具的用途為“創(chuàng) M^yMf W JavaAction i ^ "(Create a newjava Action Node), X^^ "com. zte.
esb. JavaAction,,,工具的圖標為圖片"action, png,,,<properties>......</properties>
之間的內(nèi)容為工具屬性的描述,示例中給出的工具屬性的描述為該屬性名稱為“S0AP Client Action”,其中含有名稱為Isdl”的輸入框(input),和名稱為“BindingName”的輸
入框(input);需要添加多個工具時,則以多個〈entry〉......〈/entry〉分別對工具進行定
義;所述保存指將配置文件保存在專用的文件夾中,配置文件的保存類型必須為 “.xml”;所述專用的文件夾指安裝圖形化設計器時,自動生成的專門保存配置文件的子文件夾,比如D:\圖形化設計器\......\配置文件。步驟102 圖形化設計器啟動時讀取配置文件,將配置文件轉換成文檔樹;這里,所述文檔樹指圖形化設計器指定的文檔樹結構,文檔樹包含兩個關鍵的抽象一個為主干、另一個是用來表示文件內(nèi)容和結構的節(jié)點;其中,所述圖形化編輯器,可以通過加載任何能夠讀取XML格式的文件的解析器將配置文件轉換成文檔樹,比如加載常用的微軟的MSXML解析器;所述轉換指圖形化設計器將配置文件中的每個工具轉換為文檔樹中的一個節(jié)點,將配置文件中的分組框的名稱以及各個節(jié)點在分組框中的位置轉換為文檔樹的主干, 比如,圖形化設計器會將如圖2所示的配置文件名稱為“actions”的分組框轉化為文檔樹的主干,然后將名稱“Java Action”的工具以及工具的標識、圖標和屬性等內(nèi)容轉換為文檔樹的頭一個節(jié)點,再將下一個名稱為“SoapClient”的工具以及工具的標識、圖標和屬性等內(nèi)容轉換為文檔樹的下一個節(jié)點,“Java Action”是配置文件中的第一個工具,則在文檔樹中位于第一個節(jié)點,相應的,“Soap Client”為配置文件中列出的第二個工具,則在文檔樹中位于第二個節(jié)點。步驟103 圖形化設計器利用文檔樹建立數(shù)據(jù)模型;這里,所述建立指圖形化設計器從文檔樹中逐個提取節(jié)點,利用節(jié)點編寫數(shù)據(jù)模
5型的內(nèi)部屬性,再利用文檔樹中的主干編寫各個數(shù)據(jù)模型的外部屬性;其中,所述數(shù)據(jù)模型有內(nèi)部屬性、外部屬性和附加屬性,其中內(nèi)部屬性指數(shù)據(jù)模型的名稱和用途等;外部屬性指數(shù)據(jù)模型所屬分組框的名稱和在分組框中的位置等;附加屬性為用戶使用圖形化設計器可以進行編輯的屬性,可以由圖形化設計器直接設置。步驟104 圖形化設計器把數(shù)據(jù)模型繪制成工具的圖形顯示給用戶;這里,所述繪制指圖形化設計器利用其圖形函數(shù),將數(shù)據(jù)模型轉化成工具的圖形??梢姡ㄟ^上述步驟,即可以使用戶根據(jù)自己的需求及時方便的在圖形化設計器中添加數(shù)據(jù)模型,使得任何新的數(shù)據(jù)模型都可以按照上述過程建立起來,進而將數(shù)據(jù)模型繪制成工具顯示出來的工作。另外,如果用戶需要對已有的數(shù)據(jù)模型對應的工具進行修改,只需對步驟101中的配置文件相應的位置進行修改,然后執(zhí)行步驟102至步驟104,就可以完成對數(shù)據(jù)模型的修改,并將修改過的數(shù)據(jù)模型繪制為工具顯示給用戶。在實際的應用中,步驟104完成之后,用戶還會通過圖形化設計器利用工具進行操作,操作的過程包括圖形化設計器將用戶對工具的操作轉化為編輯指令,利用編輯指令對數(shù)據(jù)模型進行操作,再將數(shù)據(jù)模型操作完成后的狀態(tài)轉化為圖形展示給用戶;用戶根據(jù)需要對編輯好的工具進行保存,則圖形化設計器將對工具的保存的操作轉化為對編輯好的數(shù)據(jù)模型的保存指令,最終保存編輯好的數(shù)據(jù)模型。為實現(xiàn)上述方法,還需要對已有的圖形化設計器進行一些修改,如圖3所示,本發(fā)明提供了一種圖形化設計器,包括加載解析模塊31、數(shù)據(jù)模型生成模塊32和數(shù)據(jù)模型模塊33 ;其中,加載解析???1,用于將配置文件轉換成為文檔樹,再將文檔樹發(fā)至數(shù)據(jù)模型生成模塊32 ;數(shù)據(jù)模型生成模塊32,用于接收加載解析模塊31的文檔樹,利用文檔樹建立數(shù)據(jù)模型,再將數(shù)據(jù)模型發(fā)給數(shù)據(jù)模型模塊33 ;數(shù)據(jù)模型模塊33,用于接收并保存數(shù)據(jù)模型生成模塊32發(fā)來的數(shù)據(jù)模型。所述加載解析模塊31,還用于保存編寫好的配置文件;這里,所述配置文件為根據(jù)用戶所要添加的分組框和工具的編寫的定義文件,包含分組框名稱,分組框中包含的各個工具,每個工具的名稱、圖標、工具的標識等,每個工具的屬性信息和對應的相關事件;所述編寫指使用任何可以編寫文本文件的工具按照XML 格式編寫配置文件,比如在寫字板中編寫配置文件;所述保存指將配置文件保存在專用的文件夾中,配置文件的保存類型必須為“.xml”;其中,所述專用的文件夾指安裝圖形化設計
器時,自動生成的專門保存配置文件的子文件夾,比如D:\圖形化設計器\......\配置文件。所述加載解析模塊31,具體用于按照文檔樹的格式,將配置文件中的每個工具轉換為文檔樹中的一個節(jié)點,將配置文件中的分組框的名稱以及各個節(jié)點在分組框中的位置轉換為文檔樹的主干;這里,所述加載解析模塊31可以通過加載任何能夠讀取XML格式的文件的解析器將配置文件轉換成文檔樹,比如加載常用的微軟的MSXML解析器。所述數(shù)據(jù)模型生成模塊32,具體用于從文檔樹中逐個提取節(jié)點,利用節(jié)點編寫數(shù)據(jù)模型的內(nèi)部屬性,再利用文檔樹中的主干編寫各個數(shù)據(jù)模型的外部屬性;其中,所述數(shù)據(jù)模型的內(nèi)部屬性指數(shù)據(jù)模型的名稱和用途等,所述數(shù)據(jù)模型的外部屬性指數(shù)據(jù)模型所屬分組框的名稱和在分組框中的位置等。上述圖形化設計器進一步包括控制模塊34和顯示交互模塊35,其中,控制模塊34,用于利用其圖形函數(shù)將數(shù)據(jù)模型轉換為工具的圖形,再把工具的圖形交給顯示交互模塊35 ;相應的,所述顯示交互模塊35,用于接收控制模塊34轉換的工具的圖形,然后顯示給用戶。所述控制模塊34,還用于實時監(jiān)測數(shù)據(jù)模型模塊33的關于任意一個數(shù)據(jù)模型發(fā)生變化的通知,一旦收到該通知就從數(shù)據(jù)模型模塊33獲取數(shù)據(jù)模型;相應的,所述數(shù)據(jù)模型模塊33,還用于實時監(jiān)測模塊內(nèi)部數(shù)據(jù)模型的變化,一旦任一數(shù)據(jù)模型發(fā)生變化,則向控制模塊34發(fā)送關于任意一個數(shù)據(jù)模型發(fā)生變化的通知,然后將產(chǎn)生變化的數(shù)據(jù)模型提供給控制模塊34。所述顯示交互模塊35,還用于將用戶對工具的圖形的操作轉化為編輯指令發(fā)送給控制模塊34 ;相應的,所述控制模塊34,還用于接收來自顯示交互模塊35的編輯指令,將編輯指令轉換為對數(shù)據(jù)模型的操作指令,將操作指令發(fā)送給數(shù)據(jù)模型模塊33 ;所述數(shù)據(jù)模型模塊33,還用于接收控制模塊34的操作指令,根據(jù)操作指令對數(shù)據(jù)模型進行操作;其中,所述根據(jù)操作指令對數(shù)據(jù)模型進行操作,具體所做的操作根據(jù)實際情況而不同,比如,用戶對工具的圖形進行顏色編輯,則這個編輯由顯示交互模塊35轉換為對該工具圖形的顏色編輯指令發(fā)送給控制模塊34,相應的,控制模塊34收到了該工具圖形的顏色編輯指令后,將這個編輯指令轉換為對其數(shù)據(jù)模型的顏色編輯的操作指令,將該操作指令發(fā)送給數(shù)據(jù)模型模塊33,所述數(shù)據(jù)模型模塊33接收到了控制模塊34的對數(shù)據(jù)模型進行顏色編輯的操作指令,根據(jù)操作指令對數(shù)據(jù)模型進行顏色編輯的相關調整。所述控制模塊34,還用于檢測用戶是否開啟圖形化設計器,當檢測到開圖形化設計器時,向加載解析模塊31發(fā)送轉換指令;相應的,所述加載解析模塊31,具體用于接收控制模塊34發(fā)送的轉換指令,然后將配置文件轉換成文檔樹。上述圖形化設計器進一步包括持久化模塊36,用于保存數(shù)據(jù)模型模塊33發(fā)送的數(shù)據(jù)模型;相應的,所述數(shù)據(jù)模型模塊33,還用于將數(shù)據(jù)模型發(fā)送給持久化模塊36。所述顯示交互模塊35,具體用于將用戶對工具的圖形的保存操作轉化為保存指令發(fā)送給控制模塊34 ;相應的,所述控制模塊34,具體用于接收顯示交互模塊35的保存指令, 將保存指令轉換為對指定數(shù)據(jù)模型的保存指令,將該保存指令發(fā)送給數(shù)據(jù)模型模塊33 ;所述數(shù)據(jù)模型模塊33,具體用于根據(jù)控制模塊34發(fā)來的保存指令,將指令中指定的數(shù)據(jù)模型發(fā)送給持久化模塊36。所述顯示交互模塊35,具體用于在用戶對已保存的工具進行編輯時,將對該已保存的工具的編輯轉化為編輯指令發(fā)送給控制模塊34 ;相應的,控制模塊34接收到顯示交互模塊35發(fā)送的對已保存的工具的編輯指令后,將該編輯指令發(fā)給持久化模塊36 ;持久化模塊36,還用于接收控制模塊34的編輯指令,對本模塊中的數(shù)據(jù)模型進行指令中指定的操作,然后將編輯后的數(shù)據(jù)模型交給控制模塊34??梢姡瑧蒙鲜龅姆桨妇涂梢酝ㄟ^在已有的圖形化設計器中增加加載解析模塊和數(shù)據(jù)模型生成模塊這兩個邏輯模塊,再將數(shù)據(jù)模型模塊修改為可以接收數(shù)據(jù)模型生成模塊的數(shù)據(jù)模型的接口模塊,即可添加和/或修改數(shù)據(jù)模型,不需要對圖形化設計器進行重新開發(fā),從而節(jié)省了人力和物力。 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權利要求
1.一種實現(xiàn)數(shù)據(jù)模型的方法,其特征在于,該方法包括圖形化設計器將配置文件轉換成為文檔樹,再利用文檔樹建立并保存數(shù)據(jù)模型。
2.根據(jù)權利要求1所述的方法,其特征在于,所述配置文件包含分組框名稱,分組框中包含的各個工具,每個工具的名稱、圖標、工具的標識,以及每個工具的屬性信息和對應的相關事件。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述將配置文件轉換成文檔樹,包括 按照文檔樹的格式,圖形化設計器將配置文件中的每個工具轉換為文檔樹中的一個節(jié)點, 將配置文件中的分組框的名稱以及各個節(jié)點在分組框中的位置轉換為文檔樹的主干。
4.根據(jù)權利要求3所述的方法,其特征在于,所述建立數(shù)據(jù)模型,包括圖形化設計器從文檔樹中逐個提取節(jié)點,利用節(jié)點編寫數(shù)據(jù)模型的內(nèi)部屬性,再利用文檔樹中的主干編寫各個數(shù)據(jù)模型的外部屬性。
5.一種圖形化設計器,其特征在于,該圖形化設計器包括加載解析模塊、數(shù)據(jù)模型生成模塊和數(shù)據(jù)模型模塊;其中,加載解析??欤糜趯⑴渲梦募D換成為文檔樹,再將文檔樹發(fā)至數(shù)據(jù)模型生成模塊;數(shù)據(jù)模型生成模塊,用于接收加載解析模塊的文檔樹,利用文檔樹建立數(shù)據(jù)模型,再將數(shù)據(jù)模型發(fā)給數(shù)據(jù)模型模塊;數(shù)據(jù)模型模塊,用于接收并保存數(shù)據(jù)模型生成模塊發(fā)來的數(shù)據(jù)模型。
6.根據(jù)權利要求5所述的圖形化設計器,其特征在于,所述加載解析模塊,具體用于按照文檔樹的格式,將配置文件中的每個工具轉換為文檔樹中的一個節(jié)點,將配置文件中的分組框的名稱以及各個節(jié)點在分組框中的位置轉換為文檔樹的主干。
7.根據(jù)權利要求5所述的圖形化設計器,其特征在于,所述數(shù)據(jù)模型生成模塊,具體用于從文檔樹中逐個提取節(jié)點,利用節(jié)點編寫數(shù)據(jù)模型的內(nèi)部屬性,再利用文檔樹中的主干編寫各個數(shù)據(jù)模型的外部屬性。
8.根據(jù)權利要求5、6或7所述的圖形化設計器,其特征在于,該圖形化設計器進一步包括控制模塊和顯示交互模塊;其中,所述控制模塊,用于利用其圖形函數(shù)將數(shù)據(jù)模型轉換為工具的圖形,再把工具的圖形交給顯示交互模塊;所述顯示交互模塊,用于接收控制模塊轉換的工具的圖形,然后顯示給用戶。
9.根據(jù)權利要求5、6或7所述的圖形化設計器,其特征在于,該圖形化設計器進一步包括持久化模塊;所述持久化模塊,用于保存數(shù)據(jù)模型模塊發(fā)來的數(shù)據(jù)模型;相應的,所述數(shù)據(jù)模型模塊,還用于將數(shù)據(jù)模型發(fā)送給持久化模塊。
10.根據(jù)權利要求5、6或7所述的圖形化設計器,其特征在于,所述配置文件包含分組框名稱,分組框中包含的各個工具,每個工具的名稱、圖標、工具的標識,以及每個工具的屬性信息和對應的相關事件。
全文摘要
本發(fā)明公開了一種實現(xiàn)數(shù)據(jù)模型的方法,包括圖形化設計器將配置文件轉換成為文檔樹,再利用文檔樹建立并保存數(shù)據(jù)模型。本發(fā)明還同時公開了一種圖形化設計器,采用本發(fā)明能滿足用戶及時方便的添加和/或修改工具的需求。
文檔編號G06F9/44GK102411498SQ201110210859
公開日2012年4月11日 申請日期2011年7月26日 優(yōu)先權日2011年7月26日
發(fā)明者夏松 申請人:中興通訊股份有限公司