專利名稱:一種機頂盒人機界面自動生成方法
技術領域:
本發(fā)明涉及一種機頂盒人機界面自動生成方法。
背景技術:
構建用戶界面是費時和昂貴的,據(jù)統(tǒng)計,在圖形用戶界面系統(tǒng)中,差不多源代碼和開發(fā)時間的50%都被用來創(chuàng)建用戶界面。用戶界面,特別是圖形用戶界面,承擔著向用戶顯示問題模型和與用戶進行操作和交互的作用,用戶不僅希望交互操作的界面保持相對穩(wěn)定,更希望根據(jù)需要調整和改變顯示的內容和形式,如何在不改變軟件的功能和模型的前提下,方便地完成對用戶界面構造的調整,正是軟件界面自動化的研究任務。近年來,出現(xiàn)了很多基于模型的界面開發(fā)環(huán)境,通過幾種模型整合針對應用系統(tǒng)的不同側面進行建模,從而獲得足夠的信息支持用戶界面的自動生成,這些模型一般使用對話模型或任務模型來描述人機交互,但這類模型對交互行為的描述過于復雜,并且這類模型和系統(tǒng)中其他模型之間的映射問題也難于處理,不適用于IP機頂盒人機界面的自動生成。
發(fā)明內容
本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種支持多種圖片格式、中英文字和視頻內容的混排版,便于用戶快速對界面進行編輯,開發(fā)成本低,使用和維護方便,便于新界面開發(fā)及用戶感知好的一種機頂盒人機界面自動生成方法。本發(fā)明的目的是通過以下技術方案來實現(xiàn)的:一種機頂盒人機界面自動生成方法,它包括以下步驟:
S1:標簽文檔格式定義,即將多種業(yè)務邏輯的數(shù)據(jù)組成一個HTML能夠識別的文檔,所述的標簽文檔包括標簽庫描述符,以及Java類標簽處理程序或JSP代碼;
S2:用戶界面組件標簽事件處理方法定義,即定義標簽處理程序、機頂盒遙控器按鍵響應事件和JSP頁面生成的Servlet之間的映射,以及所有標簽處理程序的基本方法或函數(shù),實現(xiàn)界面標簽業(yè)務邏輯的轉換;
S3:自動化界面生成,即解析所述的標簽文檔中的自定義標簽,運用所述的界面組件標簽事件處理方法綁定數(shù)據(jù),然后通過HTML方式回顯給機頂盒。所述的標簽包括如綴、標簽名稱、屬性名稱、屬性值、標簽體和結束標識,
進一步的,所述的一種機頂盒人機界面自動生成方法,它還包括一個標簽模板定義步驟。進一步的,所述的一種機頂盒人機界面自動生成方法,它還包括一個通過Tag接口擴展實現(xiàn)的控制重復處理標簽體內容的方法或函數(shù)。進一步的,所述的一種機頂盒人機界面自動生成方法,它還包括一個通過IterationTag接口擴展實現(xiàn)對標簽體內容進行訪問和操作的方法或函數(shù)。本發(fā)明的有益效果是:本發(fā)明通過標簽文檔格式定義、用戶界面組件標簽事件處理方法定義和自動化界面生成三個步驟實現(xiàn)了機頂盒人機交互界面的自動生成,并且支持多種圖片格式、中英文字和視頻內容的混排版,便于用戶快速的對界面進行編輯,具有開發(fā)成本低,使用和維護方便,便于新界面開發(fā)及用戶感知好等優(yōu)點。
圖1為本發(fā)明用戶界面自動生成框架 圖2為本發(fā)明運用生成器生成界面流程圖。
具體實施例方式下面結合附圖進一步詳細描述本發(fā)明的技術方案:如圖1所示,一種機頂盒人機界面自動生成方法,它包括以下步驟:
S1:標簽文檔格式定義,即將多種業(yè)務邏輯的數(shù)據(jù)組成一個HTML能夠識別的文檔,所述的標簽文檔包括標簽庫描述符,以及Java類標簽處理程序或JSP代碼;
S2:用戶界面組件標簽 事件處理方法定義,即定義標簽處理程序、機頂盒遙控器按鍵響應事件和JSP頁面生成的Servlet之間的映射,以及所有標簽處理程序的基本方法或函數(shù),實現(xiàn)界面標簽業(yè)務邏輯的轉換;
S3:自動化界面生成,即解析所述的標簽文檔中的自定義標簽,運用所述的界面組件標簽事件處理方法綁定數(shù)據(jù),然后通過HTML方式回顯給機頂盒。所述的標簽包括如綴、標簽名稱、屬性名稱、屬性值、標簽體和結束標識,
進一步的,所述的一種機頂盒人機界面自動生成方法,它還包括一個標簽模板定義步驟。進一步的,所述的一種機頂盒人機界面自動生成方法,它還包括一個通過Tag接口擴展實現(xiàn)的控制重復處理標簽體內容的方法或函數(shù)。進一步的,所述的一種機頂盒人機界面自動生成方法,它還包括一個通過IterationTag接口擴展實現(xiàn)對標簽體內容進行訪問和操作的方法或函數(shù)。用戶界面模板頁面在需要使用組件對像時,首先在頁面程序頭部引用自定義的Javaweb標簽庫,在需要顯示標簽庫的內容時,在程序中簽入標簽庫的組件。下列代碼說明了標簽在頁面中的調用方式:
<%@page language=丨丨 java 丨丨 import=丨丨 java.util.^ 丨丨 pageEncoding=丨丨UFT-8 丨丨 %>
<%@taglib uri=丨丨 http://com.soft/javaweb/tags 丨丨 prefix=丨丨 javaweb 丨丨 %><html>
〈body〉
<h2>
機頂盒賬號:〈javaweb:inputTag inputld= " txtRegUid " > inputStyle=丨丨 composition 丨丨 /><hr/>
密石馬:<javaweb:inputTag inputld=丨丨 txtPassWord 丨丨 /><hr/>
</h2>
〈/body〉</html>
以上代碼中的界面上提供了機頂盒賬號和登錄密碼兩個屬性相關的組件以及操作按鈕,其中,機頂盒賬號和登錄密碼為文本框,供用戶輸入賬號名稱,所屬的其它元素是組合框,供用戶選擇,操作按鈕包括“確定”和“取消”,每個組件都有一個唯一標識該組件name屬性,該屬性在組件初始化、設定當前值和組件事件監(jiān)聽類中獲取組件信息時用到。如圖2所示,闡述了從組件標簽事件創(chuàng)建Java組件對象的過程,自動化界面生成的步驟采用Java自主開發(fā)的解析器解析界面描述TLD標簽庫和模板頁面,Java解析器基于組件標簽事件,為了能夠直接訪問每個組件元素的屬性,需要按層級關系逐級進行調用。界面自動生成器用一個Java類GuiGenerator來實現(xiàn),該類繼承來自SAX API的DefaultHandler類,它實現(xiàn)錯誤處理和文檔處理的接口,提供一種更簡單的方式處理SAX事件。GuiGenerator類構造方法代碼如下:
public GuiGenerator(String htmlFile, HashMap initData, HashMap curData)
{
super O ;
this.htmlFile= htmlFile;this.1nitData = initData;this.curData = curData;
}
參數(shù)htmlFile是待解析的界面模板HTML頁面的文件名;initData是組件的初始化數(shù)據(jù),比如組合框的選項,用與初始化界面組件;curData是組件的當前值,比如修改名稱對話框中原來的名稱、元數(shù)據(jù)類型等,用于設定文本框的文本值和組合框的當前選項等,initData和curData均為HashMap類型,可以存放多組數(shù)據(jù)。GuiGenerator類中buiId方法負責初始化HTML文檔的解析,初始化過程又將引發(fā)一系列的事件發(fā)生,這些時間將引導界面組件的構造過程,在build方法中,首先將Java解析器的內容處理接口設置為GuiGenerator類,由此指示解析器向這個類發(fā)送所有事件,然后通過調用該解析器的parse O方法初始化HTML模板文件的解析過程,在parse O方法中用指定名稱的HTML文件輸入流創(chuàng)建一個InputSource對象,用它來讀入界面描述HTML文檔。當文檔的解析過程開始時,事件將被逐個激活,當遇到每一個元素時,就調用已經(jīng)重寫的StartElement方法,將訪問元素的名稱以及附加在元素上的屬性列表。下列代碼說明了如何處理表示元素開始的事件:
public void startElement(String namespaceURI, String name, String
qName,
Attributes atts) {
if (name, equals (〃button〃)){
JButton button = new JButton(atts.getValue (〃text〃));
Class actionClass = null;try {actionClass = Class.forName(atts.getValue(〃action〃)); Constructor constructor = actionClass.getConstructor ( JPane1.class);
button.addActionLi stener((ActionListener)
constructor.newlnstance (primaryContainer));
} catch (Exception ex) {ex.printStackTrace ();
}
primaryContainer.add (button);
}
該方法釆用了一種簡單的方法檢索name參數(shù)的值來確定希望添加的組件的類型,使用new操作符,并將te xt屬性的值傳遞給構造函數(shù)以便創(chuàng)建一個按鈕,按鈕創(chuàng)建以后,通過Java類的動態(tài)加載機制把按鈕與其事件監(jiān)聽類相關聯(lián),最后將這個按鈕添加到之前聲明的JPanel 上。
startElement方法依次處理系統(tǒng)中用到的各種組件,并根據(jù)用戶界面HTML中的屬性值設置組件屬性,用initData初始化,用curData設置當前值,最后添加到JPanel上。該過程一直繼續(xù)下去,直到解析完整個HTML文件,然后界面生成器將返回一個HTML頁面,完成人機界面的自動生成。
權利要求
1.一種機頂盒人機界面自動生成方法,其特征在于:它包括以下步驟: S1:標簽文檔格式定義,即將多種業(yè)務邏輯的數(shù)據(jù)組成一個HTML能夠識別的文檔,所述的標簽文檔包括標簽庫描述符,以及Java類標簽處理程序或JSP代碼; S2:用戶界面組件標簽事件處理方法定義,即定義標簽處理程序、機頂盒遙控器按鍵響應事件和JSP頁面生成的Servlet之間的映射,以及所有標簽處理程序的基本方法或函數(shù),實現(xiàn)界面標簽業(yè)務邏輯的轉換; S3:自動化界面生成,即解析所述的標簽文檔中的自定義標簽,運用所述的界面組件標簽事件處理方法綁定數(shù)據(jù),然后通過HTML方式回顯給機頂盒。
2.根據(jù)權利要求1所述的一種機頂盒人機界面自動生成方法,其特征在于:所述的標簽包括前綴、標簽名稱、屬性名稱、屬性值、標簽體和結束標識。
3.根據(jù)權利要求1所述的一種機頂盒人機界面自動生成方法,其特征在于:它還包括一個標簽模板定義步驟。
4.根據(jù)權利要求1所述的一種機頂盒人機界面自動生成方法,其特征在于:它還包括一個通過Tag接口擴展實現(xiàn)的控制重復處理標簽體內容的方法或函數(shù)。
5.根據(jù)權利要求1所述的一種機頂盒人機界面自動生成方法,其特征在于:它還包括一個通過IterationTag接口擴展實現(xiàn)對標簽體內容進行訪問和操作的方法或函數(shù)。
全文摘要
本發(fā)明公開了一種機頂盒人機界面自動生成方法,它包括以下步驟標簽文檔格式定義,用戶界面組件標簽事件處理方法定義和自動化界面生成,所述的標簽文檔格式定義為將多種業(yè)務邏輯的數(shù)據(jù)組成一個HTML能夠識別的文檔;用戶界面組件標簽事件處理方法定義完成標簽處理程序、機頂盒遙控器按鍵響應事件和JSP頁面生成的Servlet之間的映射,實現(xiàn)界面標簽業(yè)務邏輯的轉換;所述的自動化界面生成解析所述的標簽文檔中的自定義標簽然后通過HTML方式回顯給機頂盒。本發(fā)明支持多種圖片格式、中英文字和視頻內容的混排版,便于用戶快速的對界面進行編輯,具有開發(fā)成本低,使用和維護方便,便于新界面開發(fā)及用戶感知好等優(yōu)點。
文檔編號H04N21/472GK103164226SQ20131008333
公開日2013年6月19日 申請日期2013年3月15日 優(yōu)先權日2013年3月15日
發(fā)明者董弋粲, 李金海, 張黛西 申請人:成都三零凱天通信實業(yè)有限公司