Certain aspects of a generic user interface command architecture allow an application to host commands for presentation on a computing device. The commands can be written by the same designer or author as the application, or alternatively by other parties (e.g., by a third-party developer). Other as
Certain aspects of a generic user interface command architecture allow an application to host commands for presentation on a computing device. The commands can be written by the same designer or author as the application, or alternatively by other parties (e.g., by a third-party developer). Other aspects of the generic UI command architecture describe an application programming interface (API) that can be used to allow the application to host the commands. Other aspects of the generic UI command architecture describe an activation mechanism by which registered commands can be activated by an application.
대표청구항▼
The invention claimed is: 1. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to: create a command broker by: identifying an object definition that includes one or more argu
The invention claimed is: 1. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to: create a command broker by: identifying an object definition that includes one or more arguments; for each of the one or more arguments that is a non-literal argument, recursively identifying one or more additional object definitions based on the argument; and creating, as the command broker, the objects defined by the identified object definitions; negotiate, with the command broker, for a presentation model to be used in presenting a command via a user interface, the negotiating including obtaining a list of one or more presentation models supported by the command broker and selecting at least one of the one or more presentation models that is supported by the command broker; notify the command broker of the selected at least one presentation model, the notifying including invoking a GetProvider method exposed by the command broker and including the selected at least one presentation model as a parameter of the GetProvider method; obtain, based on the negotiated presentation model, a command provider associated with the command; wherein the command broker is an intermediary between a command host and the command provider; and wherein the command provider is the final handler for a particular command. 2. One or more computer readable storage media as recited in claim 1, wherein the instructions further cause the one or more processors to interact with the command provider to present the command's user interface in response to the command being subsequently invoked by a user. 3. One or more computer readable storage media as recited in claim 1, wherein the instructions further cause the one or more processors to make context information available to the command broker. 4. One or more computer readable storage media as recited in claim 1, wherein the plurality of instructions further cause the one or more processors to: negotiate, with a plurality of additional command brokers, for presentation models to be used in presenting a plurality of additional commands associated with the plurality of additional command brokers; and obtain, based on the negotiated presentation models, identifiers of a plurality of additional command providers associated with the plurality of additional commands. 5. One or more computer readable storage media as recited in claim 1, wherein the plurality of instructions are part of a command host that supports one or more presentation models not supported by the command broker. 6. One or more computer readable storage media as recited in claim 1, wherein the instructions that cause the one or more processors to negotiate with the command broker further cause the one or more processors to: access a modes enumeration exposed by a component; and receive, in response to accessing the modes enumeration, a list of a plurality of different presentation models supported by the command broker for the command. 7. One or more computer readable storage media having stored thereon a plurality of instructions that implement a command broker, the plurality of instructions, when executed by one or more processors, causes the one or more processors to: identify, to a requestor, a plurality of presentation models supported by the command broker, the command broker being associated with a particular command and being created by: identifying an object definition that includes one or more arguments; for each of the one or more arguments that is a non-literal argument, recursively identifying one or more additional object definitions based on the argument; and creating, as the command broker, the objects defined by the identified object definitions; negotiate, with the requestor, which of the plurality of presentation models is to be used to present the command via a user interface, the negotiating including providing a list of the plurality of presentation models supported by the command broker and receiving a selection of at least one of the plurality of presentation models that is supported by the command broker; receive a notification, from the requestor, of the selected at least one presentation model, the receiving including invocation of a GetProvider method exposed by the command broker and including the selected at least one presentation model as a parameter of the GetProvider method; wherein the command broker is an intermediary between a command host and a command provider; and wherein the command provider is the final handler for a particular command. 8. One or more computer readable storage media as recited in claim 7, wherein the plurality of instructions further cause the one or more processors to: create, based on the negotiated presentation model, the command provider for the command; and notify the requestor of the command provider. 9. One or more computer readable storage media as recited in claim 8, wherein the instructions that cause the one or more processors to create the command provider comprise instructions that cause the one or more processors to instantiate the command provider. 10. One or more computer readable storage media as recited in claim 7, wherein the plurality of instructions further cause the one or more processors to: access a command context; and determine, based at least in part on the command context, which of the plurality of presentation models supported by the command broker to identify to the requestor. 11. One or more computer readable storage media as recited in claim 7, wherein the instructions that cause the one or more processors to negotiate which of the plurality of presentation models is to be used to present the command comprise instructions which cause the one or more processors to receive, from the requestor, an identification of one of the plurality of presentation models. 12. One or more computer readable storage media as recited in claim 7, wherein the requestor comprises the command host. 13. One or more computer readable storage media as recited in claim 7, wherein the plurality of instructions further cause the one or more processors to: expose a modes enumeration; and identify the plurality of presentation models supported by the command broker by returning to the requestor, in response to the requestor invoking the modes enumeration, a list of the plurality of presentation models supported by the command broker. 14. A system including at least one processor, comprising: a command host to provide a workspace where a plurality of user interface commands can be presented; a command broker, communicatively coupled to the command host, to identify a plurality of supported modes for a command, and further to negotiate with the command host to determine which of the plurality of supported modes is to be used for the command, the negotiating including providing a list of the plurality of supported modes and receiving a selection of at least one of the supported modes, the command broker further being created by: identifying an object definition that includes one or more arguments; for each of the one or more arguments that is a non-literal argument, recursively identifying one or more additional object definitions based on the argument; and creating, as the command broker, the objects defined by the identified object definitions; receive a notification of the selected at least one supported modes, the receiving including invocation of a GetProvider method exposed by the command broker and including the selected at least one presentation model as a parameter of the GetProvider method; presenting one or more commands on a computing device; wherein the command broker is an intermediary between the command host and a command provider; and wherein the command provider is the final handler for a particular command. 15. A system as recited in claim 14, further comprising: a plurality of additional command brokers communicatively coupled to the command host, each of the plurality of additional command brokers to identify multiple supported modes for one of a plurality of different commands, and each of the plurality of additional command brokers further to negotiate with the command host to determine which of the multiple supported modes is to be used for the particular command. 16. A system as recited in claim 14, further comprising: a command provider, created by the command broker based on the determined mode to be used for the command, to control actions that are followed when the command is invoked. 17. A system as recited in claim 14, further comprising: a command context, communicatively coupled to the command broker, identifying information regarding the system that can be used by the command broker.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (13)
Hong, Christine M.; Mancuso, Michael Eric; Sugg, Mark Joseph; Vo, Mimi Phuong-Thao, Architecture and definition of an extensible, object-oriented graphical user interface framework for managing and administering heterogenous digital library datastores.
Malamud Mark A. (Seattle WA) Elsbree John E. (Everett WA) Butler Laura J. (Bellevue WA) Barnes ; Jr. David A. (Seattle WA), Context sensitive menu system/menu behavior.
De Armas, Mario E.; Shockley, Edward D., Method and apparatus for software technology injection for operating systems which assign separate process address spaces.
Arellano, Javier B.; Divine, Abha S.; Dobes, Zuzana K.; Liu, Guangtian, System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system.
Prabandham, Harish; Bruner, John D.; Sharma, Rahul; Zhao, Jianliang, Method and apparatus for running different types of applications on a wireless mobile device.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.