基于XML实现***界面自动生成

点赞:5348 浏览:18670 近期更新时间:2024-02-24 作者:网友分享原创网站原创

摘 要 :为解决遥控器的多样性带来的界面开发问题,提出一种针对遥控器界面的通用描述方法,基于该描述方法的语法实现了界面自动生成引擎.实验表明,通过对不同应用系统的遥控界面进行描述产生遥控描述文件,并由界面自动生成引擎解析生成遥控界面,实现了遥控器界面的自动生成,提高遥控器界面的开发效率,减少开发和维护成本.

关 键 词 :遥控器;XML;界面自动生成

中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)15-3739-03

The Implementation of UI Auto-generate for Remote Controller Based on XML

CAI Rui1, PENG Wen-kui2

(1.Guangdong Vocational Institute of Public Administration, Guangzhou 510800, China, 2. Ericsson, Guangzhou 510000, China)

基于XML实现遥控器界面自动生成参考属性评定
有关论文范文主题研究: 界面相关论文范文 大学生适用: 硕士毕业论文、专科论文
相关参考文献下载数量: 63 写作解决问题: 如何写
毕业论文开题报告: 论文模板、论文选题 职称论文适用: 杂志投稿、职称评中级
所属大学生专业类别: 如何写 论文题目推荐度: 优质选题

Abstract: To easy the way of developing user interface for various kinds of remote controller, design a mon description method for the user interface of remote controller, implement the user interface auto-generate engine based on the description method. In experiment, using the description method to generate the description file for different applications, auto-generate engine analysis the files and generate the user interface for remote controller automatically, the efficiency of UI development is improved, and the cost spent on development and maintenance is reduced.

Key words: remote controller, XML, user interface auto-generate

随着网络的发展和智能手持设备的普及,越来越多的遥控器应用出现在手持设备上.不同的受控终端都有不同的遥控功能以及遥控器界面,因此,针对不同的受控终端,需要开发不同的遥控器程序,开发和维护成本较高.界面自动生成技术为解决上述问题提供了可行的方向,在不改变遥控器程序的设计和功能的前提下,实现对用户遥控界面构造的调整.

界面自动生成技术将用户界面依照协议语法转化为数据模型,根据协议语法的规则实现界面生成器,通过解析数据模型,界面生成器自动生成用户界面;遵循相同的协议语法,不同的用户界面可以转化为不同的数据模型实例,都可以由界面生成器解析生成用户界面.可以看出,协议语法是数据模型和界面生成器之间的桥梁.针对遥控器界面的特点,本文提出一种基于XML语言的遥控描述方法作为协议语法,并在J2ME平台上完成了界面自动生成引擎,从而实现遥控器界面自动生成.

1基于XML语言的遥控描述方法

XML是一种具有灵活性和可扩展性的标记语言,随着其不断的完善,得到了广泛的应用.作为一种通用的标记语言,具有清晰的逻辑结构和用户自定义的标识含义,便于数据的互操作和上层逻辑处理.本文采用XML作为描述语言对遥控界面和遥控逻辑进行描述,在提高描述语法的灵活性和可扩展性的同时,也便于界面自动生成引擎对描述文件进行解析.

遥控器界面自动生成的主要工作在于制定合适的界面描述方法,采用该描述方法对遥控器的界面及功能进行描述并生成描述文件;遥控器具有与界面描述方法匹配的界面生成引擎,通过解析遥控描述文件生成遥控界面及相关操作逻辑,为不同的遥控界面描述产生不同的遥控界面及操作逻辑.

遥控器程序所运行的平台通常都是手持设备,屏幕尺寸有限,对于受控终端一些复杂的操作逻辑或界面形式,可以拆分成一些基本的控件元素实现在遥控界面上.同时,相对于复杂的应用软件系统,遥控器通常不需要复杂的计算逻辑,主要工作逻辑在于向受控终端传送指令和同步受控终端的状态.本文主要通过三个部分的信息来描述遥控器的界面和功能:界面元素信息、元素分组信息、通信信息.

1)界面元素及相关通信信息

遥控界面由不同的界面元素组成,使用六种基本界面元素类型能够组合成各种复杂的遥控界面,每一种界面元素类型对应一种控件类型,分别是:0、按钮,1、静态控件,2、复选框,3、单选框,4、列表框,5、编辑框.在遥控描述文件中,每个界面元素都由两类信息进行描述:显示信息和通信信息.显示信息对界面元素的类型、名称以及注释进行描述,决定了遥控器界面的显示形式.通信信息对界面元素的遥控指令进行描述,决定了遥控指令的编码和内容.

2)界面元素分组及相关通信信息

