CN101246424A - 一种基于文件的菜单自动生成系统和方法 - Google Patents
一种基于文件的菜单自动生成系统和方法 Download PDFInfo
- Publication number
- CN101246424A CN101246424A CNA2008100654081A CN200810065408A CN101246424A CN 101246424 A CN101246424 A CN 101246424A CN A2008100654081 A CNA2008100654081 A CN A2008100654081A CN 200810065408 A CN200810065408 A CN 200810065408A CN 101246424 A CN101246424 A CN 101246424A
- Authority
- CN
- China
- Prior art keywords
- menu
- information
- interface
- file
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于文件的菜单自动生成系统和方法,通过界面生成引擎来解析配置文件并自动产生用户的界面菜单,同时通过配置实现类单元,由反射机制自动加载和调用,这样生成的程序菜单和界面就有很好的可维护性和可扩展性,同时提供界面菜单的事件处理功能,使得这种机制构建出来的界面能够满足复杂的用户需求。这种模型设计的实现了用户界面和用户逻辑业务功能实现的部分分离,减少开发人员的工作量,减少多个开发人员一起工作而引起的文件修改冲突。
Description
技术领域
本发明涉及一种在系统框架下,界面菜单和功能通过外部文件配置和自动生成的技术,主要应用在电信数据通信网管系统中的菜单设计、功能树设计、消息显示窗口设计等。
背景技术
目前在通信系统中,构建一个可管理、可运营、可分析的网络很重要,其中网管系统是管理员对整个网络管理的一个非常重要的工具,通过网管系统可以方便的对系统进行配置、性能、安全等管理。网管系统随着网络的建设其地位越来越重要。网络的快速发展,就要求网管系统能适应网络的快速变化,要能迅速满足用户的要求。其中对网管的设计、开发就提出很高的要求。首先,网管要满足用户不断变化的要求。其次网管要能不断地平滑升级更新。要满足这些条件,其最基本的一点就是要满足:如何设计不断满足用户要求的功能菜单,以及这些功能如何能够方便地进行动态加载和更新。
如图1所示传统的界面菜单功能开发实现流程和原理示意图。通常都是首先采集用户的需求,然后修改程序,在程序中设计相关的菜单,然后根据菜单实现功能。要求开发人员必须接触到整个系统的代码,才能在这个基础上修改。这样的修改方式,就会造成几个不好的后果:一方面是更新速度比较慢,开发工作量比较大,效率低,另一方面,系统修改很麻烦,改动一点都要重新编译,修改,测试,发布,系统更新很复杂。所以,目前的这种设计开发模式存在着浪费大量的人力、物力,而且代码和功能不好维护和扩展。
发明内容
本发明提出了一种基于文件的菜单自动生成系统和方法,将菜单和该菜单要实现的功能通过配置文件进行配置和存储,通过对配置文件的解析自动生成界面菜单,解决了现有技术中菜单和相应功能开发缺乏灵活性、扩展性、效率低下等技术问题。
本发明提出的基于文件的菜单自动生成系统,包括:
界面生成引擎,用于对配置文件进行解析,从中获取界面配置信息;生成菜单和界面信息,对菜单和界面组件进行监听;
至少一个实现类单元,用于在菜单操作中被加载和调用,以实现相应的逻辑功能。
优选的,所述的实现类单元在菜单操作中通过反射机制被加载和调用。
优选的,所述界面生成引擎从配置文件中获取的界面配置信息包括至少一种以下信息:菜单信息、工具条信息、功能菜单树信息和信息显示窗口信息。
优选的,所述的配置文件为xml格式的配置文件,所述实现类单元通过Java语言类反射机制被加载和调用。
本发明提出的基于文件的菜单自动生成方法,包括如下步骤:
1)界面生成引擎对配置文件进行解析,生成菜单和界面信息;
2)接收界面菜单的操作信息,并加载和调用对应的实现类单元,运行该实现类单元以实现相应的逻辑功能。
优选的,所述步骤1)具体包括以下处理过程:
11)对配置文件中的元素信息进行解析,并按照配置的顺序进行菜单的编排;
12)根据解析出的配置信息,生成菜单和界面信息;
13)对菜单和界面组件进行监听。
优选的,所述步骤12)中解析出的配置信息包括至少一种以下信息:菜单信息、工具条信息、功能菜单树信息和信息显示窗口信息。
优选的,所述步骤2)中具体为:通过反射机制加载和调用对应的实现类单元。
优选的,所述被解析的配置文件为xml格式的配置文件,所述实现类单元通过Java语言类反射机制被加载和调用。
本发明通过界面生成引擎来解析配置文件并自动产生用户的界面菜单,同时通过配置实现类单元,由反射机制自动加载和调用,这样生成的程序菜单和界面就有很好的可维护性和可扩展性,同时提供界面菜单的事件处理功能,使得这种机制构建出来的界面能够满足复杂的用户需求。这种模型设计的实现了用户界面和用户逻辑业务功能实现的部分分离,减少开发人员的工作量,减少多个开发人员一起工作而引起的文件修改冲突。
附图说明
图1是现有技术界面菜单功能开发原理图;
图2是本发明菜单自动生成系统实现原理图;
图3是本发明菜单自动生成方法优选实施例实现流程图。
具体实施方式
本发明提出的菜单自动生成系统和方法,较好的实现了目前开发中的灵活性和扩张性,下面将结合附图和实施用例具体说明。
图2是本发明系统实现原理图。本发明基于文件的菜单自动生成系统,主要包括:存储配置信息的配置文件,实现菜单逻辑功能的实现类单元,以及生成界面菜单的界面生成引擎。其中界面生成引擎处于整个菜单自动生成系统的核心地位,一方面要解析用户配置文件和映射相关的类,另一方面要生成用户需求的菜单以及监听菜单事件,然后调用配置的实现类。配置文件所包含的配置信息主要包括:菜单信息、工具条信息、功能菜单树信息和信息显示窗口信息。其中菜单信息包括:菜单名称、菜单级别,菜单对应的实现类等;工具条信息包括:工具条名称、图标等;功能菜单树信息包括:树结点类型、树结点名称、树结点实现的类等信息。系统设计人员可以修改或添加菜单、工具条、功能树菜单等功能项,然后指定实现类。具体的实现类单元可以分配给不同的人来开发,通过运行实现类单元实现菜单的逻辑功能。这样的开发分配方式实现了系统模块的弱耦合关系。
以下通过一个基于xml格式配置文件,在网管系统中设置菜单和对应功能项目的实施例来说明本发明的具体实现过程。如图3所示的实现流程图,包括以下处理过程:
1、一组系统设计人员首先要分析用户需求,要添加哪些功能项目。
另一组开发人员编写用于实现菜单逻辑功能的实现类单元。
2、按照指定的格式编写系统菜单对应的XML文件。
2a、在xml配置文件中,首先确定一个父菜单,或者新建一个父菜单,然后建立一个子菜单。
2b、填写菜单名称(也可以认为是内部ID)、菜单显示的名称(界面菜单显示的名字)、菜单对应的图标、菜单的快捷键、菜单对应实现的组件类型、界面生成引擎的构造器、实现的类名(也可以配置是外部的程序或者命令)。
3、启动界面菜单自动生成系统。
4、系统启动时,界面生成引擎会读取并解析xml格式的配置文件,根据xml文件中的生成菜单元素,将配置信息布局到系统界面中。
5、界面引擎加载菜单等组件的事件监听,这些事件监听的类名就是在xml文件中描述的对应的实现类名。
6、当接收到该菜单对应的实现类的触发信息;
7、界面生成引擎通过Java语言反射机制,调用该事件对应的实现类,实现预定义的逻辑实现功能。
Java语言反射机制提供了一种动态链接程序组件的方法。它允许程序创建和控制任何类的对象(根据安全性限制),无需提前硬编码目标类。这些特性使得反射特别适用于创建以非常普通的方式与对象协作的库。例如,反射经常在持续存储对象在数据库、xml或其它外部格式的框架中使用。Java反射非常有用,它使类和数据结构能按名称动态检索相关信息,并允许在运行着的程序中操作这些信息。Java的这一特性非常强大,并且是其它一些常用语言,如C、C++、Fortran或者Pascal等都不具备的。使用反射会模糊程序内部实际要发生的事情,反射机制绕过了源代码的技术带来的维护问题。
综上所述,本发明提出的自动生成界面菜单的方式,通过配置文件配置系统功能菜单,并配置菜单事件监听对应的实现类的方法,可以使界面生成实现了根据用户需求快速变化,界面规范也容易配置,便于维护和更新。通过这种方法,可以有效地实现界面设计和逻辑业务分离,可以有效地降低程序中代码的耦合度。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种基于文件的菜单自动生成系统,其特征在于,包括:
界面生成引擎,用于对配置文件进行解析,从中获取界面配置信息;生成菜单和界面信息,对菜单和界面组件进行监听;
至少一个实现类单元,用于在菜单操作中被加载和调用,以实现相应的逻辑功能。
2.根据权利要求1所述的基于文件的菜单自动生成系统,其特征在于,所述的实现类单元在菜单操作中通过反射机制被加载和调用。
3.根据权利要求1或2所述的基于文件的菜单自动生成系统,其特征在于,所述界面生成引擎从配置文件中获取的界面配置信息包括至少一种以下信息:菜单信息、工具条信息、功能菜单树信息和信息显示窗口信息。
4.根据权利要求2所述的基于文件的菜单自动生成系统,其特征在于,所述的配置文件为xml格式的配置文件,所述实现类单元通过Java语言类反射机制被加载和调用。
5.一种基于文件的菜单自动生成方法,其特征在于,包括如下步骤:
1)界面生成引擎对配置文件进行解析,生成菜单和界面信息;
2)接收界面菜单的操作信息,并加载和调用对应的实现类单元,运行该实现类单元以实现相应的逻辑功能。
6.根据权利要求5所述的基于文件的菜单自动生成方法,其特征在于,所述步骤1)具体包括以下处理过程:
11)对配置文件中的元素信息进行解析,并按照配置的顺序进行菜单的编排;
12)根据解析出的配置信息,生成菜单和界面信息;
13)对菜单和界面组件进行监听。
7.根据权利要求6所述的基于文件的菜单自动生成方法,其特征在于,所述步骤12)中解析出的配置信息包括至少一种以下信息:菜单信息、工具条信息、功能菜单树信息和信息显示窗口信息。
8.根据权利要求5所述的于文件的菜单自动生成方法,其特征在于,所述步骤2)中具体为:通过反射机制加载和调用对应的实现类单元。
9.根据权利要求8所述的于文件的菜单自动生成方法,其特征在于,所述被解析的配置文件为xml格式的配置文件,所述实现类单元通过Java语言类反射机制被加载和调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100654081A CN101246424A (zh) | 2008-02-22 | 2008-02-22 | 一种基于文件的菜单自动生成系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100654081A CN101246424A (zh) | 2008-02-22 | 2008-02-22 | 一种基于文件的菜单自动生成系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101246424A true CN101246424A (zh) | 2008-08-20 |
Family
ID=39946894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100654081A Pending CN101246424A (zh) | 2008-02-22 | 2008-02-22 | 一种基于文件的菜单自动生成系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101246424A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010043172A1 (zh) * | 2008-10-17 | 2010-04-22 | 华为技术有限公司 | 一种业务编排的方法及装置 |
CN101833467A (zh) * | 2010-05-14 | 2010-09-15 | 华为终端有限公司 | 一种在Android的菜单中添加菜单项的方法及设备 |
CN101872282A (zh) * | 2010-05-25 | 2010-10-27 | 中兴通讯股份有限公司 | 用户界面生成方法、装置及移动终端 |
CN102033742A (zh) * | 2009-09-29 | 2011-04-27 | 鸿富锦精密工业(深圳)有限公司 | 具有用户界面自动生成功能的电子装置及方法 |
CN101408843B (zh) * | 2008-11-18 | 2012-05-09 | 广东威创视讯科技股份有限公司 | 一种生成程序菜单的方法及其装置 |
CN103116499A (zh) * | 2013-03-11 | 2013-05-22 | 南京因泰莱电器股份有限公司 | 一种菜单组态的方法 |
CN103902256A (zh) * | 2012-12-24 | 2014-07-02 | 航天信息股份有限公司 | 一种界面的生成系统和方法 |
CN104090749A (zh) * | 2014-05-30 | 2014-10-08 | 爱培科科技开发(深圳)有限公司 | 一种WinCE产品界面主题更新变换处理方法及系统 |
CN104503769A (zh) * | 2015-01-07 | 2015-04-08 | 山东鲁能智能技术有限公司 | 一种基于xml配置文件的字符点阵液晶界面实现方法 |
CN105116734A (zh) * | 2015-06-26 | 2015-12-02 | 青岛海信移动通信技术股份有限公司 | 一种智能家电的控制方法及装置、控制终端 |
CN106406844A (zh) * | 2015-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN106557316A (zh) * | 2016-10-28 | 2017-04-05 | 南京国电南自电网自动化有限公司 | 基于61850的就地化继电保护装置菜单建模方法 |
CN105224353B (zh) * | 2014-06-26 | 2018-11-06 | 北京北方华创微电子装备有限公司 | 动态加载界面导航的方法及系统 |
CN114546113A (zh) * | 2022-02-15 | 2022-05-27 | 深圳Tcl新技术有限公司 | 菜单的运行方法、装置、存储介质及电子设备 |
CN114845173A (zh) * | 2022-05-30 | 2022-08-02 | 杭州国芯科技股份有限公司 | 一种机顶盒主菜单生成方法 |
-
2008
- 2008-02-22 CN CNA2008100654081A patent/CN101246424A/zh active Pending
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010043172A1 (zh) * | 2008-10-17 | 2010-04-22 | 华为技术有限公司 | 一种业务编排的方法及装置 |
CN101408843B (zh) * | 2008-11-18 | 2012-05-09 | 广东威创视讯科技股份有限公司 | 一种生成程序菜单的方法及其装置 |
CN102033742A (zh) * | 2009-09-29 | 2011-04-27 | 鸿富锦精密工业(深圳)有限公司 | 具有用户界面自动生成功能的电子装置及方法 |
US9319508B2 (en) | 2010-05-14 | 2016-04-19 | Huawei Device Co., Ltd. | Method and device for adding menu item to android menu |
CN101833467A (zh) * | 2010-05-14 | 2010-09-15 | 华为终端有限公司 | 一种在Android的菜单中添加菜单项的方法及设备 |
CN101833467B (zh) * | 2010-05-14 | 2013-12-04 | 华为终端有限公司 | 一种在Android的菜单中添加菜单项的方法及设备 |
US9703454B2 (en) | 2010-05-14 | 2017-07-11 | Huawei Device Co., Ltd. | Method and device for adding menu item to ANDROID menu |
CN101872282A (zh) * | 2010-05-25 | 2010-10-27 | 中兴通讯股份有限公司 | 用户界面生成方法、装置及移动终端 |
CN103902256A (zh) * | 2012-12-24 | 2014-07-02 | 航天信息股份有限公司 | 一种界面的生成系统和方法 |
CN103902256B (zh) * | 2012-12-24 | 2017-05-10 | 航天信息股份有限公司 | 一种界面的生成系统和方法 |
CN103116499A (zh) * | 2013-03-11 | 2013-05-22 | 南京因泰莱电器股份有限公司 | 一种菜单组态的方法 |
CN104090749B (zh) * | 2014-05-30 | 2015-09-16 | 爱培科科技开发(深圳)有限公司 | 一种WinCE产品界面主题更新变换处理方法及系统 |
CN104090749A (zh) * | 2014-05-30 | 2014-10-08 | 爱培科科技开发(深圳)有限公司 | 一种WinCE产品界面主题更新变换处理方法及系统 |
CN105224353B (zh) * | 2014-06-26 | 2018-11-06 | 北京北方华创微电子装备有限公司 | 动态加载界面导航的方法及系统 |
CN104503769A (zh) * | 2015-01-07 | 2015-04-08 | 山东鲁能智能技术有限公司 | 一种基于xml配置文件的字符点阵液晶界面实现方法 |
CN104503769B (zh) * | 2015-01-07 | 2017-06-20 | 山东鲁能智能技术有限公司 | 一种基于xml配置文件的字符点阵液晶界面实现方法 |
CN105116734A (zh) * | 2015-06-26 | 2015-12-02 | 青岛海信移动通信技术股份有限公司 | 一种智能家电的控制方法及装置、控制终端 |
CN106406844A (zh) * | 2015-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN106406844B (zh) * | 2015-08-03 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 实现通讯交互平台公众号菜单的方法和装置 |
CN106557316A (zh) * | 2016-10-28 | 2017-04-05 | 南京国电南自电网自动化有限公司 | 基于61850的就地化继电保护装置菜单建模方法 |
CN106557316B (zh) * | 2016-10-28 | 2019-11-12 | 南京国电南自电网自动化有限公司 | 基于61850的就地化继电保护装置菜单建模方法 |
CN114546113A (zh) * | 2022-02-15 | 2022-05-27 | 深圳Tcl新技术有限公司 | 菜单的运行方法、装置、存储介质及电子设备 |
CN114845173A (zh) * | 2022-05-30 | 2022-08-02 | 杭州国芯科技股份有限公司 | 一种机顶盒主菜单生成方法 |
CN114845173B (zh) * | 2022-05-30 | 2023-08-22 | 杭州国芯科技股份有限公司 | 一种机顶盒主菜单生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101246424A (zh) | 一种基于文件的菜单自动生成系统和方法 | |
CN102810057B (zh) | 一种记录日志的方法 | |
CN102375731B (zh) | 一种免编码集成应用软件平台系统 | |
CN100435094C (zh) | 为组件应用程序建立混合模式执行环境的系统和方法 | |
US8191081B2 (en) | Condition-based event filtering | |
Hoheisel | User tools and languages for graph‐based Grid workflows | |
CA2604896C (en) | System and method of data source detection | |
CN100492290C (zh) | 软件动态演化中构件运行时状态的获取和转换方法 | |
Röttger et al. | Cqml+: Enhancements to cqml | |
KR100959173B1 (ko) | 컴포넌트 아키텍처 | |
US20040003119A1 (en) | Editing files of remote systems using an integrated development environment | |
CN103593192B (zh) | 一种基于slurm调度的算法集成与评测系统及方法 | |
US8966442B2 (en) | Custom code innovation management | |
CN101256492A (zh) | 一种进行模型驱动架构的软件开发方法及其系统 | |
CN110362363B (zh) | 一种基于运行时模型实现对终端应用控制的方法 | |
TW521210B (en) | Modular computer system and related method | |
CN103268226A (zh) | 一种测试脚本文件生成方法及装置 | |
CN102946415A (zh) | 一种移动终端本地应用的实现方法和装置 | |
CA2498724A1 (en) | System and method for interactive wireless applications with conditional ui controls and screen navigation | |
CN107018160B (zh) | 一种基于层次化的制造资源和云化方法 | |
CA2498541A1 (en) | System and method for presentation of wireless application data using repetitive ui layouts | |
Daniel et al. | Combining conceptual modeling and active rules for the design of adaptive web applications | |
CN101661387A (zh) | 用于管理系统的菜单动态加载方法 | |
US20240118877A1 (en) | System and method for decomposing monolith applications into software services | |
Qiu et al. | Research on Real-Time Software Development Approach. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080820 |