Scope-Based Extensibility for Control Surfaces
First Claim
1. A method of implementing a customized control surface, the method comprising:
- automatically retrieving, by a server computing system, a base definition file, the base definition file comprising a first hierarchical set of elements, the first hierarchical set of elements defining a default control surface, the default control surface comprising a plurality of user-selectable controls;
automatically retrieving, by the server computing system, an extension definition file, the extension definition file comprising a second hierarchical set of elements, the second hierarchical set of elements defining a customized control surface based on the default control surface;
automatically generating, by the server computing system, a modified version of the base definition file in which each element in the base definition file having an identifier corresponding to an identifier of an element in the extension definition file is modified in a way indicated by the element in the extension definition file;
automatically using, by the server computing system, the modified version of the base definition file to generate a requested control surface resource; and
automatically sending, by the server computing system, the control surface resource to a client computing system, the client computing system configured to use the control surface resource to present the customizable control surface in a user interface.
2 Assignments
0 Petitions
Accused Products
Abstract
A server computing system stores a base definition file containing a hierarchy of elements defining a default control surface. In addition, the server computing system stores an extension definition file containing one or more elements defining a customized control surface based on the default control surface. The server computing system generates a modified version of the base definition file in which each element in the base definition file having an identifier corresponding to an identifier of an element in the extension definition file is modified in a way indicated by the element in the extension definition file. The server computing system uses the modified version of the base definition file to generate a resource used by a client computing system to present the customized control surface in a web page.
-
Citations
20 Claims
-
1. A method of implementing a customized control surface, the method comprising:
-
automatically retrieving, by a server computing system, a base definition file, the base definition file comprising a first hierarchical set of elements, the first hierarchical set of elements defining a default control surface, the default control surface comprising a plurality of user-selectable controls; automatically retrieving, by the server computing system, an extension definition file, the extension definition file comprising a second hierarchical set of elements, the second hierarchical set of elements defining a customized control surface based on the default control surface; automatically generating, by the server computing system, a modified version of the base definition file in which each element in the base definition file having an identifier corresponding to an identifier of an element in the extension definition file is modified in a way indicated by the element in the extension definition file; automatically using, by the server computing system, the modified version of the base definition file to generate a requested control surface resource; and automatically sending, by the server computing system, the control surface resource to a client computing system, the client computing system configured to use the control surface resource to present the customizable control surface in a user interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An electronic computing system comprising:
-
a processing unit; and a data storage system storing; a base definition file comprising a first hierarchical set of elements, the first hierarchical set of elements defining a default control surface, the default control surface comprising a plurality of user-selectable controls; an extension definition file comprising a second hierarchical set of elements, the second hierarchical set of elements defining a customized control surface based on the default control surface; computer-executable instructions that, when executed by the processing unit, cause the electronic computing system to; receive a resource request sent by a client computing system, the resource request specifying a resource identifier of a control surface resource; automatically identify, in response to receiving the resource request, the extension definition file from among a plurality of extension definition files; automatically generate a modified version of the base definition file in which each element in the base definition file having an identifier corresponding to an identifier of an element in the extension definition file is modified in a way indicated by the element in the extension definition file; automatically use the modified version of the base definition file to generate the control surface resource; and automatically send the control surface resource to the client computing system, the client computing system configured to use the control surface resource to present the customized control surface in a user interface. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer-readable data storage medium storing instructions that, when executed by an electronic computing system, cause the electronic computing system to:
-
store a base definition file comprising a first hierarchical set of elements, the first hierarchical set of elements defining a default control surface, the default control surface comprising a plurality of user-selectable controls; store a plurality of extension definition files, each extension definition file in the plurality of extension definition files comprising hierarchical sets of elements defining customized control surfaces based on the default control surface, the plurality of extension definition files including an applicable extension definition file comprising an applicable hierarchical set of elements, the applicable hierarchical set of elements defining an applicable customized control surface based on the default control surface; receiving, a web page request from a client computing system via an electronic communication network, the web page request including a resource identifier of a web page; send, in response to the web page request, the web page to the client computing system via the electronic communication network, the web page including scripts configuring the client computing system to send a resource request to the electronic computing system; receive the resource request from the client computing system via an electronic communication network, the resource request specifying a resource identifier of the control surface resource; automatically identify, in response to receiving the resource request, the applicable extension definition file from among the plurality of extension definition files; automatically generate a base parse tree, each node in the base parse tree representing an element in the first hierarchical set of elements, each node in the base parse tree linked together to represent parent-child relationships among the elements in the first hierarchical set of elements; automatically generate an extension parse tree, the extension parse tree comprising a second set of nodes, each node in the extension parse tree representing an element in the applicable hierarchical set of elements, each node in the extension parse tree linked together to represent parent-child relationships among the elements in the applicable hierarchical set of elements; automatically push a reference to a root node of the base parse tree onto a node stack; automatically determine whether the node stack is empty; automatically pop from the node stack a reference to a current node in the base parse tree, the electronic computing system automatically popping the reference to the current node in response to determining that the node stack is not empty; automatically determine whether an identifier of the current node corresponds to an identifier of a corresponding node in the extension parse tree; automatically push, in response to determining that the identifier of the current node does not correspond to an identifier of any node in the extension parse tree, references to each child node of the current node onto the node stack; automatically determine, in response to determining that the identifier of the current node corresponds to the identifier of the corresponding node, whether an action indicated by the corresponding node is an add child action; automatically add, in response to determining that the action indicated by the corresponding node is an add child action, a subtree of the corresponding node to the base parse tree as a child of the current node; push, in response to determining that the action indicated by the corresponding node is an add child action, references to each child node of the current node onto the node stack; automatically determine, in response to determining that the identifier of the current node corresponds to the identifier of the corresponding node, whether the action indicated by the corresponding node is a remove action; automatically remove, in response to determining that the action indicated by the corresponding node is a remove action, a subtree of the current node from the base parse tree; automatically determine, in response to determining that the identifier of the current node corresponds to the identifier of the corresponding node, whether the action indicated by the corresponding node is a replace action; automatically replace, in response to determining that the action indicated by the corresponding node is a replace action, the current node with the corresponding node without replacing the subtree of the current node with the subtree of the corresponding node; push, in response to determining that the action indicated by the corresponding node is a replace action, references to each child node of the current node onto the node stack; automatically determine, in response to determining that the identifier of the current node corresponds to the identifier of the corresponding node, whether the action indicated by the corresponding node is a replace subtree action; automatically replace, in response to determining that the action indicated by the corresponding node is a replace subtree action, the subtree of the current node with the subtree of the corresponding node; automatically push, in response to determining that the action indicated by the corresponding node is a replace subtree action, references to each child node of the corresponding node onto the node stack; automatically use, in response to determining that the node stack is empty, the base parse tree to generate the control surface resource; and automatically send the control surface resource to the client computing system, the client computing system configured to use the control surface resource to present the customized control surface in the web page.
-
Specification