用于用户接口扩展的方法和系统的制作方法

文档序号:6571008阅读:314来源:国知局
专利名称:用于用户接口扩展的方法和系统的制作方法
技术领域
本发明涉及组件化应用环境(componentized applicationenvironment)的领域,具体而言,涉及组件化应用环境的用户接口的扩展。
背景技术
组件化应用环境是在运行时根据应用程序组件的设置来构造的应用环境,所述应用程序组件被规定为组件化应用环境的扩展点的插件。如通过Eclipse(TM)平台(Eclipse是Eclipse Foundation的注册商标,其网站的域名为eclipse.org)所具体实现的那样,仅仅通过向现有应用程序组件的已暴露部分声明扩展点并且通过注册应用程序组件的插件来提供附加的功能或者形态(appearance),组件化应用环境就可以提供应用程序的功能或者形态的扩充。以这种方式,可以在不篡改应用程序组件的底层代码的情况下,容易地扩展现有的应用程序。
总体上,包括Eclipse平台在内的组件化应用环境可以提供一种扩展模型,所述扩展模型允许应用程序研究者向现有应用程序添加新的用户接口组件。具体来讲,可以通过创建组件化应用环境的新插件并且通过为现有扩展点提供扩展定义来扩展现有应用程序的用户接口。虽然所述扩展模型提供了用于向应用程序添加新功能的有效方法,但是所述扩展模型不允许对现有应用程序组件进行修改或者移除。
更具体地说,为了确保应用程序可以在尽可能多的应用程序部署中得以重新使用,期望构造这样一种应用程序,所述应用程序可以被修改以便适应特定部署的要求。此外,为了对已部署的应用程序提供有效的支持和“固定包(flx-pack)”递送,期望应用部署专用的修改而不是直接改变应用程序的资产。然而目前,为了修改已部署的应用程序以便适应特定部署的要求,或者向现有部署应用固定包,都需要对已部署的应用程序进行直接修改。
例如,在Eclipse环境中,可以使用标准窗口小部件工具包(widgett00lkit)、通过程序代码的直接指令来创建用户接口。因此,为了允许对用户接口进行可编程控制的外部修改,开发人员必须确保用户接口的相关数据和方法成员的暴露。或者,把Eclipse用户接口组件的标记语言描述用于应用程序是公知的。在后一环境中,标准窗口小部件工具包的固有功能会为了用户接口扩展性的利益而作出牺牲。另外,为了扩展由标记语言规范定义的用户接口,需要修改所述标记语言规范,由此违反了Eclipse程序设计模型的至少一个前提,并且在提供版本之间的变迁的过程中禁止固定包的递送。