在遥控描述文件中,界面元素分组的描述包括两个方面:分组信息和通信信息.分组信息对分组的名称和分组内的界面元素进行描述,将各界面元素进行分组,每个分组视为一个显示合集,根据遥控器显示屏幕的尺寸,同一个显示合集的界面元素将形成一个或多个关联在一起的遥控子界面,用户可以在不同的遥控子界面之间跳转.分组的通信信息对分组的遥控指令进行描述,实现了遥控器和受控端之间显示焦点的同步.

本文以一个视频会议系统为例,实现了遥控描述文件,其中对一个界面元素分组的描述如下形式:

视频设置面板

4000

选中摄像机

2

4001

4002

选择是否使用摄像机

选中声卡

等等.

3)全局通信参数

全局通信参数对完成遥控所需的公共指令进行定义.

9000

0200

errorCommand定义了错误指令,受控终端通过该指令向遥控器发送错误提示信息.ackCommand定义了确认指令,受控端每次接收到遥控器发来的消息都向遥控器反馈一个确认消息,遥控器根据ACK信息监测丢包并选择重传,提高遥控通信的可靠性.

2界面自动生成引擎

界面自动生成引擎作为遥控器程序的主要部分,实现了遥控器界面的自动生成.为了适应智能手持设备的多样性,本文基于J2ME开发了界面自动生成引擎.

界面自动生成引擎通过解析用户遥控描述文件,生成相应的用户遥控界面和相关遥控逻辑.界面自动生成引擎主要由三个部分构成:文件解析器、控件加载器、界面控制器.从图1中可以看出,文件解析器读取遥控描述文件,将用户界面的描述解析成有分组关系的若干界面数据模型,然后调用控件加载器依次创建界面控件,依照分组关系生成若干面板并实现面板内控件的布局;各面板交由界面控制器存储,建立管理逻辑以及遥控通信线程,最终形成用户遥控界面.本文实现的遥控界面生成引擎以面板的概念来表示各个用户遥控子界面,由界面控制器调度各面板的加载显示,完成遥控逻辑和各个遥控子界面之间的跳转.

图1界面自动生成引擎工作流程

2.1文件解析器

文件解析器不仅解析XML文件的结构,同时也需要解析遥控描述方法的规则.它首先解析出XML文件的元素,然后将这些元素植入语法解析器,分析出元素所对应的遥控描述规则,进而解析出界面数据模型.支持单层分组的文件解析器的解析流程如下:

本文使用第三方的CLDC环境下运作的开放源码XML分析器-kXML,对获取的XML格式的数据流进行解析.kXML是一个被设计用于J2ME设备的简化类库,仅占很小存储空间,非常适合于J2ME应用程序中对XML文件的解析工作.

2.2控件加载器

控件加载器用来实例化界面数据模型,生成界面视图并绑定控制逻辑.控件加载器包含一个控件库;对于界面元素,根据数据模型中该界面元素的描述实例化为一个控件;对于界面分组,实例化为界面面板,由分组内的界面元素所对应的控件组成;对于通信信息,实例化为控制逻辑,将用户界面的操作转化为指令传送给受控终端,并响应受控终端发回的的同步指令.视图和控制逻辑共同组成了用户界面.下图给出了控件加载过程.

图3控件加载过程

2.3界面控制器

界面控制器是与用户交互的部分,实现了用户操作、界面显示和控制逻辑之间的调度.用户点击触发的事件或者接收的网络数据信息,都封装成Event事件实体;控制器实体定义了eventHandler函数用于处理Event事件实体,根据这些事件实体的类型说明,进行不同的逻辑处理.

事件类有两个基本的成员变量:eventType和eventContent,eventType标识了该事件实体的不同类型,譬如点击会议室面板的加入会议按钮和退出会议按钮,就会被封装成为不同类型的事件实体.eventContent则是将事件实体格式化成文本.遥控描述文件中的每一个指令对应一个事件实体,其指令值就是eventType;通过描述文件中相应的信息格式的描述确定evContent的格式,如果没有信息格式的描述,则使用默认的格式,如:某界面元素属于单选框类型,其指令值为“100”,配置文件中没有信息格式的描述,则对该控件的点击动作封装成一个事件实体,evType为100,evType默认为数字,对应可选项的序号.

3结论

采用界面自动生成技术动态生成用户遥控界面降低了遥控器程序的开发和维护成本,遥控器本身不需要为不同的受控终端做特定的开发,就能够针对不同的受控终端动态生成专用的用户遥控界面,为用户操作带来便利.本文提出的遥控界面描述方法和界面生成引擎还比较简单,提高其描述能力和兼容性,使其适用于更多复杂的受控应用,还需要进一步的研究工作.