一种加载界面元素的系统及方法技术方案

技术编号:11210423 阅读:90 留言:0更新日期:2015-03-26 19:52
本发明专利技术公开了一种加载界面元素的系统及方法,本发明专利技术将主系统的实现和插件的实现完全分离,将界面元素的界面逻辑和功能逻辑分开,使得主系统提供界面元素的界面风格,插件提供界面元素内容及功能逻辑,实现了插件适应不同的主系统,扩展提高了插件的可扩展性。

【技术实现步骤摘要】

本专利技术涉及软件架构实现技术,尤指。
技术介绍
在软件架构设计中,插件是具有统一接口的一组组件,插件可以动态的被主系统加载并实现独立的功能。由于插件的高扩展性,使其在现在软件架构设计中应用越来越广泛,相应的越来越多的界面元素也被设计在插件中实现,其中最常用的界面元素就是工具条。 以加载工具条为例,目前的实现方法主要有两种,第一种是在插件中生成工具条即创建工具条窗体句柄,然后通过该句柄添加工具条按钮,再传递给主系统显示;另一种是在主系统中创建工具条窗体句柄,然后将创建好的句柄发送给插件,由插件通过该句柄添加工具条按钮。 由于工具条的实现方式很多,比如API级别的Handle,或者MFC级别的工具条实现类的指针CToolBar*,或者BCG类似的界面类库中的某种特效工具条等等。为了保证主系统能够识别插件创建出的工具条,主系统与插件之间约定一种实现方式,但是这样却限制了工具条实现效果的扩展,而扩展是插件系统最重要的一个指标。 从现有实现方法可见,主系统和插件必须了解对方的实现细节,当一方变化都会引起另一方无法正确运行,最终,结构的高耦合性使得插件的扩展性无法充分实现。此外,由于主系统与插件之间有了特殊约定,就意味着模块耦合性增大,创建的工具条很可能成为一种封装不完善的设计。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种加载界面元素的系统,能够提高插件的可扩展性。 本专利技术的另一目的在于提供一种加载界面元素的方法,能够提高插件的可扩展性。 为达到上述目的,本专利技术的技术方案具体是这样实现的: 一种创建界面元素的系统,该系统包括:主系统和插件,其中, 主系统用于实现界面元素的实际创建,并提供界面元素的显示样式; 插件用于实现界面元素具体的功能实现; 主系统需要界面元素时,从插件获取界面元素信息,并根据获得的界面元素信息,通知插件创建界面元素;插件在创建过程中调用主系统完成实际的界面元素创建。 所述主系统包括:界面窗体模块和控件创建模块,其中, 界面窗体模块,用于向所述插件发送查询请求;接收来自所述插件的查询响应,根据获得的查询结果获取需要创建的界面元素;向所述插件发送创建请求; 控件创建模块,用于接收来自插件的创建通知,完成界面元素的实际创建,并为每一个创建的界面元素项分配用于标识不同界面元素的命令标识ID。 所述控件创建模块为一组COM组件接口。 所述插件包括:控件查询模块和界面元素创建模块,其中, 控件查询模块,接收来自所述主系统的查询请求,获取插件包含的界面元素的信息,并将该信息携带在查询响应中通知给所述主系统; 界面元素创建模块,接收来自所述主系统的创建请求,通知所述主系统的控件创建模块创建界面元素。 所述界面窗体模块还用于,向所述插件中的界面元素功能处理模块广播需要显示的界面窗体对应的命令ID ;显示所述插件返回的界面元素; 所述插件还包括:界面元素功能处理模块,根据接收到的命令ID,完成该命令ID对应的界面元素的功能和状态变化,并返回界面窗体模块。 所述插件为一个或一个以上;所述界面元素为工具条。 所述控件创建模块为一个或一个以上。 一种创建界面元素的方法,该方法包括以下步骤: A.主系统需要界面元素时,从插件获取界面元素信息,并根据获得的界面元素信息,通知插件创建界面元素; B.插件调用主系统的控件创建模块创建界面元素。 该方法还包括:所述主系统的控件创建模块为每一个创建的界面元素项分配用于标识不同界面元素的命令标识ID。 该方法还包括:所述主系统通过广播的方式向插件发送需要显示的界面窗体对应的ID,所述插件按照接收到的命令ID调用界面元素处理模块完成该命令ID对应的界面元素的功能和状态变化,并返回给主系统显示。 所述界面元素为工具条;所述界面元素信息为有/无界面元素,或界面元素的个数。 由上述技术方案可见,本专利技术主系统需要界面元素时,从插件获取界面元素信息,主系统根据获得的界面元素信息,通知插件创建界面元素,插件调用主系统创建界面元素并在主系统显示。本专利技术将主系统的实现和插件的实现完全分离,将界面元素的界面逻辑和功能逻辑分开,使得主系统提供界面元素的界面风格,插件提供界面元素内容及功能逻辑,实现了插件适应不同的主系统,扩展提高了插件的可扩展性。 【附图说明】 图1是本专利技术系统组成示意图; 图2是本专利技术方法的流程图。 【具体实施方式】 本专利技术的核心思想是:主系统需要界面元素时,从插件获取界面元素信息,并根据获得的界面元素信息,通知插件创建界面元素,插件在创建过程中调用主系统的控件创建模块创建界面元素。 为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本专利技术进一步详细说明。 图1是本专利技术创建界面元素的系统组成示意图,如图1所示,该系统包括主系统和插件两部分,其中主系统用于实现界面元素的实际创建并提供界面元素的显示样式,插件用于实现界面元素具体的功能实现。 从上述主系统与插件的功能描述可见,主系统提供了界面逻辑,即界面元素的实现样式或风格,这样,主系统只要提供不同的界面风格实现,就可以在不更改插件提供的界面元素代码的情况下,灵活变换界面风格; 而插件提供了功能逻辑,即界面元素具体的功能实现。插件通过提供界面元素信息,让用户可以通过点击界面元素实现相应的功能。由于界面元素的界面的实际创建是由主系统封装实现的,所以插件本身并不关心界面到底会显示成什么样子,只需提供界面元素内容及功能实现即可。 主系统中包括:界面窗体模块和控建创建模块。 其中,界面窗体模块,用于向插件中的控件查询模块发送查询请求;接收来自插件中控件查询模块的查询响应,根据获得的查询结果获取需要创建的界面元素,并向插件的界面元素创建模块发送创建请求; 界面窗体模块是需要加载界面元素的容器,例如应用程序的主界面等等。 控件创建模块,用于接收来自插件的界面元素创建模块的创建通知,完成界面元素的实际创建,并为每一个创建的界面元素项分配用于标识不同界面元素的命令标识(ID)0控件创建模块是一组COM组件接口,具体实现属于本领域技术人员公知技术,这里不再详述。COM是Component Object Model的缩写,是一种组件技术。所述控件创建模块为一个或一个以上。 至少一个插件包括:控件查询模块和界面元素创建模块。 其中,控件查询模块,接收来自主系统的查询请求,获取插件包含的界面元素信息,并将获得的信息携带在查询响应中返回主系统; 界面元素创建模块,接收来自主系统的界面窗体模块的创建请求,调用主系统的控件创建模块完成界面元素的创建。 所述界面窗体模块还用于,向所述插件中的界面元素功能处理模块广播需要显示的界面窗体对应的命令ID ;显示所述插件返回的界面元素; 所述插件还包括:界面元素功能处理模块,根据接收到的命令ID,完成该命令ID对应的界面元素的功能和状态变化,并返回界面窗体模块。 本专利技术系统中,创建由插件中的界面元素创建模块来调用,比如创建一工具条,添加一按钮等等抽象的创建过程,即与界面无关,只表达创建语义,之后界面元素创建模块调用主系统中的控件创建模块,而实现界面元素的创建,本文档来自技高网...