发明内容
本发明的实施例致力于解决涉及应用程序用户接口扩展技术的缺陷,并且提供了一种新颖的并且非显而易见的方法、系统和设备,用于扩展组件化应用环境中的应用程序的用户接口。在本发明的一个实施例中,用于组件化应用环境的用户接口扩展方法可以包括在标记(markup)中规定一组用户接口控制,并且进一步在标记中规定对所述组中的用户接口控制的扩展。所述用户接口控制的标记可以用所述扩展的标记来替代。此后,所述扩展的标记和所述的一组用户接口控制可以被提供给一组相对应的控制工厂(factory),缺乏被替代的用户接口控制,以便生成用于定义组件化应用环境的用户接口的用户接口控制实例。
在所述实施例的一方面中,在标记中规定一组用户接口控制的步骤可以包括定义每个用户接口控制的类型。所述类型可以对应于能够产生具有所定义类型的用户接口控制的实例的用户接口控制工厂。此外,可以进一步为每个用户接口控制定义管理器类型。所述管理器类型可以对应于能够管理具有进一步定义的管理器类型的用户接口控制实例的行为的窗口小部件管理器。
在本发明的另一方面中,利用所述扩展的标记替代所述用户接口控制的标记的步骤可以包括为对用户接口控制的扩展而规定所述环境的用户接口控制扩展点,并且进一步规定用于所述扩展的用户接口控制定义。这样,所述扩展点可以与用于扩展的用户接口控制定义相关联,并且当组装用于所述环境的用户接口时,所述扩展可以被标识为对将用所述扩展来替代的用户接口控制的替代。
在本发明的又一个方面中,可以在标记中声明一组用户接口控制的组合(composition)。另外,可以在标记中进一步声明对所述组合的扩展。随后,所述组合的标记可以用对所述组合的扩展的标记来替代。此后,对所述组合的扩展的标记可以被提供给控制工厂,以便生成用于定义组件化应用环境的用户接口的用户接口控制实例的组合的实例。
在本发明的另一个实施例中,组件化应用环境的数据处理系统可以被配置以用于用户接口扩展。所述系统可以包括用于定义组件化应用环境的插件以及用于组件化应用环境的用户接口框架。所述用户接口框架可以包括控制工厂,每一控制工厂均包括能够根据用于声明规定类型的用户接口控制定义来生成具有所述规定类型的用户接口控制的程序代码。
所述用户接口框架还可以包括窗口小部件管理器,每一窗口小部件管理器均包括能够根据用于声明规定的管理器类型的用户接口控制定义来管理具有所述规定的管理器类型的用户接口控制的行为的程序代码。
最后,所述用户接口框架可以包括配置器(configurator)。所述配置器可以包括能够识别对所定义的用户接口控制的扩展的程序代码。每一扩展均可以规定所定义的用户接口控制之一的替换。由此,所述配置器可以识别哪些控制和组合定义将要由新的控制和组合定义来替换。
作为选择,至少一个控制工厂可以包括能够根据为用户接口控制的组合而定义的组合声明来生成用户接口控制的组合的程序代码。就此而言,所述组合声明可以规定从包含栅格布局、表格布局、堆栈布局和行布局的组中选出的用户接口控制的布局。
本发明的其它方面的一部分将在随后的描述中阐述,一部分通过描述将显而易见,或者可以通过实践本发明而被学习。将借助于特别是在所附权利要求书中提出的元素和组合来实现并且完成本发明的各方面。应该理解的是,先前的总体描述和随后的详细描述都是示例性的并且仅仅是说明性的,而不是对要求保护的本发明的限制。
附图的简要说明并入此说明书中并且构成其一部分的附图示出了本发明的实施例,结合描述用来解释本发明的原理。此处所示的实施例是优选的,然而,应该理解的是,本发明不局限于所示出的具体配置和手段,附图中

