專利名稱:用于跨接不同用戶界面命令系統的適配器的制作方法
用于跨接不同用戶界面命令系統的適配器為 了提供一致的“外觀和感覺”,軟件提供者可能希望在應用程序工具套件內的單獨的應用程序工具之間提供一致的用戶界面(UI)。盡管單獨的應用程序工具中的某些可能是用和一致的UI兼容的命令路由(routing)協議來開發的,但單獨的應用程序工具中的其它一些可能包括用和一致的UI不兼容的傳統命令路由協議開發的“傳統(legacy) ”軟件工具。對于這種UI不兼容問題的一個解決方案是把傳統軟件工具重寫成和一致的UI —起工作。為了在不重寫傳統軟件工具的前提下利用它們,期望有一種將傳統軟件工具和前述的一致的UI相跨接的方法。
發明內容
提供本發明內容以便以簡化形式介紹將在以下的具體實施方式
中進一步描述的概念精選。本概述并非旨在標識出所要求保護的主題的關鍵特征或必要特征。本概述亦非旨在用于限制所要求保護的主題的范圍。可提供利用兩個不同命令路由協議的用戶界面。這兩個不同命令路由協議可包括第一命令路由協議和第二命令路由協議。第一命令路由協議可使用拉模型。第二命令路由協議可使用推模型。前述概括描述和以下詳細描述兩者都提供示例且都只是說明性的。因此,前述概括描述和以下詳細描述不應被認為是限制性的。此外,除了此處所闡明的那些之外還可提供其他特征或變型。例如,各實施方式可涉及在詳細描述中描述的各種特征組合和子組合。
合并在本發明中并構成其一部分的附圖示出本發明的各種實施方式。在附圖中圖1是一操作環境的框圖;圖2示出映射環境;圖3是用于提供用戶界面跨接的一種方法的流程圖;以及圖4是包括計算設備的系統的框圖。
具體實施例方式以下詳細描述參考各個附圖。只要可能,就在附圖和以下描述中使用相同的附圖標記來指示相同或類似的要素。盡管可能描述了本發明的各實施方式,但修改、改編和其他實現也是可能的。例如,可以對附圖中所示出的要素進行置換、添加、或修改,且可以通過對所公開的方法置換、重新排序、或添加階段來修改此處所描述的方法。因此,以下詳細描述并不限制本發明。相反,本發明的正確范圍由所附權利要求書確定。可提供界面跨接。和本發明的實施例一致,適配器接口可跨接不同的用戶界面 (UI)命令路由協議(例如,系統)。圖1示出操作環境100。如圖1所示,環境100可在包括例如顯示器的輸出設備(例如,以下參考圖4所描述的輸出設備414中的一個)上顯示。操作環境100可包括收發器模塊105、用戶界面模塊110、第一工具模塊115、和第二工具模塊120。用戶界面模塊110可包括但不限于菜單功能區模塊(例如,以下參照圖2所描述的菜單功能區模塊205)。用戶界面110可包括多個選項卡125、130、135和140。收發器模塊105可包括并控制用戶界面模塊110并可知道第一工具模塊115和第二工具模塊120中的哪一個是當前活動的。例如當用戶將操作環境100的焦點改變為第一工具模塊115或第二工具模塊120中的相應一個時,第一工具模塊115或第二工具模塊120可成為活動工具模塊。 第一工具模塊115可采用第一命令路由協議而第二工具模塊120可采用第二命令路由協議。第一命令路由協議可使用拉模型來組裝其UI命令分級結構,而第二路由協議可使用推模型來組裝其UI命令分級結構。第一命令路由協議以及用于用戶界面110的路由協議可以例如用可擴展標記語言(XML)靜態地預定義。然而,當命令被同步地推入UI命令容器(例如,在工具改變時,或當焦點改變時)時,第二命令路由協議可在運行時動態構建。本發明的實施例可在原生(native)控制用戶對象在“推”路由協議中出現和消失時將“推”路由協議的原生控制用戶對象重新映射到新的UI命令對象,從而和“拉”路由協議一起工作。圖2示出映射環境。如圖2所示,映射環境200可包括菜單功能區模塊205、 適配器210、以及活動工具模塊215。菜單功能區模塊205可包括用戶界面模塊110而活動工具模塊215可包括第一工具模塊115和第二工具模塊120中的一個。菜單功能區模塊 205可采用第一命令路由協議而活動工具模塊215可采用第二命令路由協議。如上所述,第一命令路由協議可使用拉模型來組裝其UI命令分級結構,而第二命令路由協議可使用推模型來組裝其UI命令分級結構。因此,如參考附圖3所更為詳細描述的,適配器210可被創建和用于跨接這兩個不同命令路由協議(例如,推和拉)。圖3是闡明根據本發明的一實施方式的用于提供用戶界面跨接的方法300中所涉及的各概括階段的流程圖。方法300可使用如將在以下參考圖4更詳細地描述的計算設備 400來實現。以下將更詳細地描述實現方法300的各階段的方式。方法300可開始于起始框305并繼續至階段310,在那里計算設備400可響應于用戶輸入而激活工具模塊。例如, 用戶可在操作環境100內工作。當在操作環境100內工作時,用戶可在第一工具模塊115和第二工具模塊120之間改變操作環境100的焦點。活動工具模塊可包括第一工具模塊115 活動第二工具模塊120中用戶當前正聚焦的一個(例如,活動工具模塊215)。方法300可從階段310 (在此計算設備400響應于用戶輸入激活工具模塊(例如活動工具模塊215))前進至階段320,在此計算設備400可由活動工具模塊215把和活動工具模塊215對應的至少一個工具命令推入容器。例如,活動工具模塊215可采用“推”命令路由協議。換言之,當命令被同步地推入UI命令容器時,活動工具模塊215中的命令可在活動工具模塊215的運行時被動態地構建。一旦計算設備400在階段320中由活動工具模塊215將對應于活動工具模塊215 的至少一個工具命令推入容器,則方法300可繼續到階段330,在此計算設備400可由收發器模塊300基于活動工具模塊215而選擇菜單功能區模塊205。例如,收發器模塊105可包括并控制菜單功能區模塊205(例如,用戶界面模塊110)并可知道第一工具模塊115和第二工具模塊120中的哪一個是活動工具模塊215。因為收發器模塊105可知道哪個工具模塊是被激活的,所以收發器模塊105可知道活動工具模塊215應該在菜單功能區模塊205 中顯示什么選項卡。在計算設備400在階段330中將對應于活動工具模塊215的至少一個工具命令推入容器后,方法300可繼續到階段340,在此計算設備400可從菜單功能區模塊205向活動工具模塊215發送定義對應于菜單功能區模塊205的功能區上的哪些選項卡(例如,多個選項卡125、130、135、140)應是活動的(例如,可見的)的請求。例如,盡管收發器模塊105 可能知道對于給定情形要顯示哪個功能區,但其可能不知道多個選項卡125、130、135、140 中的哪些要為可視的。因此,菜單功能區模塊205可詢問活動工具模塊215哪些選項卡要為可視的。方法300可從階段340 (在此計算設備400發送定義功能區上哪些選項卡應為活動的請求)前進到階段350,在此計算設備400可在菜單功能區模塊205處從活動工具模塊 215接收指示對應于菜單功能區模塊205的功能區上哪些選項卡應為活動的響應。例如,響應于來自菜單功能區模塊205的請求,活動工具模塊215可向菜單功能區模塊205指示,對于給定情形,多個選項卡125、130、135及140中的哪些要為可視。一旦計算設備400在階段350中接收了指示對應于菜單功能區模塊205的功能區上哪些選項卡應為活動的響應,方法300可繼續到階段360,在此計算設備400可從菜單功能區模塊205向適配器創建模塊420發送創建至少一個適配器210的請求。適配器210可被配置為在容器中的至少一個工具命令以及可存在于選項卡上的至少一個原生功能區命令之間進行轉換。在響應中所述至少一個選項卡可被指示為應為活動的(例如,可視的) 選項卡。因為菜單功能區模塊205可采用不同于活動工具模塊215的命令路由協議,所以這兩個命令路由協議之間可能存有差距。為了跨接該差距,適配器創建模塊420可被用于創建適配器210。適配器210可在活動模塊215的命令對象出現和消失時,將活動工具模塊 215的原生功能區控制用戶對象重映射到新的UI命令對象。在計算設備400在階段360中發送創建適配器210的請求后,方法300可前進到階段370,此處計算設備400可由適配器創建模塊420創建適配器210。例如,如上所述,菜單功能區模塊205可采用第一命令路由協議而活動工具模塊215可采用第二命令路由協議。第一命令路由協議可使用拉模型來組裝其UI命令分級結構,而第二命令路由協議可使用推模型來組裝其UI命令分級結構。因此,可創建適配器210以跨接這兩個不同的命令路由協議(例如,推和拉)。特別地,活動工具模塊215的命令對象可利用統一資源定位符 (URL)。菜單功能區模塊205可采用標識多個選項卡125、130、135和140之一的工具條控制ID (Tl⑶)。因此,適配器210可將活動工具模塊215的URL映射到菜單功能區模塊205 的 TICD。一旦計算設備400在階段370創建了適配器210,方法300可繼續到階段380,在此計算設備400可使用適配器210在容器中的至少一個工具命令和可存在于選項卡上的原生功能區命令之間轉換。例如,適配器210可被用于在活動工具模塊215的命令對象出現和消失時,將活動工具模塊215的原生功能區控制用戶對象重映射到新的UI命令對象。一旦計算設備400在階段380使用適配器210進行轉換,方法300然后就可在階段390處結束ο根據本發明的一實施例可包括用于提供用戶界面跨接的系統。該系統可包括存儲器存儲和耦合到該存儲器存儲的處理單元。處理單元可操作用于由兩個不同的命令路由協議提供用戶界面。兩個不同命令路由協議可包括使用拉模型的第一命令路由協議和使用推模型的第二命令路由協議。根據本發明的另一實施例可包括用于提供用戶界面跨接的系統。該系統可包括存儲器存儲和耦合到該存儲器存儲的處理單元。處理單元可操作用于由兩個不同的命令路由協議創建用戶界面。兩個不同命令路由協議可包括使用拉模型的第一命令路由協議和使用推模型的第二命令路由協議。此外,處理單元可操作用于顯示該用戶界面。根據本發明的又一實 施例可包括用于提供用戶界面跨接的系統。該系統可包括存儲器存儲和耦合到該存儲器存儲的處理單元。處理單元可操作用于由收發器模塊基于活動工具模塊來選擇菜單功能區模塊。此外,處理單元可操作用于從菜單功能區模塊向工具模塊發送定義對應于菜單功能區模塊的功能區上的哪些選項卡應為活動的請求。此外,處理單元可操作用于在菜單功能區模塊接收來自工具模塊的指示對應于菜單功能區模塊的功能區上的哪些選項卡應為活動的響應。此外,處理單元可操作用于從菜單功能區模塊向適配器創建模塊發送創建至少一個適配器的請求,該適配器配置為在容器內的至少一個工具命令和可存在于選項卡上的原生功能區命令之間進行轉換。在響應中所述至少一個選項卡可被指示為應為活動的選項卡。并且,該處理單元可操作用于由適配器創建模塊創建該至少一個適配器。圖4是包括計算設備400的系統的框圖。根據本發明的一個實施例,上述存儲器存儲和處理單元可以在諸如圖4的計算設備400等計算設備中實現。可以使用硬件、軟件或固件的任何合適的組合來實現該存儲器存儲和處理單元。例如,存儲器存儲和處理單元可以用計算設備400或結合計算設備400的其他計算設備418中的任意一個來實現。根據本發明的各實施例,上述系統、設備和處理器是示例,而其他系統、設備和處理器可以包括上述存儲器存儲和處理單元。此外,計算設備400可包括用于上述系統100的操作環境。系統100可以在其他環境中操作并且不限于計算設備400。參考圖4,根據本發明的一實施方式的系統可包括計算設備,諸如計算設備400。 在一基本配置中,計算設備400可以包括至少一個處理單元402和系統存儲器404。取決于計算設備的配置和類型,系統存儲器404可以包括,但不限于,易失性存儲器(例如,隨機存取存儲器(RAM))、非易失性存儲器(例如,只讀存儲器(ROM))、閃存或任何組合。系統存儲器404可包括操作系統405、一個或多個編程模塊406,且可包括程序數據407。操作系統405,例如,可適用于控制計算設備400的操作。在一個實施例中,編程模塊406可包括, 例如,收發器模塊105、第一工具模塊115、第二工具模塊120、菜單功能區模塊205、適配器 210、或適配器創建模塊420。此外,本發明的各實施方式可以結合圖形庫、其他操作系統、或任何其他應用程序來實踐,且不限于任何特定應用程序或系統。該基本配置在圖4中由虛線408內的組件示出。計算設備400可具有附加特征或功能。例如,計算設備400還可包括附加數據存儲設備(可移動和/或不可移動),諸如例如磁盤、光盤或磁帶。這些附加存儲在圖4中由可移動存儲409和不可移動存儲410示出。計算機存儲介質可包括以用于存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據等信息的任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。系統存儲器404、可移動存儲409和不可移動存儲410都是計算機存儲介質的示例(即,存儲器存儲)。計算機存儲介質可以包括,但不限于,RAM、ROM、 電可擦除只讀存儲器(EEPROM)、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或可用于存儲信息且可以由計算設備400訪問的任何其它介質。任何這樣的計算機存儲介質可以是設備400的一部分。計算設備400還可以具有輸入設備412,如鍵盤、鼠標、筆、聲音輸入設備、觸摸輸入設備等。還可包括諸如顯示器、揚聲器、打印機等輸出設備414。上述設備是示例且可以使用其他設備計算設備400還可包含可允許設備400諸如通過例如內聯網或因特網等分布式計算環境中的網絡來與其他計算設備416進行通信的通信連接418。通信連接416是通信介質的一個示例。通信介質通常由諸如載波或其他傳輸機制等已調制數據信號中的計算機可讀指令、數據結構、程序模塊或其他數據來體現,并包括任何信息傳遞介質。術語“已調制數據信號”可以描述以對該信號中的信息進行編碼的方式設定或者改變其一個或多個特征的信號。作為示例而非限制,通信介質包括諸如有線網絡或直接線連接等有線介質,以及諸如聲學、射頻(RF)、紅外線和其他無線介質等無線介質。如此處所使用的術語計算機可讀介質可以包括存儲介質和通信介質兩者。如上所述,可以在系統存儲器404中存儲包括操作系統405在內的多個程序模塊和數據文件。當在處理單元402上執行時,編程模塊406(例如、收發器模塊105、用戶界面模塊110、第一工具模塊115、第二工具模塊120、菜單功能區模塊205、適配器210、或適配器創建模塊420)可執行包括例如如上所述的方法300的一個或多個階段的過程。前述過程是示例,且處理單元402可執行其他過程。根據本發明的各實施方式可以使用的其他編程模塊可以包括電子郵件和聯系人應用程序、文字處理應用程序、電子表格應用程序、數據庫應用程序、幻燈片演示應用程序、繪圖或計算機輔助應用程序等。一般而言,根據本發明的各實施方式,程序模塊可以包括可以執行特定任務或可以實現特定抽象數據類型的例程、程序、組件、數據結構和其他類型的結構。此外,本發明的各實施方式可用其他計算機系統配置來實踐,包括手持式設備、多處理器系統、基于微處理器的系統或可編程消費電子產品、小型機、大型計算機等。本發明的各實施方式也可以在其中任務由通過通信網絡鏈接的遠程處理設備執行的分布式計算環境中實現。在分布式計算環境中,程序模塊可以位于本地和遠程存儲器存儲設備中。此外,本發明的各實施方式可在包括分立電子元件的電路、包含邏輯門的封裝或集成電子芯片、利用微處理器的電路、或在包含電子元件或微處理器的單個芯片上實現。本發明的各實施方式還可以使用能夠執行諸如,例如,AND(與)、0R(或)和NOT(非)等邏輯運算的其他技術來實踐,包括但不限于,機械、光學、流體和量子技術。另外,本發明的各實施方式可以在通用計算機或任何其他電路或系統中實現。例如,本發明的各實施方式可被實現為計算機進程(方法)、計算系統或諸如計算機程序產品或計算機可讀介質等制品。計算機程序產品可以是計算機系統可讀并編碼了用于執行計算機進程的指令的計算機程序的計算機存儲介質。計算機程序產品還可以是計算系統可讀并編碼了用于執行計算機進程的指令的計算機程序的載體上的傳播信號。因此, 本發明能以硬件和/或軟件(包括固件、常駐軟件、微碼等)來具體化。換言之,本發明的各實施方式可以采用其上包含有供指令執行系統使用或結合其使用的計算機可使用或計算機可讀程序代碼的計算機可使用或計算機可讀存儲介質上的計算機程序產品的形式。計算機可使用或計算機可讀介質可以是可包含、存儲、通信、傳播、或傳輸程序以供指令執行系統、裝置或設備使用或結合其使用的任何介質。計算機可使用或計算機可讀介質可以是,例如,但不限于,電、磁、光、電磁、紅外、 或半導體系統、裝置、設備或傳播介質。更具體的計算機可讀介質示例(非窮盡列表),計算機可讀介質可以包括以下具有一條或多條導線的電連接、便攜式計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或閃存)、光纖、和便攜式壓縮盤只讀存儲器(CD-ROM)。注意,計算機可使用或計算機可讀介質甚至可以是其上打印有程序的紙張或另一合適的介質,因為程序可以經由例如對紙張或其他介質的光學掃描而電子地捕獲,隨后如有必要被編譯、解釋,或以其他合適的方式處理,并隨后存儲在計算機存儲器中。以上參考例如根據本發明的各實施方式的方法、系統和計算機程序產品的框圖和 /或操作圖示描述了本發明的各實施方式。框中所注明的各功能/動作可以按不同于任何流程圖所示的次序出 現。例如,取決于所涉及的功能/動作,連續示出的兩個框實際上可以基本上同時執行,或者這些框有時可以按相反的次序來執行。盡管已經描述了本發明的某些實施方式,但也可能存在其他實施方式。此外,雖然本發明的各實施方式被描述為與存儲在存儲器和其他存儲介質中的數據相關聯,但數據還可以被存儲在或讀取自其他類型的計算機可讀介質,如輔助存儲設備,像硬盤、軟盤、或 CD-ROM ;來自因特網的載波;或其他形式的RAM或ROM。此外,所公開的各方法的各階段可以按任何方式來修改,包括通過對各階段重新排序和/或插入或刪除階段,而不背離本發明。包括此處所包括的代碼中的版權在內的所有權利都歸屬于申請人并且是本申請人的財產。申請人保持并保留此處所包括的代碼中的所有權利,并授予僅關于所授權的專利的再現且未出于其他目的再現該材料的許可。雖然本說明書包括各示例,但本發明的范圍由所附權利要求書來指示。此外,盡管用對結構特征和/或方法動作專用的語言描述了本說明書,但權利要求書并不限于上述特征或動作。相反,上述具體特征和動作是作為本發明的各實施方式的示例來公開的。
權利要求
1.一種用于提供用戶界面跨接的系統,該系統包括存儲器存儲(404);以及耦合至所述存儲器存儲(404)的處理單元(402),其中所述處理單元(402)可操作用于由兩個不同命令路由協議提供用戶界面,所述兩個不同命令路由協議包括使用拉模型的第一命令路由協議和使用推模型的第二命令路由協議。
2.如權利要求1所述的系統,其特征在于,所述處理單元(402)可操作用于顯示所述用戶界面。
3.如權利要求1所述的系統,其特征在于,所述處理單元(402)可操作用于顯示所述用戶界面,該用戶界面包括具有多個選項卡(125、130、135、140)的功能區。
4.如權利要求1所述的系統,其特征在于,所述第一命令路由協議是靜態地預定義的。
5.如權利要求1所述的系統,其特征在于,所述第一命令路由協議是用可擴展標記語言(XML)靜態地預定義的。
6.如權利要求1所述的系統,其特征在于,所述第二命令路由協議是在運行時動態地構建的。
7.如權利要求1所述的系統,其特征在于,所述第二命令路由協議是在命令被同步地推入用戶界面命令容器中時在運行時動態地構建的。
8.一種用于提供用戶界面跨接的方法,該方法包括由收發器模塊(105)基于被激活的工具模塊(115、120、215)選擇(330)菜單功能區模塊(205);從所述菜單功能區模塊(205)向所述工具模塊(115、120、215)發送(340)定義對應于所述菜單功能區模塊(205)的功能區上的哪些選項卡(125、130、135、140)應為活動的請求;在所述菜單功能區模塊(205)接收(350)來自所述工具模塊(115、120、215)的指示對應于所述菜單功能區模塊(205)的功能區上的哪些選項卡(125、130、135、140)應為活動的響應;從所述菜單功能區模塊(205)向適配器創建模塊(420)發送(360)創建至少一個適配器(210)的請求,該適配器配置為在容器內的至少一個工具命令和所述功能區上的至少一個選項卡之間進行轉換(380),所述至少一個選項卡在所述響應中被指示為應為活動的選項卡;以及由所述適配器創建模塊(420)創建(370)所述至少一個適配器(210)。
9.如權利要求8所述的方法,其特征在于,還包括響應于用戶輸入而激活(310)所述工具模塊(115、120、215)。
10.如權利要求9所述的方法,其特征在于,還包括響應于被激活,由所述工具模塊 (115,120,215)將對應于所述工具模塊(115、120、215)的所述至少一個工具命令推(320) 入所述容器。
11.如權利要求8所述的方法,其特征在于,還包括使用所述至少一個適配器(210)在所述容器內的所述至少一個工具命令和在所述選項卡上存在的所述至少一個本機功能區命令之間進行轉換(380)。
12.如權利要求8所述的系統,其特征在于,創建(370)所述至少一個適配器(210)包括在兩個不同的命令路由協議之間映射,該兩個不同的命令路由協議包括使用推模型的第一命令路由協議和使用拉模型的第二命令路由協議。
13.如權利要求12所述的方法,其特征在于,創建(370)所述至少一個適配器(210)包括創建所述至少一個適配器(210),其中第一命令路由協議是靜態地預定義的。
14.如權利要求12所述的方法,其特征在于,創建(370)所述至少一個適配器(210)包括創建所述至少一個適配器(210),其中第二命令路由協議是在運行時動態地構建的。
15.如權利要求14所述的方法,其特征在于,創建(370)所述至少一個適配器(210)包括創建所述至少一個適配器(210),其中第二命令路由協議是在命令被同步地推入到所述容器中時在運行時動態地構建的。
全文摘要
可提供利用兩個不同命令路由協議的用戶界面。這兩個不同命令路由協議可包括第一命令路由協議和第二命令路由協議。第一命令路由協議可使用拉模型。第二命令路由協議可使用推模型。第一命令路由協議可用可擴展標記語言(XML)來靜態地預定義。第二命令路由協議可在命令被同步地推入用戶界面命令容器中時在運行時動態地構建。用戶界面可被顯示,其中包括具有多個選項卡的功能區。
文檔編號G06F9/06GK102246138SQ200980150049
公開日2011年11月16日 申請日期2009年11月6日 優先權日2008年12月10日
發明者U·穆勒 申請人:微軟公司