CN100489776C - 一种软件界面处理方法及装置 - Google Patents
一种软件界面处理方法及装置 Download PDFInfo
- Publication number
- CN100489776C CN100489776C CNB2007100737963A CN200710073796A CN100489776C CN 100489776 C CN100489776 C CN 100489776C CN B2007100737963 A CNB2007100737963 A CN B2007100737963A CN 200710073796 A CN200710073796 A CN 200710073796A CN 100489776 C CN100489776 C CN 100489776C
- Authority
- CN
- China
- Prior art keywords
- interface
- data structure
- lua
- software
- interface object
- 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.)
- Active
Links
Images
Abstract
本发明适应于计算机技术领域,提供了一种软件界面处理方法及装置,读取界面数据,将用户输入的XML数据结构转为LUA数据结构,调用所述LUA数据结构中界面元素类的构造器,生成界面对象,将所述界面对象的窗口句柄保存在所述LUA数据结构的窗口句柄字段里。本发明通过构造界面的数据结构并生成界面对象,将构造的数据结构与生成的界面对象绑定,实现界面与数据逻辑的彻底分离,提高了软件的可移植性,使用户非常方便的实现个性化的软件界面。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种软件界面处理的方法及装置。
背景技术
网络即时通讯工具发展到今天,已经成为用户必不可少的软件工具,不但在平时的休闲娱乐中,而且在用户的工作中得到广泛的使用。网络即时通讯软件的特点是提供了灵活多变的个性化界面,甚至用户可以亲自设计软件的界面。
现有技术中,提供了换肤功能的软件,基本上都是通过用一个扩展性标识语言XML(Extensible Markup Language,XML)文档对软件的界面数据进行配置,该XML文档相当于界面信息数据表,每一项表示一个界面元素的信息,应用软件读取该信息,初始化界面元素,然后显示界面。换肤的原理是:同一个应用软件有多份皮肤配置文件,切换皮肤时,就选取其中一个配置文件的数据作为使用的数据。
现有的换肤软件的界面组织与软件的具体逻辑处理混在一起,应用软件要知道界面组织文件中描述的各个控件,否则,该界面组织文件中描述的这个控件是无效的。而软件的数据逻辑与界面逻辑高度偶合会不利于软件模块的移植。并且,界面元素的数据结构变更,需要重新编译相应的应用软件,这样不仅加大了成本,也加大了因界面的变更而引起的软件稳定性的风险。
发明内容
本发明实施例的目的在于提供一种软件界面处理的方法,旨在解决现有技术中软件的数据逻辑与界面逻辑高度偶合,不利于软件模块移植的问题。
本发明一种软件界面处理的方法,所述方法包括以下步骤:读取界面数据,将用户输入的XML数据结构转为LUA数据结构;调用所述LUA数据结构中界面元素类的构造器,生成界面对象;将所述界面对象的窗口句柄保存在所述LUA数据结构的窗口句柄字段里。
本发明还公开一种软件界面处理的装置,所述装置包括:界面数据结构构造模块,用于读取界面数据,将用户输入的XML数据结构转为LUA数据结构;界面对象生成模块,用于调用所述LUA数据结构中界面元素类的构造器,生成界面对象;以及界面对象绑定模块,用于将所述界面对象的窗口句柄保存在所述LUA数据结构的窗口句柄字段里。
本发明通过构造界面的数据结构并生成界面对象,将构造的界面数据结构与生成的界面对象绑定,实现了界面与数据逻辑的彻底分离,提高了软件的可移植性,使用户方便的实现个性化的软件界面。
附图说明
图1是本发明实施例提供的软件界面处理方法的流程图;
图2是本发明实施例提供的软件界面处理装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明通过构造界面的数据结构并生成界面对象,将构造的界面数据结构与生成的界面对象绑定。
图1示出了本发明实施例提供的软件界面处理方法的流程,详述如下。
在步骤S101中,读取界面数据,构造界面的数据结构。
作为本发明的实施例,该处构造的界面数据结构为LUA数据结构。
本发明在构造界面的数据结构的过程中,会将界面开发人员编写的XML数据结构转换为LUA数据结构。由于XML数据结构的层次关系是非常清晰的,所以从XML数据结构转为LUA数据结构是很容易实现的,下面是一个从XML数据结构转为LUA数据结构的实例。
MainFrame=_Skinner{
<FontString file=“@Test”/>_FontString{file=“Test”},
<Scripts>
self.Offset={x=5,y=10} self.Offset={x=5,y=10}
</Scripts>
</Popskinner> }
End
</UI>
在步骤S102中,生成界面对象。
在具体实施过程中,利用LUA数据结构实现各种基础的界面元素类的构造器。从XML数据结构转化来的LUA数据结构,包含了界面元素的信息,把该信息放到界面元素类的构造器后,通过调用LUA数据结构的界面元素类的构造器生成界面对象。在具体实施过程中,调用LUA数据结构的界面元素类的构造器包括调用界面的属性、大小以及位置等信息。
在步骤S103中,将构造的界面数据结构与生成的界面对象绑定。
其中,该步骤是这样实现的,构造的LUA数据结构中有一个字段是用于保存窗口句柄的,在利用LUA数据结构生成界面对象时,会自动把该窗口句柄保存在LUA数据结构的窗口句柄字段里。由于该窗口句柄是用来控制界面窗口的,所以保存了窗口句柄以后,便可以通过在LUA数据结构里面编译程序控制界面窗口。
因为LUA数据结构是与界面对象绑定的,可以在LUA数据结构中编写处理函数,控制自身或其它的界面对象。
以生成的C++界面对象为例,LUA数据结构中有一个字段是用于保存C++界面对象的窗口句柄,在利用该LUA数据结构创建该C++界面对象时,会自动把C++界面对象的窗口句柄保存在该LUA数据结构的窗口句柄字段里。并且,由于该C++界面对象的窗口句柄是用来控制C++界面对象的窗口的,所以保存了该C++界面对象的窗口句柄以后,便可以通过在LUA数据结构里面编译程序控制该C++界面对象窗口。
由于LUA是界面系统的中间层,可以在最外层的XML数据结构中编辑XML函数,然后利用XML数据结构转LUA数据结构的功能转化为LUA函数,进而转为界面对象的处理函数,从而实现XML数据结构与LUA数据结构结合的界面组织。XML只要描述界面布排及属性,LUA编写处理函数,这样的结合,加强了脚本的处理能力,可以在脚本完全控制界面。
下面以一个例子说明如何在脚本控制界面:
<UI>
<PopupFrame name=“Mai nFrame”>
<Size x=“100”y=“100”/>
<S cripts>
<OnPreInit>
self.Offset={x=20,y=20};
</OnPreInit>
</Scripts>
</PopupFrame>
</UI>
上面的例子用XML数据结构描述了一个名称为MainFrame的弹出窗口,其中,有一个LUA数据结构编写的处理函数OnPreInit,在OnPreInit中调整了MainFrame的位置。
在具体实施过程中,应用软件根据业务需要实现很多的业务数据包的类,数据包提供数据读写接口,界面关联某一个数据包就可以对某一业务的数据进行操作了,由于该处的数据包并不关心界面的存在,也不清楚界面的细节,这样就实现了界面与业务数据逻辑的分离。当界面需要改变时,可以不改变业务数据处理逻辑,只需要改变系统的界面组织文件,甚至只改变XML数据结构及LUA数据结构的界面组织文件。基于这点,只要保证数据接口不变,就可以非常方便地实现个性化的软件界面。
图2示出了本发明实施例提供的软件界面处理装置的结构。
界面数据结构构造模块11读取界面数据,构造界面的数据结构,其中,构造界面的数据结构是通过将用户输入的XML数据结构转为LUA数据结构来完成的,具体转换过程在前文已述,此处不再赘述。
界面对象生成模块12通过调用界面元素类的构造器14中的诸如界面的属性、大小以及位置等信息来生成界面对象。
界面对象绑定模块13将界面数据结构构造模块11构造的界面数据结构与界面对象生成模块12生成的界面对象绑定,其中,在进行绑定时,将生成的界面对象的窗口句柄保存在LUA数据结构的窗口句柄字段里面。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1、一种软件界面处理的方法,其特征在于,所述方法包括以下步骤:
读取界面数据,将用户输入的XML数据结构转为LUA数据结构;
调用所述LUA数据结构中界面元素类的构造器,生成界面对象;
将所述界面对象的窗口句柄保存在所述LUA数据结构的窗口句柄字段里。
2、一种软件界面处理的装置,其特征在于,所述装置包括:
界面数据结构构造模块,用于读取界面数据,将用户输入的XML数据结构转为LUA数据结构;
界面对象生成模块,用于调用所述LUA数据结构中界面元素类的构造器,生成界面对象;以及
界面对象绑定模块,用于将所述界面对象的窗口句柄保存在所述LUA数据结构的窗口句柄字段里。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100737963A CN100489776C (zh) | 2007-03-30 | 2007-03-30 | 一种软件界面处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100737963A CN100489776C (zh) | 2007-03-30 | 2007-03-30 | 一种软件界面处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101071373A CN101071373A (zh) | 2007-11-14 |
CN100489776C true CN100489776C (zh) | 2009-05-20 |
Family
ID=38898610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100737963A Active CN100489776C (zh) | 2007-03-30 | 2007-03-30 | 一种软件界面处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100489776C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101695032B (zh) * | 2009-11-02 | 2011-08-10 | 中国电信股份有限公司 | 统一客户端、统一客户端的业务配置方法及系统 |
CN101872305B (zh) * | 2010-06-08 | 2013-01-09 | 用友软件股份有限公司 | Ui表现和业务逻辑分离方法和系统 |
CN102207879B (zh) * | 2011-06-14 | 2013-05-01 | 贵阳朗玛信息技术股份有限公司 | Lua脚本热更新方法及系统 |
CN102629199A (zh) * | 2012-03-02 | 2012-08-08 | 浪潮集团山东通用软件有限公司 | 一种自动绑定界面对象和数据对象的方法 |
CN108933969B (zh) * | 2018-07-25 | 2021-02-09 | 深圳市茁壮网络股份有限公司 | 一种实现数字电视视频动画的方法及系统 |
-
2007
- 2007-03-30 CN CNB2007100737963A patent/CN100489776C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101071373A (zh) | 2007-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103927163B (zh) | 插件框架处理装置及插件系统 | |
CN104484216B (zh) | 服务接口文档和在线测试工具生成方法、装置 | |
CN100489776C (zh) | 一种软件界面处理方法及装置 | |
CN104636139A (zh) | 一种可视化跨平台移动应用开发与生成系统 | |
CN103593370B (zh) | 在浏览器中实现扩展应用的方法及浏览器 | |
KR101380898B1 (ko) | 멀티플랫폼 환경의 실시간 웹 화이트보드 제공방법 및 이를 위한 컴퓨터로 판독가능한 기록매체 | |
CN103176804A (zh) | 一种用户界面实现方法 | |
US7617219B2 (en) | Enhanced handling of repeated information in a web form | |
CN106469047A (zh) | 一种表单实现方法及装置 | |
CN105468573B (zh) | 可配置式图表应用系统 | |
DE112008003965T5 (de) | Kombinieren von Schnittstellen von Shell-Anwendungen und Unteranwendungen | |
CN101135966A (zh) | 一种基于命令行的图形界面开发方法及系统 | |
CN102859489A (zh) | 可恢复的方法 | |
CN104156200B (zh) | 用于卡内容管理操作的声明式配置和执行的方法和系统 | |
CN107341005A (zh) | 图表生成方法及其装置 | |
CN104123155A (zh) | 一种基于web的业务系统页面层开发平台及方法 | |
CN110379257A (zh) | 一种多语言跨平台的在线代码对战系统和方法 | |
CN104166546B (zh) | 一种基于mda的面向dds应用软件的实现方法及系统 | |
CN101326513A (zh) | 辅助图形管道 | |
CN103914286B (zh) | 用户界面中标签页的管理方法和管理器 | |
CN101136780A (zh) | 获取用户命令信息的方法、系统及用户命令注册的装置 | |
Serrano et al. | Multimodal interaction on mobile phones: development and evaluation using ACICARE | |
CN100373375C (zh) | 用数据控制用户界面属性的系统和方法 | |
CN105094768A (zh) | 应用界面生成方法和应用界面生成装置 | |
CN109933742A (zh) | 一种流程中页面内容的重编辑方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |