專(zhuān)利名稱(chēng):將命令表面與多個(gè)活動(dòng)組件進(jìn)行關(guān)聯(lián)的制作方法
將命令表面與多個(gè)活動(dòng)組件進(jìn)行關(guān)聯(lián)背景為了適應(yīng)web平臺(tái)和應(yīng)用程序所支持的不同組件,許多在線產(chǎn)品和服務(wù)都使用分 布式命令來(lái)實(shí)現(xiàn)用戶(hù)界面設(shè)計(jì)。這些用戶(hù)界面以多個(gè)不同的命令表面為特征,使得應(yīng)用程 序中的每一組件都具有其自己的命令集。每一應(yīng)用程序與其在用戶(hù)界面中相關(guān)聯(lián)的組件緊 密集成。例如,網(wǎng)頁(yè)可包括兩個(gè)不同組件(即,兩個(gè)不同的文本框),它們包含類(lèi)似功能但每 一組件包括其自己的獨(dú)立命令表面。概述提供本概述以便以簡(jiǎn)化形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一些概念。 本發(fā)明內(nèi)容不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定 所要求保護(hù)的主題的范圍。同一命令表面可以與頁(yè)面上的不相關(guān)的組件和應(yīng)用程序相關(guān)聯(lián)。各組件注冊(cè)與它 們將利用的共享命令表面相關(guān)聯(lián)的命令。每一組件可以利用與命令表面相關(guān)聯(lián)的任意數(shù)量 的命令。命令管理器擔(dān)當(dāng)頁(yè)面上的各組件與共享命令表面之間的消息中介。在接收到與命 令表面相關(guān)聯(lián)的命令時(shí),命令管理器將該命令消息分派給適當(dāng)?shù)慕M件。附圖簡(jiǎn)述
圖1示出示例性計(jì)算系統(tǒng);圖2示出用于將命令表面與多個(gè)活動(dòng)組件進(jìn)行關(guān)聯(lián)的系統(tǒng);圖3示出用于將命令表面與多個(gè)組件進(jìn)行關(guān)聯(lián)的過(guò)程;以及圖4示出用于接收命令并將從命令表面接收到的命令分派給組件的過(guò)程。詳細(xì)描述現(xiàn)在參考附圖描述各實(shí)施例,附圖中相同的標(biāo)號(hào)表示相同的元素。具體地,圖1和 相應(yīng)的討論旨在提供對(duì)在其中可以實(shí)現(xiàn)各實(shí)施例的合適計(jì)算環(huán)境的簡(jiǎn)要、概括描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、組 件、數(shù)據(jù)結(jié)構(gòu)和其他類(lèi)型的結(jié)構(gòu)。也可使用其他計(jì)算機(jī)系統(tǒng)配置,包括手持式設(shè)備、多處理 器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。也可使用在 其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境。在分布式計(jì)算環(huán)境 中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中?,F(xiàn)在參考圖1,將描述在各實(shí)施例中利用的計(jì)算機(jī)100的說(shuō)明性計(jì)算機(jī)體系結(jié)構(gòu)。 盡管計(jì)算機(jī)100 —般被示為客戶(hù)機(jī)計(jì)算設(shè)備,但計(jì)算機(jī)100可被配置成客戶(hù)機(jī)、服務(wù)器、移 動(dòng)設(shè)備、或任何其他計(jì)算設(shè)備。計(jì)算機(jī)100包括中央處理單元5 ( “CPU”)、包括隨機(jī)存取存 儲(chǔ)器9 ( “RAM”)和只讀存儲(chǔ)器(“ROM”) 10的系統(tǒng)存儲(chǔ)器7、以及將存儲(chǔ)器耦合至CPU 5的 系統(tǒng)總線12?;据斎?輸出系統(tǒng)存儲(chǔ)在ROM 10中,它包含幫助在諸如啟動(dòng)期間在計(jì)算 機(jī)內(nèi)元件之間傳遞信息的基本例程。計(jì)算機(jī)100還包括用于存儲(chǔ)操作系統(tǒng)16、應(yīng)用程序24 和其他程序模塊的大容量存儲(chǔ)設(shè)備14,這將在以下更為詳盡地描述。大容量存儲(chǔ)設(shè)備14通過(guò)連接至總線12的大容量存儲(chǔ)控制器(未示出)連接到 CPU 5。大容量存儲(chǔ)設(shè)備14及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)100提供非易失性存儲(chǔ)。雖然此處包含的計(jì)算機(jī)可讀介質(zhì)的描述針對(duì)諸如硬盤(pán)或CD-ROM驅(qū)動(dòng)器等大容量存儲(chǔ) 設(shè)備,但是計(jì)算機(jī)可讀介質(zhì)可以是能夠由計(jì)算機(jī)100訪問(wèn)的任何可用介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算 機(jī)存儲(chǔ)介質(zhì)包括以存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何 方法或技術(shù)來(lái)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括, 但不限于,RAM、ROM、EPROM、EEPR0M、閃存或其他固態(tài)存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán) (“DVD”)或其他光學(xué)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所 需信息且可以由計(jì)算機(jī)100訪問(wèn)的任何其他介質(zhì)。根據(jù)各實(shí)施例,計(jì)算機(jī)100可以使用通過(guò)諸如因特網(wǎng)等網(wǎng)絡(luò)18至遠(yuǎn)程計(jì)算機(jī)的邏 輯連接在聯(lián)網(wǎng)環(huán)境中操作。計(jì)算機(jī)100可以通過(guò)連接至總線12的網(wǎng)絡(luò)接口單元20來(lái)連接 到網(wǎng)絡(luò)18。網(wǎng)絡(luò)連接可以是無(wú)線的和/或有線的。網(wǎng)絡(luò)接口單元20也可用于連接到其他 類(lèi)型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)100還可以包括用于接收和處理來(lái)自多個(gè)其他設(shè)備 的輸入的輸入/輸出控制器22,這些設(shè)備包括鍵盤(pán)、鼠標(biāo)或者電子指示筆(未在圖1中示 出)。類(lèi)似地,輸入/輸出控制器22可以為包括用戶(hù)界面28的顯示屏、打印機(jī)或其他類(lèi)型 的輸出設(shè)備提供輸出。計(jì)算機(jī)100還可通過(guò)網(wǎng)絡(luò)連接18和/或某一其他連接耦合到數(shù)據(jù) 源(未示出)。如前所簡(jiǎn)述的,多個(gè)程序模塊和數(shù)據(jù)文件可以存儲(chǔ)在計(jì)算機(jī)100的大容量存 儲(chǔ)設(shè)備14和RAM 9內(nèi),包括適于控制聯(lián)網(wǎng)的個(gè)人計(jì)算機(jī)的操作的操作系統(tǒng)16,如華盛 頓州雷蒙德市的微軟公司的WINDOWS VISTA 操作系統(tǒng)。大容量存儲(chǔ)設(shè)備14和RAM 9 還可以存儲(chǔ)一個(gè)或多個(gè)程序模塊。具體地,大容量存儲(chǔ)設(shè)備14和RAM 9可以存儲(chǔ)諸 如web瀏覽器應(yīng)用程序25等的一個(gè)或多個(gè)應(yīng)用程序26。例如,瀏覽器程序25可以是 MICR0S0FTINTERNET EXPLORER 應(yīng)用程序。服務(wù)器23被配置成向計(jì)算機(jī)100提供站點(diǎn)服務(wù)。如圖所示,服務(wù)器23包括被配 置成提供通過(guò)客戶(hù)機(jī)100上的瀏覽器應(yīng)用程序25訪問(wèn)的站點(diǎn)的站點(diǎn)軟件。根據(jù)一實(shí)施例, 諸如MICROSOFT SHAREP0INT SERVICES 等的站點(diǎn)軟件可用于提供與站點(diǎn)相關(guān)聯(lián)的協(xié)作 工具、文檔存儲(chǔ)工具和工作流工具。例如,可以使用向用戶(hù)(團(tuán)隊(duì)成員)提供共享文檔;共 享日歷或事件信息;生成并討論關(guān)于項(xiàng)目的想法;以及添加、分配、并跟蹤關(guān)于項(xiàng)目的任務(wù) 等的方式的各個(gè)組件來(lái)創(chuàng)建站點(diǎn)。站點(diǎn)可被配置成因特網(wǎng)站點(diǎn)、外聯(lián)網(wǎng)站點(diǎn)、和/或內(nèi)聯(lián)網(wǎng) 站點(diǎn)或用戶(hù)可訪問(wèn)的任何其他站點(diǎn)。用戶(hù)界面(UI) 28被設(shè)計(jì)成向用戶(hù)提供用于查看站點(diǎn)并與網(wǎng)頁(yè)上的命令表面和各 組件進(jìn)行交互的視覺(jué)方式。并非頁(yè)面上的每一命令表面都直接耦合到頁(yè)面上的僅一個(gè)組 件,命令表面可以耦合到頁(yè)面上的不止一個(gè)組件,即使這些組件與不同應(yīng)用程序相關(guān)聯(lián)。如 在UI 28中所示,頁(yè)面上的同一命令表面與兩個(gè)不同的組件(C1和C2)相關(guān)聯(lián)。該命令表面 可以是諸如帶狀條、工具欄、餅形菜單等命令表面。頁(yè)面上的各組件可以是不相關(guān)的并與不 同的應(yīng)用程序相關(guān)聯(lián)。一般而言,每一組件注冊(cè)與它們將與命令管理器26 —起使用的命令 表面相關(guān)聯(lián)的命令。命令管理器26擔(dān)當(dāng)頁(yè)面上的各組件與命令表面之間的消息中介。每 一組件可以利用與命令表面相關(guān)聯(lián)的任意數(shù)量的命令。例如,組件C1可以使用來(lái)自該命令 表面的命令中的三個(gè)命令而C2可以使用這些命令中的兩個(gè)命令。組件(例如,C3)可以是 對(duì)用戶(hù)不可見(jiàn)的組件。例如,組件C3可以是注冊(cè)以得到與該命令表面相關(guān)聯(lián)的保存命令的
6通知的拼寫(xiě)檢查器。各組件也可以附連到命令表面或從中分離,或動(dòng)態(tài)地改變運(yùn)行時(shí)期間 的命令數(shù)量。組件可以將命令注冊(cè)成聚焦命令或全局命令。在命令被一組件注冊(cè)成全局命 令時(shí),則即使在該組件不具有當(dāng)前焦點(diǎn)的情況下,當(dāng)在該命令在命令表面上被激活時(shí)該組 件仍然接收到該命令。在命令被注冊(cè)成聚焦命令時(shí),在該組件當(dāng)前擁有焦點(diǎn)時(shí)該組件隨后 接收該命令的通知。在接收到與命令表面相關(guān)聯(lián)的命令時(shí),命令管理器26將該命令消息分 派給適當(dāng)?shù)慕M件。命令管理器26的操作在以下更詳細(xì)地描述。圖2示出用于將命令表面與多個(gè)活動(dòng)組件進(jìn)行關(guān)聯(lián)的系統(tǒng)。如圖所示,系統(tǒng)200 包括頁(yè)面205、組件210、組件212、組件214以及命令管理器26,命令管理器26包括命令分 派器220、焦點(diǎn)管理器225、撤消管理器230、以及命令表面235。如上所述,命令管理器26管理命令表面和不同組件之間的交互。盡管命令分派器 220、焦點(diǎn)管理器225、撤消管理器230以及命令表面235被示為集成在命令管理器26內(nèi),但 它們的功能中的一些或全部可以位于命令管理器26外部。頁(yè)面205上的組件可以表示主存在網(wǎng)站中的多個(gè)應(yīng)用程序和控件,包括web服務(wù) 和web應(yīng)用程序。例如,豐富文本編輯器、時(shí)鐘、電子表格模塊、數(shù)據(jù)表單、繪圖工具等都是 可以包括在頁(yè)面上的組件。希望利用共享命令表面的任何組件都向命令管理器26注冊(cè)。在注冊(cè)之后或在注 冊(cè)期間,該組件指定命令,當(dāng)這些命令出現(xiàn)在命令表面上時(shí)組件希望得到通知。根據(jù)一個(gè)實(shí) 施例,這些命令在一個(gè)或多個(gè)命令(即,命令211、213以及215)的列表中被指定給命令管 理器。組件可以將該命令指定成全局命令或聚焦命令。即使該組件不擁有焦點(diǎn)時(shí),全局命 令也被命令管理器26分派給該組件。以此方式,即使是在一組件不活動(dòng)的情況下,該組件 也可以對(duì)命令表面上的命令進(jìn)行反應(yīng)。只有在該組件擁有焦點(diǎn)時(shí)聚焦命令才被分派給該組 件。組件可以在任何時(shí)候?qū)⒚罡竭B到命令表面或從中分離命令。例如,組件可以基于應(yīng) 用程序的狀態(tài)的改變來(lái)改變命令表面上可用的活動(dòng)命令。該組件還可以指定其是否可以接 收焦點(diǎn)。命令管理器26可以代表命令表面周期性地或作為頁(yè)面上的特定事件的副作用來(lái) 輪詢(xún)所注冊(cè)的組件,以確定它們所主存的每一命令的狀態(tài)。在一個(gè)實(shí)施例中,這一命令狀 態(tài)包括該命令當(dāng)前在該組件中是啟用還是禁用的以及與該命令相關(guān)聯(lián)的其他狀態(tài)信息的 集合。例如,可以輪詢(xún)“加粗”按鈕來(lái)除了查看該按鈕是否在命令表面中活動(dòng)之外還查看它 當(dāng)前是否啟用(打開(kāi))。根據(jù)一個(gè)實(shí)施例,當(dāng)在命令表面上接收到命令時(shí)(即,用戶(hù)點(diǎn)擊命 令),命令管理器將該命令發(fā)送到命令分派器220。命令分派器220與頁(yè)面上的注冊(cè)組件進(jìn)行交互。在該示例中,命令分派器220被 配置成與組件210、組件212、以及組件214進(jìn)行交互。命令分派器被配置成將命令分派給 這些組件,請(qǐng)求命令的狀態(tài)并確定這些命令是否被啟用。命令分派器保持為這些命令注冊(cè) 的命令處理程序的記錄,并使用這一信息來(lái)將這些命令和消息路由到各組件。根據(jù)一個(gè)實(shí) 施例,命令分派器220可以將其他消息和/或附加信息連同所分派的命令一起發(fā)送到各組 件。例如,該信息可以與處理命令、狀態(tài)信息等時(shí)使用的數(shù)據(jù)相關(guān)。來(lái)自命令分派器的命令 還可以穿過(guò)作為代理的焦點(diǎn)管理器225,以幫助確保正確的組件接收到它們的命令。根據(jù)一 個(gè)實(shí)施例,焦點(diǎn)管理器耦合在主命令分派器220與各組件之間。在該實(shí)施例中,將聚焦命令 向焦點(diǎn)管理器225注冊(cè),并且焦點(diǎn)管理器225進(jìn)而為它們向主命令分派器220注冊(cè)。在通過(guò)主命令分派器220將命令分派到焦點(diǎn)管理器225時(shí),焦點(diǎn)管理器225隨后可以根據(jù)哪一 組件(如果有的話)當(dāng)前擁有焦點(diǎn)來(lái)路由該命令。焦點(diǎn)管理器225管理對(duì)頁(yè)面200上的組件的選擇。焦點(diǎn)管理器225被配置成跟 蹤當(dāng)前具有該頁(yè)面上的焦點(diǎn)的組件(活動(dòng)組件)。當(dāng)在頁(yè)面上發(fā)生事件時(shí)(例如,用戶(hù)點(diǎn) 擊),檢測(cè)到該事件的組件可以使用焦點(diǎn)管理器225來(lái)請(qǐng)求它成為活動(dòng)組件。焦點(diǎn)管理器隨 后將告知先前活動(dòng)組件讓出焦點(diǎn)。焦點(diǎn)管理器225隨后將通知作出請(qǐng)求的組件它現(xiàn)在擁有 焦點(diǎn)。當(dāng)選擇發(fā)生在該頁(yè)面上的活動(dòng)組件之外時(shí),焦點(diǎn)管理器可以向各組件發(fā)送沒(méi)有組件 活動(dòng)的消息,使得這些組件中的每一個(gè)都可以分離焦點(diǎn)。在組件接收到焦點(diǎn)時(shí),命令管理器 26向該組件發(fā)送通知以使得它可以請(qǐng)求當(dāng)前焦點(diǎn)。類(lèi)似地,可以通知丟失焦點(diǎn)的組件以使 得它可以讓出當(dāng)前焦點(diǎn)。根據(jù)一個(gè)實(shí)施例,在另一組件請(qǐng)求焦點(diǎn)時(shí),命令管理器26請(qǐng)求先 前聚焦組件讓出焦點(diǎn)。撤消管理器230被用來(lái)撤消/重做已經(jīng)執(zhí)行的命令。撤消管理器230跟蹤已經(jīng)執(zhí) 行的命令,并且在請(qǐng)求撤消或重做命令時(shí),它幫助確保正確的組件接收到撤消或重做該命 令的請(qǐng)求。命令表面235跟蹤與頁(yè)面上的組件相關(guān)聯(lián)的命令表面。該命令表面可以是任何類(lèi) 型的命令表面,諸如帶狀條、工具欄、餅形菜單等。命令表面本身不操作對(duì)與其相關(guān)聯(lián)的命 令的處理。相反,當(dāng)在命令表面上激活命令時(shí),命令管理器26將該命令定向到頁(yè)面上的適 當(dāng)組件。根據(jù)一個(gè)實(shí)施例,命令表面235中的命令表面支持用于刷新相關(guān)聯(lián)命令的控制狀 態(tài)以及對(duì)各組件啟用/禁用該命令的消息。該命令表面還包括所定義的用于利用該命令表 面的方法。例如,可以在帶狀條控件中提供一種方法以示出先前未看到的上下文選項(xiàng)卡。在 命令管理器26對(duì)命令表面初始化之后,命令表面繪制其默認(rèn)內(nèi)容。根據(jù)一個(gè)實(shí)施例,與命 令表面相關(guān)聯(lián)的數(shù)據(jù)被存儲(chǔ)在XML文件中。盡管在圖2中未示出,但其他功能可以包括在命令管理器26中。例如,可以實(shí)現(xiàn) 其他管理器。例如,可以將任務(wù)管理器編程成處理與各組件相關(guān)的工作請(qǐng)求?,F(xiàn)在參考圖3,描述了用于將命令表面與多個(gè)組件進(jìn)行關(guān)聯(lián)的說(shuō)明性過(guò)程。當(dāng)閱讀對(duì)在此提供的例程的討論時(shí),應(yīng)當(dāng)理解,各實(shí)施例的邏輯操作被實(shí)現(xiàn)為(1) 運(yùn)行于計(jì)算系統(tǒng)上的一系列計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或程序模塊,和/或(2)計(jì)算系統(tǒng)內(nèi)互連的 機(jī)器邏輯電路或電路模塊。該實(shí)現(xiàn)是取決于實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)的性能要求來(lái)選擇 的。因此,所示出的并且構(gòu)成此處所描述的實(shí)施例的邏輯操作被不同地表示為操作、結(jié)構(gòu)設(shè) 備、動(dòng)作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可用軟件、固件、專(zhuān)用數(shù)字邏輯以及它們 的任何組合來(lái)實(shí)現(xiàn)。在開(kāi)始操作之后,過(guò)程300流向操作310,在那里初始化命令管理器。命令管理器 擔(dān)當(dāng)頁(yè)面上的各組件與命令表面之間的消息中介。根據(jù)一個(gè)實(shí)施例,命令管理器初始化命 令分派器、焦點(diǎn)管理器、撤消管理器以及要在頁(yè)面上的各組件之間共享的命令表面。移至操作320,向命令管理器注冊(cè)頁(yè)面上的各組件。頁(yè)面上的希望利用共享命令表 面的任何組件都向命令管理器注冊(cè)。流向330,各組件注冊(cè)命令,在這些命令出現(xiàn)在命令表面上時(shí)各組件希望得到通 知。組件可以注冊(cè)接收聚焦命令或全局命令。在命令被一組件注冊(cè)成全局命令時(shí),則即使 在該組件不具有當(dāng)前焦點(diǎn)的情況下,當(dāng)在該命令在命令表面上被激活時(shí)該組件仍然接收到
8該命令。在命令被注冊(cè)成聚焦命令時(shí),則只有在該組件當(dāng)前擁有焦點(diǎn)時(shí)該組件才接收該命 令的通知。當(dāng)在該組件被調(diào)用來(lái)執(zhí)行命令時(shí),該組件還提供用于處理該命令的方法。轉(zhuǎn)移到操作340,初始化要與各組件進(jìn)行關(guān)聯(lián)的命令表面。該命令表面可以是任何 類(lèi)型的命令表面,諸如帶狀條、工具欄、餅形菜單等。命令表面支持用于刷新與各組件相關(guān) 聯(lián)的命令的控制狀態(tài)以及對(duì)各組件啟用/禁用這些命令的消息。該命令表面還包括所定義 的用于利用該命令表面的方法。隨后該過(guò)程流向結(jié)束操作并返回以處理其他動(dòng)作。圖4示出用于接收命令并將從命令表面接收到的命令分派給組件的過(guò)程。在開(kāi)始操作之后,過(guò)程400流向操作410,在那里從命令表面接收命令。當(dāng)命令在 命令表面上激活時(shí),該命令被重定向到處理該命令到適當(dāng)組件的路由的命令管理器。移至操作420,確定要接收所分派的命令的各組件。一般而言,對(duì)將命令分派到何 處的判定是基于哪些組件注冊(cè)來(lái)接收該命令的通知以及該組件的當(dāng)前焦點(diǎn)的。例如,如上 所述,一些組件希望只要某一命令發(fā)生則被通知,而其他組件希望只在它們具有焦點(diǎn)時(shí)才 被通知。在操作430,作出關(guān)于所確定的組件是否準(zhǔn)備好處理該命令的判定。在將該命令分 派給(一個(gè)或多個(gè))組件之前,命令管理器可以輪詢(xún)各組件以確定每一組件是否準(zhǔn)備好處 理該命令。對(duì)于準(zhǔn)備好處理該命令的每一組件,該過(guò)程移至操作440,在那里將該命令分派給 所確定的那些組件。移至操作450,維護(hù)與已在頁(yè)面上執(zhí)行的命令和通知了什么組件有關(guān)的記錄。以此 方式,在請(qǐng)求撤消或重做命令時(shí),它幫助確保正確的組件接收到撤消或重做該命令的請(qǐng)求。隨后該過(guò)程流向結(jié)束操作并返回以處理其他動(dòng)作。以上說(shuō)明、示例和數(shù)據(jù)提供了對(duì)本發(fā)明的組成部分的制造和使用的全面描述。因 為可以在不背離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實(shí)施例,所以本發(fā)明落在 所附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
一種用于將命令表面與活動(dòng)組件進(jìn)行關(guān)聯(lián)的方法,包括將命令表面與網(wǎng)頁(yè)上的第一組件和第二組件進(jìn)行關(guān)聯(lián)(320);其中所述命令表面包括用于執(zhí)行各個(gè)動(dòng)作的命令;標(biāo)識(shí)所述第一組件的第一命令列表和所述第二組件的第二命令列表;其中所述第一命令列表和所述第二命令列表包括所述命令表面上包含的命令(211、213、215);將第一命令列表中的各命令中的每一個(gè)命令與所述第一組件進(jìn)行關(guān)聯(lián)并將第二命令列表中的各命令中的每一個(gè)命令與所述第二組件進(jìn)行關(guān)聯(lián)(330);確定所述命令表面上包括的命令之一何時(shí)被激活(410);確定所述第一組件應(yīng)當(dāng)何時(shí)接收所述命令并確定所述第二組件應(yīng)當(dāng)何時(shí)接收所述命令(420);以及在確定時(shí)將所述命令分派給所述第一組件以供處理以及在確定時(shí)將所述命令分派給所述第二組件以供處理(440)。
2.如權(quán)利要求1所述的方法,其特征在于,標(biāo)識(shí)所述第一命令列表和所述第二命令列 表包括輪詢(xún)所述第一組件以獲取所述第一命令列表以及輪詢(xún)所述第二組件以確定所述第 二命令列表;其中所述第一和第二組件能夠修改它們的命令注冊(cè)。
3.如權(quán)利要求1所述的方法,其特征在于,所述第一命令列表和所述第二命令列表中 的各命令中的每一個(gè)命令是全局命令或聚焦命令;其中所述全局命令指示分派所述命令而 不論組件上是否有當(dāng)前焦點(diǎn)并且其中所述聚焦命令指示基于所述組件上的當(dāng)前焦點(diǎn)來(lái)分 派所述命令。
4.如權(quán)利要求3所述的方法,其特征在于,還包括在所述命令作為全局命令與所述第 一組件相關(guān)聯(lián)時(shí)或在所述第一組件具有當(dāng)前焦點(diǎn)時(shí)作為聚焦命令與所述第一組件相關(guān)聯(lián) 時(shí),確定所述第一組件要接收所述命令;在所述第一組件具有當(dāng)前焦點(diǎn)時(shí)在所述命令作為 全局命令與所述第二組件相關(guān)聯(lián)時(shí),確定所述第二組件要接收所述命令。
5.如權(quán)利要求3所述的方法,其特征在于,還包括響應(yīng)于從所述第一組件或所述第二 組件接收到改變所述網(wǎng)頁(yè)上的焦點(diǎn)或其他代碼的請(qǐng)求來(lái)改變當(dāng)前焦點(diǎn)。
6.如權(quán)利要求4所述的方法,其特征在于,在確定時(shí)在將所述命令分派給所述第一組 件以供處理之前以及在確定時(shí)在將所述命令分派給所述第二組件之前還包括在分派所述 命令之前輪詢(xún)所述第一組件以確定所述第一組件是否準(zhǔn)備好處理所述命令以及在分派所 述命令之前輪詢(xún)所述第二組件以確定所述第二組件是否準(zhǔn)備好處理所述命令。
7.如權(quán)利要求4所述的方法,其特征在于,還包括維護(hù)已被處理的命令;并且在啟動(dòng)撤 消過(guò)程時(shí)向各組件中的每一個(gè)通知要撤消的命令。
8.如權(quán)利要求5所述的方法,其特征在于,將所標(biāo)識(shí)的命令列表中的每一個(gè)與同所述 命令表面相關(guān)聯(lián)的組件中的每一個(gè)進(jìn)行關(guān)聯(lián),每一組件注冊(cè)要激活的命令。
9.如權(quán)利要求8所述的方法,其特征在于,所述第一組件和所述第二組件可以在運(yùn)行 時(shí)期間分離相關(guān)聯(lián)的命令。
10.如權(quán)利要求8所述的方法,其特征在于,所述第一組件與第一應(yīng)用程序相關(guān)聯(lián)并且 所述第二組件與第二應(yīng)用程序相關(guān)聯(lián);其中所述第一應(yīng)用程序和所述第二應(yīng)用程序是不同 的應(yīng)用程序。
11.一種具有用于將命令表面與活動(dòng)組件進(jìn)行關(guān)聯(lián)的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括初始化命令管理器(310),所述命令管理器被配置成擔(dān)當(dāng)同第一組件相關(guān)聯(lián)的命令表 面與網(wǎng)頁(yè)上的第二組件之間的中介;其中所述命令表面包括用于執(zhí)行各個(gè)動(dòng)作的命令;標(biāo)識(shí)所述第一組件的第一命令列表和所述第二組件的第二命令列表;其中所述第一命 令列表和所述第二命令列表包括所述命令表面上包含的命令(211、213、215);向所述命令管理器注冊(cè)所述第一命令列表和所述第二命令列表中的各命令中的每一 個(gè)命令(330);確定所述第一組件應(yīng)當(dāng)何時(shí)接收在所述命令表面上激活的命令并確定所述第二組件 應(yīng)當(dāng)何時(shí)接收所述命令(420);以及 在確定時(shí)將所述命令分派給所述第一組件以供處理(440)以及在確定時(shí)將所述命令 分派給所述第二組件以供處理。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括向命令管理器注 冊(cè)所述第一組件和所述第二組件,并且輪詢(xún)所述第一組件和所述第二組件以獲取所述第一 命令列表和所述第二命令列表。
13.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括將所述第一命令 列表中的各命令中的每一個(gè)命令和所述第二命令列表中的各命令中的每一個(gè)命令標(biāo)識(shí)為 全局命令或聚焦命令;其中所述全局命令指示分派所述命令而不論組件上是否有當(dāng)前焦點(diǎn) 并且其中所述聚焦命令指示基于所述組件上的當(dāng)前焦點(diǎn)來(lái)分派所述命令。
14.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括輪詢(xún)所述第一組 件和所述第二組件以確定所述第一組件是否準(zhǔn)備好處理所述命令以及確定所述第二組件 是否準(zhǔn)備好處理所述命令。
15.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括維護(hù)已被處理的 命令;并且在啟動(dòng)撤消過(guò)程時(shí)向各組件中的每一個(gè)通知要撤消的命令。
16.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括在運(yùn)行時(shí)期間分 離向所述命令管理器注冊(cè)的各命令中的一個(gè)或多個(gè)。
17.一種用于將命令表面與各組件進(jìn)行關(guān)聯(lián)的系統(tǒng);包括 處理器(5)、存儲(chǔ)器(7)和計(jì)算機(jī)可讀介質(zhì)(14);存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上并在所述處理器上執(zhí)行的操作環(huán)境(16); 被配置成顯示網(wǎng)頁(yè)(28)的顯示器,所述網(wǎng)頁(yè)包括包含各個(gè)命令的命令表面;與第一應(yīng) 用程序相關(guān)聯(lián)的第一組件(210)和與第二應(yīng)用程序相關(guān)聯(lián)的第二組件(212);以及 命令管理器(26),它被配置成從所述第一組件和所述第二組件接收與所述命令表面進(jìn)行關(guān)聯(lián)的注冊(cè)請(qǐng)求(320); 從所述第一組件接收第一命令列表以及從所述第二組件接收第二命令列表(330);其 中所述第一命令列表和所述第二命令列表包括所述命令表面上包含的命令;注冊(cè)所述第一命令列表和所述第二命令列表中的各命令中的每一個(gè)命令(330); 在激活時(shí)從所述命令表面接收命令(410)并且確定所述第一組件應(yīng)當(dāng)何時(shí)接收所述 命令以及確定所述第二組件應(yīng)當(dāng)何時(shí)接收所述命令(420);以及在確定時(shí)將所述命令分派給所述第一組件以供處理以及在確定時(shí)將所述命令分派給 所述第二組件以供處理(440)。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,還包括將所述第一命令列表中的各命令 中的每一個(gè)命令和所述第二命令列表中的各命令中的每一個(gè)命令分類(lèi)成全局命令或聚焦 命令;其中所述全局命令指示分派所述命令而不論組件上是否有當(dāng)前焦點(diǎn)并且其中所述聚 焦命令指示基于所述組件上的當(dāng)前焦點(diǎn)來(lái)分派所述命令。
19.如權(quán)利要求17所述的系統(tǒng),其特征在于,還包括在確定時(shí)在將所述命令分派給所 述第一組件以供處理之前輪詢(xún)所述第一組件以確定所述第一組件是否準(zhǔn)備好處理所述命 令以及在確定時(shí)在將所述命令分派給所述第二組件之前輪詢(xún)所述第二組件以確定所述第 二組件是否準(zhǔn)備好處理所述命令。
20.如權(quán)利要求17所述的系統(tǒng),其特征在于,還包括維護(hù)已被處理的命令;并且在啟動(dòng) 撤消過(guò)程時(shí)向各組件中的每一個(gè)通知要撤消的命令。
全文摘要
頁(yè)面上的同一命令表面可以與不相關(guān)的組件和應(yīng)用程序相關(guān)聯(lián)。各組件中的每一個(gè)注冊(cè)與它們將利用的共享命令表面相關(guān)聯(lián)的命令。每一組件可以利用與命令表面相關(guān)聯(lián)的任意數(shù)量的命令。命令管理器擔(dān)當(dāng)頁(yè)面上的各組件與命令表面之間的消息中介。在接收到與命令表面相關(guān)聯(lián)的命令時(shí),命令管理器將該命令消息分派給適當(dāng)?shù)慕M件。
文檔編號(hào)G06Q50/00GK101981591SQ200980112454
公開(kāi)日2011年2月23日 申請(qǐng)日期2009年2月20日 優(yōu)先權(quán)日2008年3月31日
發(fā)明者E·貝利, J·拉森, T·麥康奈爾 申請(qǐng)人:微軟公司