图1是为应用程序用户接口扩展性而配置的组件化应用环境的示意图;图2是举例说明用于图1的组件化应用环境中的可扩展用户接口控制的框图;图3是举例说明用于图1的组件化应用环境中的可扩展用户接口控制组合的框图;并且图4是举例说明在组件化应用环境内用于扩展应用程序用户接口中的用户接口控制的过程的流程图。
具体实施例方式
本发明的实施例提供了一种方法、系统和计算机程序产品,用于组合应用环境的可扩展用户接口框架。按照本发明的实施例,位于组合应用环境中的用户接口控制可以被定义为对所述环境的扩展点。最初规定的为所述环境定义的用户接口控制可以通过作为扩展点的替换用户接口控制的定义来扩展,其中所述替换用户接口控制可以参考最初规定的用户接口控制的身份(identity)。以这种方式,用于所述环境的用户接口控制可以在不修改用户接口控制的逻辑的情况下得以修改。
值得注意的是,本发明的框架不仅涉及用户接口控制的定义,而且涉及所述环境的用户接口内的用户接口控制的组合或设置。这样,最初规定的用于所述环境的用户接口控制的组合或者设置可以通过作为扩展点的用户接口控制的替换组合或者设置的定义得以扩展,其中用户接口控制的替换组合或者设置可以参考最初规定的用户接口控制的组合或者设置的身份。如前所述,用于所述环境的用户接口控制的组合或者设置可以在不修改用户接口控制的组合或者设置的逻辑的情况下被修改。
在进一步的说明中,图1是作为为应用程序用户接口扩展性而配置的组件化应用环境的宿主的数据处理系统的示意图。所述数据处理系统110可以包括支持一个或多个插件120的组件化应用环境130。所述环境130可以被耦合至用户接口框架,所述用户接口框架包括控制工厂150、窗口小部件管理器180和配置器扩展点190。所述用户接口框架还可以包括一个或多个已定义控制140、若干组已定义控制140的一个或多个已定义组合170、以及一个或多个用户接口扩展160,它们分别被定义为对现有的已定义控制140之一和现有的已定义组合170之一的替换。
操作中,用户接口可以根据对已定义控制140的选择来组装。每一个已定义控制140可以按照用于控制的文档类型定义(documenttype definition,DTD)在标记中定义。同样,每一个组合170可以按照用于组合的DTD在标记中定义。作为其定义的一部分,控制140可以规定控制类型和管理器类型。利用在所述定义中规定的控制类型,用户接口框架可以启动被注册为环境130的扩展点的一个相关联的控制工厂150,以便创建已定义的一个控制140的实例。同样,利用在所述定义中规定的管理器类型,用户接口框架可以启动一个相关联的窗口小部件管理器180,以便管理已定义的一个控制140的行为。
利用所述框架的应用程序集成器(integrator)可以通过识别待修改的所述环境的用户接口中的控制140、并且进一步通过识别具有扩展160形式的相应替换控制140来定制(customize)环境130的用户接口。所述配置器扩展点190包括能够定义属性文件(未示出)的程序代码,所述属性文件用于规定扩展160中的哪些新的控制定义将替换用户接口中用于控制140的现有控制定义。当配置环境130的用户接口时,所述配置器扩展点190的程序代码应用扩展160中的新的控制定义,取代控制140的现有控制定义。因此,为了修改环境130的用户接口,不必修改环境130的底层应用程序组件。
在更具体的说明中,图2是举例说明用于扩展图1的组件化应用环境中的用户接口的体系结构的DTD的框图。所述体系结构可以包括对组件化应用环境的用户接口的扩展205。所述扩展205可以是扩展点,并且可以包括作为属性的扩展205的具有完全资格的标识符210、待通过扩展205扩展的目标用户接口控制的唯一可选标识符215、以及用于扩展205的实例的可选名称220。值得注意的是,所述扩展205可以包括一个或多个控制定义225。
每一控制定义225可以包括用于所述控制定义225的唯一标识符230、用于规定创建由控制定义225所定义的控制的实例所需的类型控制工厂的控制类型235。举例来说,所述控制类型235可以包括文本控制、标签控制、需要的标签、组合框、列表框、按钮、复选框、单选按钮、表、组合、组、分隔符、滚动组合和工具栏,仅举几个例子。所述控制定义225还可以包括管理器类型240,用于规定预期用来管理由控制定义所定义的控制的实例的窗口小部件管理器的类型,并且包括参考标识符245,用于标识所述控制定义225所依据的、并且所述控制定义225将继承其属性的另一控制定义,所述属性可以被在控制定义中明确定义的属性取代(override)。
每一控制定义225可以参考属性单元250。所述属性单元250可用于描述控制定义225的属性,并且当为控制定义225创建控制实例时,可由控制工厂加以利用。同样,当管理控制定义225的实例时,所述属性单元250可以被提供给窗口小部件管理器。所述属性单元250可以包括名称属性255和值属性260。所述名称属性255可以参考属性单元250的实例的名称,而所述值属性260可以具有属性单元250的实例的单个值。然而,对于列表中的多个值来说,可以为属性单元250提供值单元265,其中所述值单元265的实例可以为属性单元250的实例提供多个值。
一旦为所述环境的用户接口定义了用户接口控制,那么就可以定义用户接口控制的布局。例如,可以提供组合和布局定义以便规定所述布局。在本发明中,组合自身是控制实例,并且可以利用控制类型“组合”、使用图2的控制扩展点来声明。另外,可以提供对所述环境的另一扩展点,称为“compositeDefinitions(组合定义)”,其可以允许按照布局类型来声明组合布局,所述布局类型例如是栅格布局类型、表格布局类型、堆栈布局类型和行布局类型。这样,组合控制工厂可以处理与一个或多个控制相关联的组合定义,以便识别所述组合的布局和子控制。
在更具体的说明中,图3是举例说明图1的组件化应用环境中用户接口的组合定义扩展点体系结构的DTD的框图。所述体系结构可以包括用于组合定义的组合扩展305。所述组合扩展305可以是扩展点,并且可以包括作为属性的扩展305的全资格标识符310、待通过扩展305扩展的目标用户接口组合的唯一可选标识符315、以及用于扩展305的实例的可选名称320。值得注意的是,所述扩展305可以包括一个或多个组合声明325。
每一组合声明325可以包括用于所述组合声明325的唯一标识符330。每一组合声明325还可以包括布局标识符335。所述布局标识符335可以参考与组合声明325相关联的布局声明。示例性的布局声明包括栅格布局声明、表格布局声明、堆栈布局声明和行布局声明。最后,每一组合声明325可以包括参考标识符345。所述参考标识符345可以识别所述组合声明325将要依据的、并且所述组合声明325将要继承其属性的另一组合声明,其中所述属性可以被在组合声明325中明确定义的属性取代。
每一组合声明325可以参考一个或多个子控制单元350。子控制单元350可以包括用于创建子控制的控制标识符355。所述控制标识符355可以匹配被定义为对控制扩展点的扩展的控制单元的标识符属性。所述控制标识符355可以包括其他属性,这取决于相关组合声明325的布局类型。例如,在栅格布局的情况下,所述子控制单元350还可以包括具体参考栅格布局和栅格数据声明的数据标识符360,并且可以匹配被定义为对栅格数据扩展点的扩展的栅格数据单元的标识符属性。比较起来,在表格布局的情况下,子控制350还可以包括用于表格组合定义的高度、宽度和跨度属性365、370、375。
具体来讲,参考组合声明325的表格布局,所述控制标识符355可以包括附件(attachment)单元380。所述附件单元380可以包括左、右、上和下样式,每个样式可以描述表格组合中相关控制的指定侧上的表格附件。所述附件单元380能够以像素为单位来规定控制侧距离表格的附件位置的偏移385。所述附件单元380还可以包括用于规定表格放置的分子和分母属性390、395,以及用于规定表格对准的对准属性400。最后,可以提供相对控制标识符405来识别其上将附有表格的控制。
操作中,图2和3的DTD定义的体系结构可以被平衡,以便允许修改组件化应用环境的用户接口,而不分布所述环境中每一应用程序组件的底层代码。在进一步的举例说明中,图4是举例说明在组件化应用环境内用于扩展应用程序的用户接口中的用户接口控制的过程的流程图。在块410开始,可以检取一个清单(manifest),其表明将包括在所述环境的用户接口中的用户接口控制的选择。在块420,可以加载符合所述用户接口控制的控制DTD的标记语言规范,并且在块430,可以加载所述配置器以便基于所参考的对控制的扩展来确定哪些用户接口控制将被修改。
在判定块440,如果所述配置器确定用户接口控制将被修改,那么在块450,可以识别待替换的现有控制,并且用替换用户接口控制来替代。随后,在块460,可以检取表明用户接口控制的布局的组合。同样,在判定块470,所述配置器可以确定是否替换所述控制的现有布局。如果是,那么在块480,用户接口控制的现有组合可以被替换为已修改的组合。最后,在块490,所述用户接口可以被呈现给包括按照由所述组合定义的布局而设置的用户接口控制的环境。就此而言,所述控制和组合的标记可以被传递至相关控制工厂,以便产生所述用户接口中已定义控制的各个实例。
本领域技术人员将意识到的是,在本发明中,可以通过用户接口控制的标记语言定义和用户接口控制的组合的标记语言定义来规定用户接口。能够产生特定类型的控制和组合的控制工厂可以被配置,以便处理标记语言定义的控制和组合,以便产生各个用户接口控制和组合的实例。
于是,修改用户接口控制或者组合仅仅需要对控制或者组合的扩展的标记语言定义。配置器可以识别表明用户接口控制或者组合用扩展来替换的清单,后者的标记可以替代前者。此后,已替代的扩展可以被提供给适当的工厂,以便产生用于为组件化应用环境定义用户接口的实例。然而,可以应用对用户接口的修改,但不修改所述环境下任何应用程序组件的用户接口的任何底层源代码。
本发明的实施例可以采取全部硬件实现、全部软件实现或者包含硬件和软件元素两者实现的形式。在优选的实施例中,本发明是在软件中实现的,其包括但不局限于固件、常驻软件、微代码等等。此外,本发明可以采取计算机程序产品的形式,可从计算机可用或者计算机可读介质访问,其提供程序代码以供或者结合计算机或者任何指令执行系统来使用。
出于这种描述的目的,计算机可用或者计算机可读介质可以是任何有形的设备,其可以包含、存储、通信、传送或者运输程序,以供或者结合指令执行系统、设备和装置使用。所述介质可以是电子的、磁性的、光学的、电磁的、红外的或者半导体系统(或者设备或器件)或者传播介质。计算机可读介质的示例包括半导体或者固态存储器、磁带、可移除的计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的现有示例包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个处理器,所述处理器经由系统总线直接或者间接地耦合到存储元件。所述存储元件可以包括在程序代码实际执行期间所采用的本地存储器,大容量存储设备和高速缓冲存储器,其用于提供至少某些程序代码的临时存储,以便减少执行期间必须从大容量存储设备检索代码的次数。输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等等)可以直接或者经由插入I/O控制器耦合至所述系统。网络适配器也可以耦合至所述系统,以便能够使数据处理系统通过插入私有或者公共网络来耦合至其它数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器和以太网卡只是目前可利用的网络适配器类型的一小部分。
权利要求
1.一种用于组件化应用环境的用户接口扩展方法,所述方法包括如下步骤在标记中规定一组用户接口控制;在标记中进一步规定对所述组中的用户接口控制的扩展;利用所述扩展的标记来替代所述用户接口控制的标记;并且将所述扩展的标记和缺乏被替代的用户接口控制的所述的一组用户接口控制提供给一组相对应的控制工厂,以便生成定义用于所述组件化应用环境的用户接口的用户接口控制实例。
2.如权利要求1所述的方法,其中所述的在标记中规定一组用户接口控制的步骤包括为每个用户接口控制定义类型,所述类型对应于能够产生具有所定义类型的用户接口控制的实例的用户接口控制工厂;并且进一步为每个用户接口控制定义管理器类型,所述管理器类型对应于能够管理具有进一步定义的管理器类型的用户接口控制的实例的行为的窗口小部件管理器。
3.如权利要求2所述的方法,其中利用所述扩展的标记替代所述用户接口控制的标记的步骤包括为了所述用户接口控制的扩展而规定所述环境的用户接口控制扩展点;进一步规定用于所述扩展的用户接口控制定义;将所述扩展点与用于所述扩展的用户接口控制定义相关联;并且当组装用于所述环境的用户接口时,将所述扩展标识为对于要用所述扩展替代的用户接口控制的替代。
4.如权利要求1所述的方法,还包括在标记中声明一组用户接口控制的组合;进一步在标记中声明对所述组合的扩展;利用对所述组合的扩展的标记来替代所述组合的标记;并且向控制工厂提供对所述组合的扩展的标记,以便生成定义用于所述组件化应用环境的用户接口的用户接口控制的实例的组合的实例。
5.如权利要求4所述的方法,其中在标记中声明一组用户接口控制的组合的步骤包括在标记中声明一组用户接口控制的栅格布局组合。
6.如权利要求4所述的方法,其中在标记中声明一组用户接口控制的组合的步骤包括在标记中声明一组用户接口控制的表格布局组合。
7.如权利要求1所述的方法,其中利用所述扩展的标记来替代所述用户接口控制的标记的步骤包括在一个清单内识别对用户接口中的用户接口控制的一组扩展;并且利用识别出的一个相对应的扩展的标记来替换所述清单中每个识别出的用户接口控制的标记。
8.一种为用户接口扩展而配置的组件化应用环境数据处理系统,包括用于定义组件化应用环境的多个插件;以及用于所述组件化应用环境的用户接口框架,所述用户接口框架包括多个控制工厂,每一个控制工厂包括能够根据用于声明规定类型的用户接口控制定义来生成具有所述规定类型的用户接口控制的程序代码;多个窗口小部件管理器,每一个窗口小部件管理器包括能够根据用于声明规定的管理器类型的用户接口控制定义来管理具有所述规定的管理器类型的用户接口控制的行为的程序代码;以及配置器,包括能够识别对所定义的用户接口控制的扩展的程序代码,每个所述扩展分别规定对所定义的一个用户接口控制的替换。
9.如权利要求8所述的系统,其中所述规定类型包括从由以下类型构成的组中选出的类型文本控制、标签控制、需要的标签、组合框、列表框、按钮、复选框、单选按钮、表、组合、组、分隔符、滚动组合和工具栏。
10.如权利要求8所述的系统,其中至少一个控制工厂包括能够根据为用户接口控制的组合而定义的组合声明来生成用户接口控制的组合的程序代码。
11.如权利要求10所述的系统,其中所述组合声明规定从由栅格布局、表格布局、堆栈布局和行布局构成的组中选出的用户接口控制的布局。
全文摘要
本发明的实施例致力于解决涉及应用程序用户接口扩展的技术领域的缺陷,并且提供了一种方法、系统和计算机程序产品,用于扩展组件化应用环境中的应用程序的用户接口。在本发明的一个实施例中,用于组件化应用环境的用户接口扩展方法可以包括在标记中规定一组用户接口控制,并且还在标记中规定对所述组中的用户接口控制的扩展。所述用户接口控制的标记可以用所述扩展的标记来替代。此后,所述扩展的标记和所述的一组用户接口控制可以被提供给一组相对应的控制工厂,缺乏被替代的用户接口控制,以便生成定义用于组件化应用环境的用户接口的用户接口控制实例。
文档编号G06F9/44GK101013364SQ20071000238
公开日2007年8月8日 申请日期2007年1月15日 优先权日2006年1月30日
发明者布鲁斯·R.·贝克, 巴得里纳拉雅那·O.·马达普斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1