将命令表面与多个活动组件进行关联的制作方法

文档序号:6593279阅读:205来源:国知局
专利名称:将命令表面与多个活动组件进行关联的制作方法
将命令表面与多个活动组件进行关联背景为了适应web平台和应用程序所支持的不同组件,许多在线产品和服务都使用分 布式命令来实现用户界面设计。这些用户界面以多个不同的命令表面为特征,使得应用程 序中的每一组件都具有其自己的命令集。每一应用程序与其在用户界面中相关联的组件紧 密集成。例如,网页可包括两个不同组件(即,两个不同的文本框),它们包含类似功能但每 一组件包括其自己的独立命令表面。概述提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。 本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定 所要求保护的主题的范围。同一命令表面可以与页面上的不相关的组件和应用程序相关联。各组件注册与它 们将利用的共享命令表面相关联的命令。每一组件可以利用与命令表面相关联的任意数量 的命令。命令管理器担当页面上的各组件与共享命令表面之间的消息中介。在接收到与命 令表面相关联的命令时,命令管理器将该命令消息分派给适当的组件。附图简述

图1示出示例性计算系统;图2示出用于将命令表面与多个活动组件进行关联的系统;图3示出用于将命令表面与多个组件进行关联的过程;以及图4示出用于接收命令并将从命令表面接收到的命令分派给组件的过程。详细描述现在参考附图描述各实施例,附图中相同的标号表示相同的元素。具体地,图1和 相应的讨论旨在提供对在其中可以实现各实施例的合适计算环境的简要、概括描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组 件、数据结构和其他类型的结构。也可使用其他计算机系统配置,包括手持式设备、多处理 器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。也可使用在 其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境 中,程序模块可以位于本地和远程存储器存储设备中。现在参考图1,将描述在各实施例中利用的计算机100的说明性计算机体系结构。 尽管计算机100 —般被示为客户机计算设备,但计算机100可被配置成客户机、服务器、移 动设备、或任何其他计算设备。计算机100包括中央处理单元5 ( “CPU”)、包括随机存取存 储器9 ( “RAM”)和只读存储器(“ROM”) 10的系统存储器7、以及将存储器耦合至CPU 5的 系统总线12。基本输入/输出系统存储在ROM 10中,它包含帮助在诸如启动期间在计算 机内元件之间传递信息的基本例程。计算机100还包括用于存储操作系统16、应用程序24 和其他程序模块的大容量存储设备14,这将在以下更为详尽地描述。大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到 CPU 5。大容量存储设备14及其相关联的计算机可读介质为计算机100提供非易失性存储。虽然此处包含的计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储 设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算 机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何 方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括, 但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其他固态存储器技术、CD-ROM、数字多功能盘 (“DVD”)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所 需信息且可以由计算机100访问的任何其他介质。根据各实施例,计算机100可以使用通过诸如因特网等网络18至远程计算机的逻 辑连接在联网环境中操作。计算机100可以通过连接至总线12的网络接口单元20来连接 到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其他 类型的网络和远程计算机系统。计算机100还可以包括用于接收和处理来自多个其他设备 的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图1中示 出)。类似地,输入/输出控制器22可以为包括用户界面28的显示屏、打印机或其他类型 的输出设备提供输出。计算机100还可通过网络连接18和/或某一其他连接耦合到数据 源(未示出)。如前所简述的,多个程序模块和数据文件可以存储在计算机100的大容量存 储设备14和RAM 9内,包括适于控制联网的个人计算机的操作的操作系统16,如华盛 顿州雷蒙德市的微软公司的WINDOWS VISTA 操作系统。大容量存储设备14和RAM 9 还可以存储一个或多个程序模块。具体地,大容量存储设备14和RAM 9可以存储诸 如web浏览器应用程序25等的一个或多个应用程序26。例如,浏览器程序25可以是 MICR0S0FTINTERNET EXPLORER 应用程序。服务器23被配置成向计算机100提供站点服务。如图所示,服务器23包括被配 置成提供通过客户机100上的浏览器应用程序25访问的站点的站点软件。根据一实施例, 诸如MICROSOFT SHAREP0INT SERVICES 等的站点软件可用于提供与站点相关联的协作 工具、文档存储工具和工作流工具。例如,可以使用向用户(团队成员)提供共享文档;共 享日历或事件信息;生成并讨论关于项目的想法;以及添加、分配、并跟踪关于项目的任务 等的方式的各个组件来创建站点。站点可被配置成因特网站点、外联网站点、和/或内联网 站点或用户可访问的任何其他站点。用户界面(UI) 28被设计成向用户提供用于查看站点并与网页上的命令表面和各 组件进行交互的视觉方式。并非页面上的每一命令表面都直接耦合到页面上的仅一个组 件,命令表面可以耦合到页面上的不止一个组件,即使这些组件与不同应用程序相关联。如 在UI 28中所示,页面上的同一命令表面与两个不同的组件(C1和C2)相关联。该命令表面 可以是诸如带状条、工具栏、饼形菜单等命令表面。页面上的各组件可以是不相关的并与不 同的应用程序相关联。一般而言,每一组件注册与它们将与命令管理器26 —起使用的命令 表面相关联的命令。命令管理器26担当页面上的各组件与命令表面之间的消息中介。每 一组件可以利用与命令表面相关联的任意数量的命令。例如,组件C1可以使用来自该命令 表面的命令中的三个命令而C2可以使用这些命令中的两个命令。组件(例如,C3)可以是 对用户不可见的组件。例如,组件C3可以是注册以得到与该命令表面相关联的保存命令的
6通知的拼写检查器。各组件也可以附连到命令表面或从中分离,或动态地改变运行时期间 的命令数量。组件可以将命令注册成聚焦命令或全局命令。在命令被一组件注册成全局命 令时,则即使在该组件不具有当前焦点的情况下,当在该命令在命令表面上被激活时该组 件仍然接收到该命令。在命令被注册成聚焦命令时,在该组件当前拥有焦点时该组件随后 接收该命令的通知。在接收到与命令表面相关联的命令时,命令管理器26将该命令消息分 派给适当的组件。命令管理器26的操作在以下更详细地描述。图2示出用于将命令表面与多个活动组件进行关联的系统。如图所示,系统200 包括页面205、组件210、组件212、组件214以及命令管理器26,命令管理器26包括命令分 派器220、焦点管理器225、撤消管理器230、以及命令表面235。如上所述,命令管理器26管理命令表面和不同组件之间的交互。尽管命令分派器 220、焦点管理器225、撤消管理器230以及命令表面235被示为集成在命令管理器26内,但 它们的功能中的一些或全部可以位于命令管理器26外部。页面205上的组件可以表示主存在网站中的多个应用程序和控件,包括web服务 和web应用程序。例如,丰富文本编辑器、时钟、电子表格模块、数据表单、绘图工具等都是 可以包括在页面上的组件。希望利用共享命令表面的任何组件都向命令管理器26注册。在注册之后或在注 册期间,该组件指定命令,当这些命令出现在命令表面上时组件希望得到通知。根据一个实 施例,这些命令在一个或多个命令(即,命令211、213以及215)的列表中被指定给命令管 理器。组件可以将该命令指定成全局命令或聚焦命令。即使该组件不拥有焦点时,全局命 令也被命令管理器26分派给该组件。以此方式,即使是在一组件不活动的情况下,该组件 也可以对命令表面上的命令进行反应。只有在该组件拥有焦点时聚焦命令才被分派给该组 件。组件可以在任何时候将命令附连到命令表面或从中分离命令。例如,组件可以基于应 用程序的状态的改变来改变命令表面上可用的活动命令。该组件还可以指定其是否可以接 收焦点。命令管理器26可以代表命令表面周期性地或作为页面上的特定事件的副作用来 轮询所注册的组件,以确定它们所主存的每一命令的状态。在一个实施例中,这一命令状 态包括该命令当前在该组件中是启用还是禁用的以及与该命令相关联的其他状态信息的 集合。例如,可以轮询“加粗”按钮来除了查看该按钮是否在命令表面中活动之外还查看它 当前是否启用(打开)。根据一个实施例,当在命令表面上接收到命令时(即,用户点击命 令),命令管理器将该命令发送到命令分派器220。命令分派器220与页面上的注册组件进行交互。在该示例中,命令分派器220被 配置成与组件210、组件212、以及组件214进行交互。命令分派器被配置成将命令分派给 这些组件,请求命令的状态并确定这些命令是否被启用。命令分派器保持为这些命令注册 的命令处理程序的记录,并使用这一信息来将这些命令和消息路由到各组件。根据一个实 施例,命令分派器220可以将其他消息和/或附加信息连同所分派的命令一起发送到各组 件。例如,该信息可以与处理命令、状态信息等时使用的数据相关。来自命令分派器的命令 还可以穿过作为代理的焦点管理器225,以帮助确保正确的组件接收到它们的命令。根据一 个实施例,焦点管理器耦合在主命令分派器220与各组件之间。在该实施例中,将聚焦命令 向焦点管理器225注册,并且焦点管理器225进而为它们向主命令分派器220注册。在通过主命令分派器220将命令分派到焦点管理器225时,焦点管理器225随后可以根据哪一 组件(如果有的话)当前拥有焦点来路由该命令。焦点管理器225管理对页面200上的组件的选择。焦点管理器225被配置成跟 踪当前具有该页面上的焦点的组件(活动组件)。当在页面上发生事件时(例如,用户点 击),检测到该事件的组件可以使用焦点管理器225来请求它成为活动组件。焦点管理器随 后将告知先前活动组件让出焦点。焦点管理器225随后将通知作出请求的组件它现在拥有 焦点。当选择发生在该页面上的活动组件之外时,焦点管理器可以向各组件发送没有组件 活动的消息,使得这些组件中的每一个都可以分离焦点。在组件接收到焦点时,命令管理器 26向该组件发送通知以使得它可以请求当前焦点。类似地,可以通知丢失焦点的组件以使 得它可以让出当前焦点。根据一个实施例,在另一组件请求焦点时,命令管理器26请求先 前聚焦组件让出焦点。撤消管理器230被用来撤消/重做已经执行的命令。撤消管理器230跟踪已经执 行的命令,并且在请求撤消或重做命令时,它帮助确保正确的组件接收到撤消或重做该命 令的请求。命令表面235跟踪与页面上的组件相关联的命令表面。该命令表面可以是任何类 型的命令表面,诸如带状条、工具栏、饼形菜单等。命令表面本身不操作对与其相关联的命 令的处理。相反,当在命令表面上激活命令时,命令管理器26将该命令定向到页面上的适 当组件。根据一个实施例,命令表面235中的命令表面支持用于刷新相关联命令的控制状 态以及对各组件启用/禁用该命令的消息。该命令表面还包括所定义的用于利用该命令表 面的方法。例如,可以在带状条控件中提供一种方法以示出先前未看到的上下文选项卡。在 命令管理器26对命令表面初始化之后,命令表面绘制其默认内容。根据一个实施例,与命 令表面相关联的数据被存储在XML文件中。尽管在图2中未示出,但其他功能可以包括在命令管理器26中。例如,可以实现 其他管理器。例如,可以将任务管理器编程成处理与各组件相关的工作请求。现在参考图3,描述了用于将命令表面与多个组件进行关联的说明性过程。当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(1) 运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的 机器逻辑电路或电路模块。该实现是取决于实现本发明的计算机系统的性能要求来选择 的。因此,所示出的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设 备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们 的任何组合来实现。在开始操作之后,过程300流向操作310,在那里初始化命令管理器。命令管理器 担当页面上的各组件与命令表面之间的消息中介。根据一个实施例,命令管理器初始化命 令分派器、焦点管理器、撤消管理器以及要在页面上的各组件之间共享的命令表面。移至操作320,向命令管理器注册页面上的各组件。页面上的希望利用共享命令表 面的任何组件都向命令管理器注册。流向330,各组件注册命令,在这些命令出现在命令表面上时各组件希望得到通 知。组件可以注册接收聚焦命令或全局命令。在命令被一组件注册成全局命令时,则即使 在该组件不具有当前焦点的情况下,当在该命令在命令表面上被激活时该组件仍然接收到
8该命令。在命令被注册成聚焦命令时,则只有在该组件当前拥有焦点时该组件才接收该命 令的通知。当在该组件被调用来执行命令时,该组件还提供用于处理该命令的方法。转移到操作340,初始化要与各组件进行关联的命令表面。该命令表面可以是任何 类型的命令表面,诸如带状条、工具栏、饼形菜单等。命令表面支持用于刷新与各组件相关 联的命令的控制状态以及对各组件启用/禁用这些命令的消息。该命令表面还包括所定义 的用于利用该命令表面的方法。随后该过程流向结束操作并返回以处理其他动作。图4示出用于接收命令并将从命令表面接收到的命令分派给组件的过程。在开始操作之后,过程400流向操作410,在那里从命令表面接收命令。当命令在 命令表面上激活时,该命令被重定向到处理该命令到适当组件的路由的命令管理器。移至操作420,确定要接收所分派的命令的各组件。一般而言,对将命令分派到何 处的判定是基于哪些组件注册来接收该命令的通知以及该组件的当前焦点的。例如,如上 所述,一些组件希望只要某一命令发生则被通知,而其他组件希望只在它们具有焦点时才 被通知。在操作430,作出关于所确定的组件是否准备好处理该命令的判定。在将该命令分 派给(一个或多个)组件之前,命令管理器可以轮询各组件以确定每一组件是否准备好处 理该命令。对于准备好处理该命令的每一组件,该过程移至操作440,在那里将该命令分派给 所确定的那些组件。移至操作450,维护与已在页面上执行的命令和通知了什么组件有关的记录。以此 方式,在请求撤消或重做命令时,它帮助确保正确的组件接收到撤消或重做该命令的请求。随后该过程流向结束操作并返回以处理其他动作。以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因 为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在 所附权利要求的范围内。
权利要求
一种用于将命令表面与活动组件进行关联的方法,包括将命令表面与网页上的第一组件和第二组件进行关联(320);其中所述命令表面包括用于执行各个动作的命令;标识所述第一组件的第一命令列表和所述第二组件的第二命令列表;其中所述第一命令列表和所述第二命令列表包括所述命令表面上包含的命令(211、213、215);将第一命令列表中的各命令中的每一个命令与所述第一组件进行关联并将第二命令列表中的各命令中的每一个命令与所述第二组件进行关联(330);确定所述命令表面上包括的命令之一何时被激活(410);确定所述第一组件应当何时接收所述命令并确定所述第二组件应当何时接收所述命令(420);以及在确定时将所述命令分派给所述第一组件以供处理以及在确定时将所述命令分派给所述第二组件以供处理(440)。
2.如权利要求1所述的方法,其特征在于,标识所述第一命令列表和所述第二命令列 表包括轮询所述第一组件以获取所述第一命令列表以及轮询所述第二组件以确定所述第 二命令列表;其中所述第一和第二组件能够修改它们的命令注册。
3.如权利要求1所述的方法,其特征在于,所述第一命令列表和所述第二命令列表中 的各命令中的每一个命令是全局命令或聚焦命令;其中所述全局命令指示分派所述命令而 不论组件上是否有当前焦点并且其中所述聚焦命令指示基于所述组件上的当前焦点来分 派所述命令。
4.如权利要求3所述的方法,其特征在于,还包括在所述命令作为全局命令与所述第 一组件相关联时或在所述第一组件具有当前焦点时作为聚焦命令与所述第一组件相关联 时,确定所述第一组件要接收所述命令;在所述第一组件具有当前焦点时在所述命令作为 全局命令与所述第二组件相关联时,确定所述第二组件要接收所述命令。
5.如权利要求3所述的方法,其特征在于,还包括响应于从所述第一组件或所述第二 组件接收到改变所述网页上的焦点或其他代码的请求来改变当前焦点。
6.如权利要求4所述的方法,其特征在于,在确定时在将所述命令分派给所述第一组 件以供处理之前以及在确定时在将所述命令分派给所述第二组件之前还包括在分派所述 命令之前轮询所述第一组件以确定所述第一组件是否准备好处理所述命令以及在分派所 述命令之前轮询所述第二组件以确定所述第二组件是否准备好处理所述命令。
7.如权利要求4所述的方法,其特征在于,还包括维护已被处理的命令;并且在启动撤 消过程时向各组件中的每一个通知要撤消的命令。
8.如权利要求5所述的方法,其特征在于,将所标识的命令列表中的每一个与同所述 命令表面相关联的组件中的每一个进行关联,每一组件注册要激活的命令。
9.如权利要求8所述的方法,其特征在于,所述第一组件和所述第二组件可以在运行 时期间分离相关联的命令。
10.如权利要求8所述的方法,其特征在于,所述第一组件与第一应用程序相关联并且 所述第二组件与第二应用程序相关联;其中所述第一应用程序和所述第二应用程序是不同 的应用程序。
11.一种具有用于将命令表面与活动组件进行关联的计算机可执行指令的计算机可读存储介质,包括初始化命令管理器(310),所述命令管理器被配置成担当同第一组件相关联的命令表 面与网页上的第二组件之间的中介;其中所述命令表面包括用于执行各个动作的命令;标识所述第一组件的第一命令列表和所述第二组件的第二命令列表;其中所述第一命 令列表和所述第二命令列表包括所述命令表面上包含的命令(211、213、215);向所述命令管理器注册所述第一命令列表和所述第二命令列表中的各命令中的每一 个命令(330);确定所述第一组件应当何时接收在所述命令表面上激活的命令并确定所述第二组件 应当何时接收所述命令(420);以及 在确定时将所述命令分派给所述第一组件以供处理(440)以及在确定时将所述命令 分派给所述第二组件以供处理。
12.如权利要求11所述的计算机可读存储介质,其特征在于,还包括向命令管理器注 册所述第一组件和所述第二组件,并且轮询所述第一组件和所述第二组件以获取所述第一 命令列表和所述第二命令列表。
13.如权利要求11所述的计算机可读存储介质,其特征在于,还包括将所述第一命令 列表中的各命令中的每一个命令和所述第二命令列表中的各命令中的每一个命令标识为 全局命令或聚焦命令;其中所述全局命令指示分派所述命令而不论组件上是否有当前焦点 并且其中所述聚焦命令指示基于所述组件上的当前焦点来分派所述命令。
14.如权利要求11所述的计算机可读存储介质,其特征在于,还包括轮询所述第一组 件和所述第二组件以确定所述第一组件是否准备好处理所述命令以及确定所述第二组件 是否准备好处理所述命令。
15.如权利要求11所述的计算机可读存储介质,其特征在于,还包括维护已被处理的 命令;并且在启动撤消过程时向各组件中的每一个通知要撤消的命令。
16.如权利要求11所述的计算机可读存储介质,其特征在于,还包括在运行时期间分 离向所述命令管理器注册的各命令中的一个或多个。
17.一种用于将命令表面与各组件进行关联的系统;包括 处理器(5)、存储器(7)和计算机可读介质(14);存储在所述计算机可读介质上并在所述处理器上执行的操作环境(16); 被配置成显示网页(28)的显示器,所述网页包括包含各个命令的命令表面;与第一应 用程序相关联的第一组件(210)和与第二应用程序相关联的第二组件(212);以及 命令管理器(26),它被配置成从所述第一组件和所述第二组件接收与所述命令表面进行关联的注册请求(320); 从所述第一组件接收第一命令列表以及从所述第二组件接收第二命令列表(330);其 中所述第一命令列表和所述第二命令列表包括所述命令表面上包含的命令;注册所述第一命令列表和所述第二命令列表中的各命令中的每一个命令(330); 在激活时从所述命令表面接收命令(410)并且确定所述第一组件应当何时接收所述 命令以及确定所述第二组件应当何时接收所述命令(420);以及在确定时将所述命令分派给所述第一组件以供处理以及在确定时将所述命令分派给 所述第二组件以供处理(440)。
18.如权利要求17所述的系统,其特征在于,还包括将所述第一命令列表中的各命令 中的每一个命令和所述第二命令列表中的各命令中的每一个命令分类成全局命令或聚焦 命令;其中所述全局命令指示分派所述命令而不论组件上是否有当前焦点并且其中所述聚 焦命令指示基于所述组件上的当前焦点来分派所述命令。
19.如权利要求17所述的系统,其特征在于,还包括在确定时在将所述命令分派给所 述第一组件以供处理之前轮询所述第一组件以确定所述第一组件是否准备好处理所述命 令以及在确定时在将所述命令分派给所述第二组件之前轮询所述第二组件以确定所述第 二组件是否准备好处理所述命令。
20.如权利要求17所述的系统,其特征在于,还包括维护已被处理的命令;并且在启动 撤消过程时向各组件中的每一个通知要撤消的命令。
全文摘要
页面上的同一命令表面可以与不相关的组件和应用程序相关联。各组件中的每一个注册与它们将利用的共享命令表面相关联的命令。每一组件可以利用与命令表面相关联的任意数量的命令。命令管理器担当页面上的各组件与命令表面之间的消息中介。在接收到与命令表面相关联的命令时,命令管理器将该命令消息分派给适当的组件。
文档编号G06Q50/00GK101981591SQ200980112454
公开日2011年2月23日 申请日期2009年2月20日 优先权日2008年3月31日
发明者E·贝利, J·拉森, T·麦康奈尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1