【技术保护点】
一种创建界面元素的系统,其特征在于,该系统包括:主系统和插件,其中,主系统用于实现界面元素的实际创建,并提供界面元素的显示样式;插件用于实现界面元素具体的功能实现;主系统需要界面元素时,从插件获取界面元素信息,并根据获得的界面元素信息,通知插件创建界面元素;插件在创建过程中调用主系统完成实际的界面元素创建。

【技术特征摘要】
1.一种创建界面元素的系统,其特征在于,该系统包括:主系统和插件,其中, 主系统用于实现界面元素的实际创建,并提供界面元素的显示样式; 插件用于实现界面元素具体的功能实现; 主系统需要界面元素时,从插件获取界面元素信息,并根据获得的界面元素信息,通知插件创建界面元素;插件在创建过程中调用主系统完成实际的界面元素创建。2.根据权利要求1所述的系统,其特征在于,所述主系统包括:界面窗体模块和控件创建模块,其中, 界面窗体模块,用于向所述插件发送查询请求;接收来自所述插件的查询响应,根据获得的查询结果获取需要创建的界面元素;向所述插件发送创建请求; 控件创建模块,用于接收来自插件的创建通知,完成界面元素的实际创建,并为每一个创建的界面元素项分配用于标识不同界面元素的命令标识ID。3.根据权利要求2所述的系统,其特征在于,所述控件创建模块为一组COM组件接口。4.根据权利要求2所述的系统,其特征在于,所述插件包括:控件查询模块和界面元素创建模块,其中, 控件查询模块,接收来自所述主系统的查询请求,获取插件包含的界面元素的信息,并将该信息携带在查询响应中通知给所述主系统; 界面元素创建模块,接收来自所述主系统的创建请求,通知所述主系统的控件创建模块...

【专利技术属性】
技术研发人员:王东临
申请(专利权)人:天津书生软件技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1