著录项信息
专利名称 | 一种机顶盒人机界面自动生成方法 |
申请号 | CN201310083331.1 | 申请日期 | 2013-03-15 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-06-19 | 公开/公告号 | CN103164226A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/44 | IPC分类号 | G;0;6;F;9;/;4;4;;;H;0;4;N;2;1;/;4;7;2查看分类表>
|
申请人 | 成都三零凯天通信实业有限公司 | 申请人地址 | 四川省成都市高新区创业路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 成都三零凯天通信实业有限公司 | 当前权利人 | 成都三零凯天通信实业有限公司 |
发明人 | 董弋粲;李金海;张黛西 |
代理机构 | 成都金英专利代理事务所(普通合伙) | 代理人 | 袁英 |
摘要
本发明公开了一种机顶盒人机界面自动生成方法,它包括以下步骤:标签文档格式定义,用户界面组件标签事件处理方法定义和自动化界面生成,所述的标签文档格式定义为将多种业务逻辑的数据组成一个HTML能够识别的文档;用户界面组件标签事件处理方法定义完成标签处理程序、机顶盒遥控器按键响应事件和JSP页面生成的Servlet之间的映射,实现界面标签业务逻辑的转换;所述的自动化界面生成解析所述的标签文档中的自定义标签然后通过HTML方式回显给机顶盒。本发明支持多种图片格式、中英文字和视频内容的混排版,便于用户快速的对界面进行编辑,具有开发成本低,使用和维护方便,便于新界面开发及用户感知好等优点。
一种机顶盒人机界面自动生成方法\n技术领域\n[0001] 本发明涉及一种机顶盒人机界面自动生成方法。\n背景技术\n[0002] 构建用户界面是费时和昂贵的,据统计,在图形用户界面系统中,差不多源代码和开发时间的50%都被用来创建用户界面。用户界面,特别是图形用户界面,承担着向用户显示问题模型和与用户进行操作和交互的作用,用户不仅希望交互操作的界面保持相对稳定,更希望根据需要调整和改变显示的内容和形式,如何在不改变软件的功能和模型的前提下,方便地完成对用户界面构造的调整,正是软件界面自动化的研究任务。\n[0003] 近年来,出现了很多基于模型的界面开发环境,通过几种模型整合针对应用系统的不同侧面进行建模,从而获得足够的信息支持用户界面的自动生成,这些模型一般使用对话模型或任务模型来描述人机交互,但这类模型对交互行为的描述过于复杂,并且这类模型和系统中其他模型之间的映射问题也难于处理,不适用于IP机顶盒人机界面的自动生成。\n发明内容\n[0004] 本发明的目的在于克服现有技术的不足,提供一种支持多种图片格式、中英文字和视频内容的混排版,便于用户快速对界面进行编辑,开发成本低,使用和维护方便,便于新界面开发及用户感知好的一种机顶盒人机界面自动生成方法。\n[0005] 本发明的目的是通过以下技术方案来实现的:一种机顶盒人机界面自动生成方法,它包括以下步骤:\n[0006] S1: 标签文档格式定义,即将多种业务逻辑的数据组成一个HTML能够识别的文档,所述的标签文档包括标签库描述符,以及Java类标签处理程序或JSP代码;\n[0007] S2: 用户界面组件标签事件处理方法定义,即定义标签处理程序、机顶盒遥控器按键响应事件和JSP页面生成的Servlet之间的映射,以及所有标签处理程序的基本方法或函数,实现界面标签业务逻辑的转换;\n[0008] S3: 自动化界面生成,即解析所述的标签文档中的自定义标签,运用所述的界面组件标签事件处理方法绑定数据,然后通过HTML方式回显给机顶盒。\n[0009] 所述的标签包括前缀、标签名称、属性名称、属性值、标签体和结束标识,[0010] 进一步的,所述的一种机顶盒人机界面自动生成方法,它还包括一个标签模板定义步骤。\n[0011] 进一步的,所述的一种机顶盒人机界面自动生成方法,它还包括一个通过Tag接口扩展实现的控制重复处理标签体内容的方法或函数。\n[0012] 进一步的,所述的一种机顶盒人机界面自动生成方法,它还包括一个通过IterationTag接口扩展实现对标签体内容进行访问和操作的方法或函数。\n[0013] 本发明的有益效果是:本发明通过标签文档格式定义、用户界面组件标签事件处理方法定义和自动化界面生成三个步骤实现了机顶盒人机交互界面的自动生成,并且支持多种图片格式、中英文字和视频内容的混排版,便于用户快速的对界面进行编辑,具有开发成本低,使用和维护方便,便于新界面开发及用户感知好等优点。\n附图说明\n[0014] 图1为本发明用户界面自动生成框架图;\n[0015] 图2为本发明运用生成器生成界面流程图。\n具体实施方式\n[0016] 下面结合附图进一步详细描述本发明的技术方案:如图1所示,一种机顶盒人机界面自动生成方法,它包括以下步骤:\n[0017] S1: 标签文档格式定义,即将多种业务逻辑的数据组成一个HTML能够识别的文档,所述的标签文档包括标签库描述符,以及Java类标签处理程序或JSP代码;\n[0018] S2: 用户界面组件标签事件处理方法定义,即定义标签处理程序、机顶盒遥控器按键响应事件和JSP页面生成的Servlet之间的映射,以及所有标签处理程序的基本方法或函数,实现界面标签业务逻辑的转换;\n[0019] S3: 自动化界面生成,即解析所述的标签文档中的自定义标签,运用所述的界面组件标签事件处理方法绑定数据,然后通过HTML方式回显给机顶盒。\n[0020] 所述的标签包括前缀、标签名称、属性名称、属性值、标签体和结束标识,[0021] 进一步的,所述的一种机顶盒人机界面自动生成方法,它还包括一个标签模板定义步骤。\n[0022] 进一步的,所述的一种机顶盒人机界面自动生成方法,它还包括一个通过Tag接口扩展实现的控制重复处理标签体内容的方法或函数。\n[0023] 进一步的,所述的一种机顶盒人机界面自动生成方法,它还包括一个通过IterationTag接口扩展实现对标签体内容进行访问和操作的方法或函数。\n[0024] 用户界面模板页面在需要使用组件对像时,首先在页面程序头部引用自定义的Javaweb标签库,在需要显示标签库的内容时,在程序中签入标签库的组件。\n[0025] 下列代码说明了标签在页面中的调用方式:\n[0026] <%@page language= " java " import= " java.util.* " pageEncoding= "UFT-8"%>\n[0027] <%@taglib uri= "http://com.soft/javaweb/tags"prefix= "javaweb"%>[0028] \n[0029] \n[0030]
\n[0031] 机顶盒账号:\n[0032] inputStyle= "composition"/>
\n[0033] 密码:
[0034]
\n[0035] \n[0036] \n[0037] 以上代码中的界面上提供了机顶盒账号和登录密码两个属性相关的组件以及操作按钮,其中,机顶盒账号和登录密码为文本框,供用户输入账号名称,所属的其它元素是组合框,供用户选择,操作按钮包括“确定”和“取消”,每个组件都有一个唯一标识该组件name属性,该属性在组件初始化、设定当前值和组件事件监听类中获取组件信息时用到。\n[0038] 如图2所示,阐述了从组件标签事件创建Java组件对象的过程,自动化界面生成的步骤采用Java自主开发的解析器解析界面描述TLD标签库和模板页面,Java解析器基于组件标签事件,为了能够直接访问每个组件元素的属性,需要按层级关系逐级进行调用。\n[0039] 界面自动生成器用一个Java类GuiGenerator来实现,该类继承来自SAX API的DefaultHandler类,它实现错误处理和文档处理的接口,提供一种更简单的方式处理SAX事件。\n[0040] GuiGenerator类构造方法代码如下:\n[0041] public GuiGenerator(String htmlFile, HashMap initData, HashMap curData) {\n[0042] super();\n[0043] this. htmlFile= htmlFile;\n[0044] this.initData = initData;\n[0045] this.curData = curData;\n[0046] }\n[0047] 参数htmlFile是待解析的界面模板HTML页面的文件名;initData是组件的初始化数据,比如组合框的选项,用与初始化界面组件;curData是组件的当前值,比如修改名称对话框中原来的名称、元数据类型等,用于设定文本框的文本值和组合框的当前选项等,initData和curData均为HashMap类型,可以存放多组数据。\n[0048] GuiGenerator类中build方法负责初始化HTML文档的解析,初始化过程又将引发一系列的事件发生,这些时间将引导界面组件的构造过程,在build方法中,首先将Java解析器的内容处理接口设置为GuiGenerator类,由此指示解析器向这个类发送所有事件,然后通过调用该解析器的parse()方法初始化HTML模板文件的解析过程,在parse()方法中用指定名称的HTML文件输入流创建一个InputSource对象,用它来读入界面描述HTML文档。\n[0049] 当文档的解析过程开始时,事件将被逐个激活,当遇到每一个元素时,就调用已经重写的startElement方法,将访问元素的名称以及附加在元素上的属性列表。\n[0050] 下列代码说明了如何处理表示元素开始的事件:\n[0051] public void startElement(String namespaceURI, String name, String qName,\n[0052] Attributes atts) {\n[0053] if (name.equals("button")) {\n[0054] JButton button = new JButton(atts.getValue("text"));\n[0055] Class actionClass = null;\n[0056] try {\n[0057] actionClass = Class.forName(atts.\ngetValue("action"));\n[0058] Constructor constructor = actionClass.getConstructor(\n[0059] JPanel.class);\n[0060] button.addActionListener((ActionListener) constructor.\n[0061] newInstance(primaryContainer));\n[0062] } catch (Exception ex) {\n[0063] ex.printStackTrace();\n[0064] }\n[0065] primaryContainer.add(button);\n[0066] }\n[0067] 该方法采用了一种简单的方法检索name参数的值来确定希望添加的组件的类型,使用new操作符,并将text属性的值传递给构造函数以便创建一个按钮,按钮创建以后,通过Java类的动态加载机制把按钮与其事件监听类相关联,最后将这个按钮添加到之前声明的JPanel上。\n[0068] startElement方法依次处理系统中用到的各种组件,并根据用户界面HTML中的属性值设置组件属性,用initData初始化,用curData设置当前值,最后添加到JPanel上。\n[0069] 该过程一直继续下去,直到解析完整个HTML文件,然后界面生成器将返回一个HTML页面,完成人机界面的自动生成。法律信息
- 2022-02-25
未缴年费专利权终止
IPC(主分类): G06F 9/44
专利号: ZL 201310083331.1
申请日: 2013.03.15
授权公告日: 2016.03.02
- 2016-03-02
- 2013-07-24
实质审查的生效
IPC(主分类): G06F 9/44
专利申请号: 201310083331.1
申请日: 2013.03.15
- 2013-06-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-12-12
|
2012-07-11
| | |
2
| |
2009-09-30
|
2008-10-10
| | |
3
| |
2013-02-06
|
2012-09-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |