IP Library Granted Patent US 9,857,947
Granted Patent B2
US 9,857,947 · App. 14/312,979 · Granted Jan 2, 2018

Metadata driven dialogs

Inventors: Anusha Shankar (Woodinville, WA); Bharath Swaminathan (Renton, WA); Zhi J. Zhao (Sammamish, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0484G06F8/38G06F9/4443
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,857,947
App. No.
14/312,979
Granted
Jan 2, 2018
Kind
B2
Abstract

Dialog metadata is used to generate a metadata driven dialog definition. The metadata can define logic that is run on the dialog, and customizations to the dialog are made by modifying the dialog metadata.

Claims (77)

1. A computer-implemented method, comprising:

generating, by a client device, a user interface display within an application context of an application;

receiving, by the client device, a metadata representation that defines a layout of controls on a dialog, wherein the metadata representation comprises logic metadata identifying logic executable on the dialog;

providing, from the application to the dialog, an input parameter through a dialog application programming interface (API) associated with the dialog, the input parameter orresponding to the application context;

generating, by the client device, the dialog based on the metadata representation, wherein the dialog

comprises the controls in accordance with the defined layout and

includes dialog content and data bound to the dialog based on the input parameter provided through the dialog API;

rendering, by the client device, the dialog within the application context such that the dialog overlays at least a portion of the user interface display;

receiving, by the client device, a user input through the dialog rendered within the application context;

generating an output parameter by executing the logic based on the user input; and

providing, from the dialog to the application, the output parameter through the dialog API.

2. The computer-implemeted method of claim 1 wherein the user interface display comprises an application page of the application and the dialog is rendered such that the dialog overlays at least a portion of the application page.

3. The computer-implemented method of claim 1 wherein the logic metadata defines functionality of the dialog.

4. The computer-implemented mehtod of claim 3 wherein the metadata representation comprises:

data binding metadata indicative of one or more data sources bound to the controls on the dialog.

5. The computer-implemented method of claim 1 , wherein receiving a metadata representation comprises:

receiving, by the client device, the metadata representation from a computing system that is remote the client device.

6. The computer-implemented method of claim 1 wherein receiving a metadata representation comprises:

receiving a markup language representation of the dialog.

7. The computer-implemented method of claim 6 wherein receiving a markup language representation of the dialog comprises;

receiving an XML representation of the dialog.

8. A computer-implemented method, comprising:

obtaining a metadata definition that defines a layout of controls on a dialog and logic to be executed on the dialog, the dialog being associated with a parent page of an application in a computer system, the parent page being indicative of an application context;

generating a representation of a dialog customization user interface display with a dialog customization user input mechanism;

receiving an indication of user actuation of the dialog customization user input mechanism;

based on the indication of user actuation of the dialog customization user input mechanism, defining a customization to at least one of the layout of the dialog or the logic to be executed on the dialog;

based on the defined customization and the application context, modifying the metadata definition;

providing, from the application to the dialog, an input parameter through a dialog application programming interface (API) associated with the dialog, the input parameter corresponding to the application context;

generating the dialog based on the modified metadata definition, wherein the dialog comprises controls in accordance with the defined layout and includes dialog content and data bound to the dialog based on the input parameter provided through the dialog API;

rendering the dialog within the application context such that the dialog overlays at least a portion of the parent page;

receiving a user input through the dialog; and

providing, from the dialog to the application, an output parameter through the dialog API, the output parameter being indicative of logic executed on the dialog based on the user input.

9. The computer-implemented method of claim 8 and further comprising:

generating a representation of a dialog definition user interface display comprising a dialog type selection user input mechanism;

receiving an indication of user actuation of the dialog type selection user input mechanism;

based on the indication of user actuation of the dialog type selection user input mechanism, define a dialog type for the dialog; and

generate the metadata definition based on the dialog type.

10. The computer-implemented method of claim 9 wherein generating a representation of a dialog definition user interface display comprises:

generating a representation of a set of dialog type selection user input mechanisms;

receiving an indication of user actuation of a particular one of dialog type selection user input mechanisms;

in response to the indication of user actuation of the particular dialog type selection user input mechanism, selecting a particular dialog type and generating a representation of a configuration display with a configuration user input mechanism;

receiving an indication of user actuation of the configuration user input mechanism; and

based on the indication of user actuation of the configuration user input mechanism, configuring a dialog of a type corresponding to the particular dialog type.

11. The computer-implemented method of claim 9 wherein generating a representation of a dialog definition user interface display comprises:

generating a representation of a control selection user input mechanism;

receiving an indication of user actuation of the control selection user input mechanism; and

based on the indication of user actuation of the control selection user input mechanism, selecting a control on the dialog.

12. The computer-implemented method of claim 9 wherein generating a representation of a dialog definition user interface display comprises:

generating a representation of a logic definition user input mechanism;

receiving an indication of user actuation of the logic definition user input mechanism; and

based on the indication of user actuation of the logic definition user input mechanism, defining logic to be executed on the dialog.

13. The computer-implemented method of claim 9 wherein generating a representation of a dialog definition user interface display comprises:

generating a representation of a data binding user input mechanism;

receiving an indication of user actuation of the data binding user input mechanism; and

based on the indication of user actuation of the data binding user input mechanism, identifying a data binding that binds data to the dialog.

14. A computer system, comprising:

a processor; and

memory storing instructions executable by the processor, wherein the instructions configure the computer system to provide:

a dialog definition system configured to:

generate a representation of a dialog definition user interface display with a dialog definition user input mechanism;

receive an indication of user actuation of the dialog definition user input mechanism; and

based on the indication of user actuation of the dialog definition user input mechanism, generate a metadata representation that defines a layout of control on a dialog, and includes logic metadaata identifying logic executable on the dialog; and

a user interface component configured to:

generate a user interface display within an application context of an application;

receive a request to render the dialog;

based on the request, access the metadata representation;

send, from the application to the dialog, an application parameter through a dialog application programming interface (API), the application parameter corresponding to the application context; and

render the dialog based on the metadata representation, wherein the rendered dialog comprises the controls in accordance with the defined layout and dialog content and data bound to the dialog based on the application parameter, wherein the dialog is rendered such that the dialog overlays the user interface display;

receive a user input through the rendered dialog;

execute the logic, on the dialog, based on the user input; and

receive a result from the dialog through the API, wherein the result is indicative of the logic executed on the dialog.

15. The computer system of claim 14 wherein the dialog is rendered on an application page of the application.

16. The computer system of claim 14 wherein the dialog definition user input mechanism comprises a logic user input mechanism configured to receive an indication of a user input defining logic that is run on the dialog.

17. The computer system of claim 16 wherein the dialog definition user input mechanism comprises a control definition user input mechanism configured to receive an indication of a user input defining a control on the dialog.

18. The computer system claim 17 wherein the dialog definition user input mechanism comprises a data binding user input mechanism configured to receive an indication of a user input defining a data source bound to the dialog.

19. The computer-implemented method of claim 1 , wherein rendering the dialog further comprises:

rendering the dialog within the application context such that the dialog overlays a parent page displayed on the user interface display while maintaining the application context.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2014
From: SHANKAR, ANUSHA; SWAMINATHAN, BHARATH; ZHAO, ZHI J.
To: MICROSOFT CORPORATION
Reel/Frame 033173/0828 →
Continuity (2)
Provisional Application 61947165 · Mar 3, 2014
Related Publication 20150248202A1 · Sep 3, 2015