已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于XML的网管系统界面自动生成技术 作者: 日期:基于XML的网管系统界面自动生成技术崔贺超,陈旭东,杨芳南(北京交通大学 网络管理研究中心,北京 100044)摘要: 在网管系统中涉及大量配置管理的用户界面,为每一个配置管理界面编写专门的代码是一项繁杂、重复性的工作。为解决这一问题,提供一种基于XML的网管系统界面自动生成技术,介绍了界面自动生成的优点和原理,并通过实例,详细阐述了XML文档格式、组件事件监听类的事件处理方法和界面生成器的实现方案。该技术能够极大的提高网管界面的开发效率,并增强了软件的可理解性和可维护性。关键词: XML;网络管理;界面An Automatic Generation Technology of Network Management System Based On XMLCui Hechao, Chen Xudong, Yang Fangnan(Network Management Research Center, Beijing Jiaotong University, Beijing , 100044)Abstract: An alarm interface model for integrated alarm management system of communication network is offered. The definition of alarm and configuration information format, the implementation technology for the model, and the definition of web services are dissertated. The information between integrated alarm management system and each professional subordinate network management system is exchanged by XML.Key words: integrated network management; interface model; alarm; XML; Web Service1. 引言在网管系统的开发中,涉及大量配置管理操作。在通常情况下,需要是对每一项配置管理功能的界面专门编写代码来实现。这是一项繁琐的工作,会占用开发人员大量的时间和精力。本文提出一种基于XML的网管系统界面自动生成技术,使用XML文件作为界面描述文档,程序设计语言通过解析该XML文件生成所需要的界面。界面自动生成技术具有如下优点:1、 实现了表现层和功能层的分离,提高了程序的可维护性和可重用性。2、 通过修改界面描述XML文档可以在不重新编译源程序的情况下实现对用户界面的修改。3、 可以极大的减少界面开发中繁杂、重复性的工作,使开发人员更加专注于业务逻辑,提高效率。2. 界面自动生成的原理界面自动生成的原理如下图所示:界面描述文档(XML文件)界面组件事件监听类界面生成器自动生成的界面组建库图1. 界面自动生成技术框架图由上图可知,要生成一个界面,首先要提供界面描述文档和界面组件事件监听类。界面描述文档使用XML描述界面上所有组件及其属性,包括名称、大小、位置、布局以及与之相对应的事件监听类等,界面描述文档可以用XML编辑器来编写。界面组件事件监听类负责监听并处理对应界面描述文档中组件的事件,比如按钮点击事件等,由组件事件引发的一系列操作都由该类来实现。当某一组件的事件被触发时,它的事件监听类就会在运行时动态加载进来,执行里面定义的操作。界面生成器是整个界面自动生成技术的核心,它负责解析界面描述文档,识别文档里中定义的组件信息,根据组件信息和所使用的程序设计语言的组建库创建相应的组件,设置其属性,关联对应的事件监听类,并把组件添加到一个组件容器中,最后把自动生成的界面对象返回给调用者。3. 界面自动生成的实现下面以网元管理的部分代码为例,提供一个网管系统界面自动生成技术的Java实现方案。3.1 界面描述文档 修改网元的界面描述文档如下: 为简单起见,在“修改网元”界面上只提供了与网元名称、所属局站和网元类型三个属性相关的组件以及操作按钮。其中,网元名称是一个文本框,让用户输入网元名称,所属局站和网元类型都是组合框,供用户选择。操作按钮包括“确定”和“取消”。每个组件都有一个唯一标识该组件name属性,该属性在组件初始化、设定当前值和组件事件监听类中获取组件信息时需要用到。3.2 组件事件监听类 组件事件监听类中定义了组件的某一事件被触发时需要执行的操作,在界面描述文档中用“action”属性来指定。比如,在“修改网元”的界面描述文档中,“确定”按钮的事件监听类指定为“xmlgui.AddNeActionListener”。AddNeActionListener实现了ActionListener接口,在actionPerformed方法中定义了“确定”按钮被点击时需要执行的操作。在组件事件监听类中处理相关事件的时候往往需要获取有关组件的值。比如在处理“修改网元”的事件时,需要网元名称、所属局站和网元类型等信息,这些都在“修改网元”界面的有关组件中记录着,在AddNeActionListener类中需要获取并处理这些组件中的值。为了解决这一问题,可以把相关组件所在的容器引用传递给组件事件监听类,在actionPerform方法中遍历容器中所有的组件,在遍历过程中通过比较组件的name属性值来获取所需组件信息。3.3 界面生成器 本文提供的界面自动生成技术采用SAX解析器解析界面描述XML文档。SAX解析器是基于事件的,图2阐述了从SAX事件创建Java组件对象的过程。为了能够直接访问每个组件元素的属性,需要使用SAX的第二版。XMLSAX解析器组件组件XML组件元素用户界面组件图1. 使用一个SAX解析器向用户界面发送事件界面生成器用一个Java类GuiGenerator来实现,该类继承DefaultHandler类。DefaultHandler类来自SAX API,它实现了错误处理和文档处理的接口,提供了一种更简单的方式处理SAX事件。GuiGenerator类构造方法代码如下: public GuiGenerator(String xmlFile, HashMap initData, HashMap curData) super(); this.xmlFile = xmlFile; this.initData = initData; this.curData = curData; 参数xmlFile是待解析的界面描述XML文档的文件名;initData是组件的初始化数据,比如组合框的选项,用与初始化界面组件;curData是组件的当前值,比如修改网元对话框中原来的网元名称、所属局站和网元类型等,用于设定文本框的文本值和组合框的当前选项等。initData和curData均为HashMap类型,可以存放多组数据。GuiGenerator类中build方法负责初始化XML文档的解析,初始化过程又将引发一系列的事件发生,这些时间将引导界面组件的构造过程。在build方法中,首先将SAX解析器的内容处理接口设置为GuiGenerator类,由此指示解析器向这个类发送所有事件。然后,通过调用该解析器的parse()方法初始化XML文档的解析过程。在parse()方法中用指定名称的XML文件输入流创建一个InputSource对象,用它来读入界面描述XML文档。当文档的解析过程开始时,事件将被逐个激活。这里值得注意的事件就是遇到元素的开始。当遇到每一个元素时,就调用已经重写的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( JPanel.class); button.addActionListener(ActionListener) constructor. newInstance(primaryContainer); catch (Exception ex) ex.printStackTrace(); primaryContainer.add(button); 在上述示例中采用了一种简单的方法检索name参数的值来确定希望添加的组件的类型。如果该参数的值为“button”,那么就知道要创建的组件是一个JButton。使用new操作符,并将text属性的值传递给构造函数以便创建一个按钮。按钮创建以后,通过Java类的动态加载机制把按钮与其事件监听类相关联。最后将这个按钮添加到早先声明的JPanel上。 startElement方法依次处理网管系统中用到的各种组件,根据界面描述XML文档中的属性值设置组件属性,用initData初始化,用curData设置当前值,最后添加到JPanel上。上述这个过程会一直继续下去直到解析完整个文档,因为build()方法返回类型为JDialog,所以界面生成器将返回一个对话框,该对话框上添加了所有的组件。利用界面自动生成技术生成的“修改网元”对话框如图3所示。图3. 利用界面自动生成技术生成的“修改网元”对话框4. 结论基于XML的网管系统界面自动生成技术根据界
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽医学高等专科学校单招职业技能考试必刷测试卷带答案解析
- 2026年新疆昌吉回族自治州单招职业适应性测试题库及答案解析(名师系列)
- 2026年兰州科技职业学院单招职业倾向性测试必刷测试卷及答案解析(夺冠系列)
- 2026年山东华宇工学院单招职业技能测试必刷测试卷带答案解析
- 房屋拆建加固协议书
- 房屋按揭中介协议书
- 房屋改造合同或协议
- 房屋权利转让协议书
- 房屋清空协议书范本
- 房屋装修质保协议书
- 腹腔镜胃癌根治术护理教学查房
- DB23T 2334-2019 装配式混凝土渠道应用技术规范
- 《千里江山图》课件ppt
- 酒店公寓物业管理规约
- 通透(杨天真重磅新作)
- DB32-T 4281-2022 江苏省建筑工程施工现场专业人员配备标准
- 区块链技术及应用PPT完整全套教学课件
- 钢结构提升安全技术交底
- 《商法总论》课件:商法概论
- 14D504 接地装置安装
- 【2022】举报信(法官滥用职权,违规办案)
评论
0/150
提交评论