專利名稱:用可擴展的標記性語言對應用程序界面進行描述的方法
技術領域:
本發(fā)明屬于計算機程序控制技術領域,具體地說是用可擴展的標記性語言對應用程序界面進行描述的方法。
背景技術:
在傳統的應用軟件開發(fā)中,對于程序的用戶界面的生成往往是直接由程序員編寫程序代碼完成。于是,用戶界面的效果往往與程序員的審美觀和代碼編寫能力直接相關,而美術設計人員受程序員的牽制比較大。另外,美術與程序的交錯,使得開發(fā)效率變得很低。
隨著互聯網的流行,HTML(超文本連接表示語言)也以其簡單的語法和靈活的表達方式成為WWW(萬維網)的頁面描述語言。不需要很復雜的程序知識,普通人就可以做出很漂亮的頁面。但是HTML的弱點就是界面描述與數據的混合,使得頁面的維護和數據的處理變得復雜。
發(fā)明內容
為克服上述不足,本發(fā)明的目的在于提供一種用可擴展的標記性語言來對應用程序界面進行描述的方法,達到像超文本連接表示語言那樣簡單易用,而又能使數據與界面分離。
為完成上述目的,本發(fā)明采取的技術方案為用可擴展的標記性語言來對應用程序界面進行描述的方法,包括描述界面的整體布局,定義界面元素的樣式風格,把樣式風格應用于界面元素之上,編寫腳本代碼,定義界面的基本交互邏輯,使整體布局里的界面元素與腳本代碼連接的步驟。
界面描述語言規(guī)范的樣式風格、界面布局、連接、代碼、資源的功能五個部分都可以存放在不同的文件里,并可以從其它文件里進行引用;定義樣式風格時注重描述單個界面元素的細節(jié);在資源描述部分,對界面中要引用的外部資源進行定義;樣式風格主要用于描述各種公共的屬性,它可在界面布局中進行引用;對界面元素的事件響應放在獨立的標記里;界面元素可以是不可視的;交互邏輯指的是當用戶對界面元素進行動作之后引起的代碼操作;連接是把界面元素與代碼進行關聯的過程;相互調用指底層模塊按照組件對象模型的標準來編寫。
采用以上技術方案,本發(fā)明具有積極的效果,界面描述語言規(guī)范的樣式風格、界面布局、連接、代碼、資源的功能五個部分都可以存放在不同的文件里,并可以從其它文件里進行引用,便于獨立平行開發(fā)。美術設計人員可以通過編輯器對界面布局和樣式風格部分進行任意的創(chuàng)作和修改,而程序員可以對代碼部分進行獨立編寫。最后通過連接部分,確保界面和代碼正確耦合。另外,資源部分還可以對各種外部數據進行封裝,方便引用,也簡化了對外的接口。
通過編輯器可以提供可視化的創(chuàng)作開發(fā),這將會大大提高軟件的開發(fā)效率,用戶界面和程序代碼可以分別由美術設計人員和程序設計人員來并行完成,而不會相互牽扯,二者都能更加專注于自己的專業(yè)特長,于是開發(fā)效率能得到很大的提高。
圖1是本發(fā)明的界面描述語言規(guī)范結構示意圖;圖2是本發(fā)明的整體構架圖;圖3-圖7是實施例運行結果圖。
下面結合附圖和實施方式對本發(fā)明作進一步詳細的說明。
具體實施例方式
參閱圖1,本發(fā)明的界面描述語言規(guī)范分為五個部分,使得界面與代碼充分分離,這五個部分是樣式風格主要用于描述各種公共的屬性,并可在界面布局中進行引用;界面布局主要用于描述各種界面元素的布局;連接用于把界面元素與程序代碼進行連接;代碼對界面元素的控制和響應;資源對各種數據的引用,比如聲音、圖片等等。
首先描述出界面的整體布局,比如文本框、按鈕的位置,而不注重其具體的外觀風格和事件響應。其次定義樣式風格,具體對界面元素如文本框的邊框顏色、背景顏色等進行定義,對某一系列的屬性值,定義為一個類,并通過類進行引用,界面元素指的是界面布局里的每一個獨立的組成部分,比如一個按鈕、菜單等,界面元素可以是不可視的。然后把樣式風格應用于界面布局描述中的每一個元素上,通過指定使用某個樣式風格類來實現。再定義連接描述,所謂連接,是指某個界面對應于代碼中的某個變量名,以及該界面元素觸發(fā)的事件該由什么代碼進行響應,通過靈活的設置連接,就可以保證代碼和界面兩端的靈活變化,它是把界面元素與代碼進行關聯的過程,因為界面布局和代碼是獨立開發(fā)的,之間的聯系是很少的,需要在最后對兩者進行整合和關聯,比如按鈕點擊以后,要執(zhí)行某個代碼語句。在本發(fā)明中,界面與代碼之間連接的描述方式不同于超文本連接語言,對于元素的事件響應的連接不是放置于同一個標記里,而是放在另外一個獨立的標記里,在界面描述語言規(guī)范里,有專門的連接描述部分,把連接描述部分單獨提取出來,方便了界面布局與代碼的獨立變更,而不至于引起相互的交錯影響。之后編寫腳本代碼,定義界面的基本交互邏輯,對界面元素進行控制,以及對界面元素事件的響應,交互邏輯指的是當用戶對界面元素進行動作比如鼠標點擊之后,引起的代碼操作,比如開始播放音樂,它隨應用程序的不同而各不相同,同時,腳本代碼還要調用底層模塊,進行具體的運算工作,本發(fā)明要求底層模塊按照組件對象模型的標準來編寫,從而視窗操作系統能與腳本技術相融合,具體的運算也就是底層模塊,它是實現整個應用程序的關鍵任務,與應用程序直接相關,與本發(fā)明的界面描述沒有直接關系,但底層模塊要滿足上面的對象模型標準。腳本代碼同時也是連接的一部分,又是程序邏輯的一部分。最后在資源部分里對引用的外部數據進行描述,并進行命名。這樣前面的樣式描述和代碼就可以直接通過名字來對資源進行引用,而無需了解外部的數據存放結構。
參閱圖2,通過以上步驟得到了一個界面描述文本,把該文本放入解釋器/引擎進行執(zhí)行,解釋器就是對界面描述語言的實現,能夠對符合界面描述語言規(guī)范/語法的文本進行解釋,并生成真正的程序界面,這樣就生成了實際運行的界面了。
下面是一個實施例1.描述布局a.定義一個主窗口,命名為MainForm。
b.在窗口上添加一個文本標簽,命名為Label。
c.界面描述文本片斷如下<View xmlnsg=″FrameUI″>
<gForm Name=′MainForm′Title=′主窗口′x=′0′y=′0′Width=′300′Height=′200′>
<gLabel Name=′Label′Title=′你好′x=′10′y=′10′Width=′100′Height=′50′/>
</gForm>
</View>
運行結果見圖3。
2.描述樣式風格a.創(chuàng)建一個樣式類,命名為ClassA。
b.在樣式類描述了一個屬性值TextFont(字體),值為“TextColor#FF0000;Underline1”(表示為紅色,并有下劃線)。
界面描述文本片斷如下<Style>
<Class Name=′ClassA′>
<Property Name=′T extFont′Value=′TextColor#FF0000;Underline1′/>
</Class>
</Style>
3.把樣式風格應用于界面元素上把樣式類ClassA賦給Label對象界面描述文本片斷如下<gXULLabel Name=′Label′Title=′你好′x=′10′y=′10′Width=′100′Height=′50′Class=′ClassA′/>
運行結果見圖4。
4.編寫代碼我們希望出現一個歡迎對話框。具體是調用了一個叫做XULScript的內部對象的MsgBox方法。界面描述文本片斷如下<Script>
<![CDATA[function OnClick(){XULScript.MsgBox(″你好!″);}]]>
</Script>
5.連接把我們希望Label對象點擊之后執(zhí)行歡迎對話框。于是添加Event標記,連接Label對象的Click事件,并執(zhí)行前面定義的代碼。界面描述文本片斷如下<Connection>
<Event Src=′Label′EventName=′Click′Action=′OnClick()′/>
</Connection>
運行結果見圖5。
6.資源的引用定義一個位圖資源,命名為Imagel,并在主窗口的背景上進行引用。界面描述文本片斷如下<Resource>
<Image Src=′res\Zapotec.bmp′Name=′Image 1′/>
</Resource><gSimpleForm Name=′MainForm′Title=′主窗口′x=′0′y=′0′Width=′300′Height=′200′BGImage=′RES//Image 1′>
運行結果見圖6。
7.完整的界面描述文本<pre listing-type="program-listing"><?xml version=′1.0′encoding=″GB2312″?><XUL><Style> <Class Name=′ClassA′><Property Name=′TextFont′Value=′TextColor#FF0000;Underline1;BGColor#FFFFFF′/> </Class> </Style><Resource><Image Src=′res\Zapotec.bmp′Name=′Image 1′/></Resource><View xmlnsg=″FrameUI″xmlnsg2=″CustomUI″><gSimpleForm Name=′MainForm′ Title=′主窗口′x=′0′y=′0′Width=′300′Height=′200′BGImage=′RES//Imagel′><gXULLabel Name=′Label′Title=′你好′x=′10′y=′10′Width=′100′Height=′50′Class=′ClassA′/></gSimpleForm></View><Connection><Event Src=′Label′EventName=′Click′Action=′OnClick()′/></Connection><Script><![CDATA[function OnClick(){XULScript.MsgBox(″你好!″);}]]></Script></XUL></pre>最終的運行結果見圖7。
權利要求
1.用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于,它包括下述步驟(a)描述界面的整體布局;(b)定義界面元素樣式風格;(c)把樣式風格應用于界面元素之上;(d)編寫腳本代碼,定義界面的基本交互邏輯;(e)使整體布局里的界面元素與腳本代碼連接。
2.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于界面描述語言規(guī)范的樣式風格、界面布局、連接、代碼、資源的功能五個部分都可以存放在不同的文件里,并可以從其它文件里進行引用。
3.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于定義樣式風格時注重描述單個界面元素的細節(jié)。
4.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于在資源描述部分,對界面中要引用的外部資源進行定義。
5.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于樣式風格主要用于描述各種公共的屬性,它可在界面布局中進行引用。
6.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于對界面元素的事件響應放在獨立的標記里。
7.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于所說的界面元素可以是不可視的。
8.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于交互邏輯指的是當用戶對界面元素進行動作之后引起的代碼操作。
9.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于所說的連接是把界面元素與代碼進行關聯的過程。
10.根據權利要求1所說的用可擴展的標記性語言對應用程序界面進行描述的方法,其特征在于相互調用指底層模塊按照組件對象模型的標準來編寫。
全文摘要
本發(fā)明涉及一種用可擴展的標記性語言對應用程序界面進行描述的方法,包括描述界面的整體布局,定義界面元素的樣式風格,把樣式風格應用于界面元素之上,編寫腳本代碼,定義界面的基本交互邏輯,使整體布局里的界面元素與腳本代碼連接的步驟。該方法克服了超文本連接表示語言所存在的界面描述與數據混合的問題,用戶界面設計和程序代碼編寫可分別由美術設計人員和程序設計人員并行完成,使開發(fā)效率得以提高。該方法適用于軟件的可視化創(chuàng)作開發(fā)。
文檔編號G06F9/45GK1506814SQ0215534
公開日2004年6月23日 申請日期2002年12月10日 優(yōu)先權日2002年12月10日
發(fā)明者黃海全 申請人:聯想(北京)有限公司