CN100489776C - 一种软件界面处理方法及装置 - Google Patents

一种软件界面处理方法及装置 Download PDF

Info

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
Application number
CNB2007100737963A
Other languages
English (en)
Other versions
CN101071373A (zh
Inventor
谢昕虬
陈颉
夏江波
梁芝成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2007100737963A priority Critical patent/CN100489776C/zh
Publication of CN101071373A publication Critical patent/CN101071373A/zh
Application granted granted Critical
Publication of CN100489776C publication Critical patent/CN100489776C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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数据结构的实例。
<UI namespace=“TestSkin”> 
Figure C200710073796D0005151304QIETU
setfenv(1,using_namespace(“TestSkin”))
<Window name=“TestWindow”>
Figure C200710073796D0005151319QIETU
function Window.TestWindow(WinArg)
<Popskinner name=“MainFrame”>
Figure C200710073796D0005151330QIETU
local MainFrame=nil
                                 MainFrame=_Skinner{
<Size x=“100”y=“100”/>   
Figure C200710073796D0005151351QIETU
Size=_Size{x=100,y=100},
<Frames>                       
Figure C200710073796D0005151411QIETU
Frames={
<Texture name=“Header”/>    
Figure C200710073796D0005151424QIETU
Header=_Texture{},
<FontString file=“@Test”/>_FontString{file=“Test”},
</Frames>                      
Figure C200710073796D0005151441QIETU
      },
<Scripts>
<PreInit>                      
Figure C200710073796D0005151449QIETU
PreInit=function(self,arg)
self.Offset={x=5,y=10}     self.Offset={x=5,y=10}
</PreInit>                     
Figure C200710073796D0005151541QIETU
end
</Scripts>
</Popskinner>                       }
</Window>                    
Figure C200710073796D0005151555QIETU
returnMainFrame
                               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数据结构的窗口句柄字段里。
CNB2007100737963A 2007-03-30 2007-03-30 一种软件界面处理方法及装置 Active CN100489776C (zh)

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)

* Cited by examiner, † Cited by third party
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 深圳市茁壮网络股份有限公司 一种实现数字电视视频动画的方法及系统

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