IP Library Granted Patent US 8,612,892
Granted Patent B2
US 8,612,892 · App. 12/487,253 · Granted Dec 17, 2013

Incremental run-time layout composition

Inventors: Stephen M. Danton (Seattle, WA); Yuri Rychikhin (Seattle, WA); Jordan C. Sehn (Redmond, WA); Scott M. Roberts (Bothell, WA); Florian Voss (Seattle, WA); Laurent Mollicone (Kirkland, WA); William A. Manis (Sammamish, WA)
Assignee: Microsoft Corporation
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 8,612,892
App. No.
12/487,253
Granted
Dec 17, 2013
Kind
B2
Abstract

Performing incremental runtime composition. A method includes a computing system receiving a user input gesture modifying a diagram displayed on a diagram surface. The diagram includes a first element, a second element, and a plurality of elements connected to the second element laid out in a particular layout pattern with respect to the second element. The method further includes interpreting the user input gesture to be a gesture creating a graph by connecting the first element to the second element of the diagram. The method further includes performing an auto layout of the diagram by automatically, and without user intervention, repositioning the second element with respect to the first element but without substantially repositioning the plurality of elements with respect to the second element by moving the second element and the plurality of elements as an atomic unit.

Claims (49)

1. In a computing environment, a method of performing diagram layouts, the method comprising a computing system performing the following:

receiving one or more user input gestures modifying a diagram displayed on a diagram surface, the diagram comprising a first element, a second element, and a plurality of elements connected to the second element laid out in a particular layout pattern with respect to the second element;

interpreting the one or more user input gestures to be at least one of a gesture connecting the first element to the second element of the diagram or a gesture dropping an element onto the diagram surface; and

when the one or more gestures is interpreted to be a gesture dropping an element onto the diagram surface, then treating the element as a new vertex in a model space of the diagram surface and treating the element as a root vertex of a new directed tree in a view state space, and when the one or more gestures is interpreted to be a gesture creating a connection connecting the first element to the second element of the diagram, then performing the following:

referencing at least one of recognized patterns or rules to determine if the connection results in a layout that could fit into the at least one of recognized patterns or rules, and when the connection results in a layout that could fit into the at least one of recognized patterns or rules, then performing an auto-layout on the layout by automatically, and without user intervention, repositioning the second element with respect to the first element but without substantially repositioning the plurality of elements with respect to the second element by moving the second element and the plurality of elements as an atomic unit to cause the auto-layout to conform to the at least one of recognized patterns or rules and adding the auto-layout as a declarative object to a view state such that the auto-layout can be used as an atomic unit in subsequent incremental layout operations taking into account additional user gestures on the diagram surface, else treating the connection as a back link.

2. The method of claim 1 , wherein the method further includes:

storing a first tree for the first element in the view state database;

storing a second tree for the second element and the plurality of elements in the view state database; and

storing a new tree for the graph, corresponding to the first element, second element and the plurality of elements in the view state database when the graph matches a recognized rule.

3. The method of claim 2 , the new tree comprising an atomic unit that can be used in subsequent incremental layout operations taking into account additional user gestures on the diagram surface.

4. The method of claim 2 , wherein moving the second element and the plurality of elements as an atomic unit is performed by using an entry in a view state defining the second element and the plurality of elements as an atomic unit that can be used in subsequent incremental layout operations taking into account additional user gestures on the diagram surface.

5. The method of claim 4 , wherein the entry in the view state is defined declaratively.

6. The method of claim 1 , wherein the recognized layout rules or patterns are stored in a mark-up format.

7. The method of claim 1 , wherein the recognized layout rules or patterns are extendable, such that additional layout rules or patterns can be added to the layout rules or patterns after a system including the diagram surface is deployed.

8. The method of claim 1 ,

wherein the backlink is a connection that does not further affect a layout.

9. The method of claim 1 , wherein the method further includes:

receiving a user input gesture modifying a diagram displayed on a diagram surface;

interpreting the user input gesture to be a gesture dropping an element onto the diagram surface;

as a result of the one or more gestures being interpreted to be a gesture dropping a first element onto the diagram surface, performing the following:

displaying the first element on the diagram surface;

treating the first element as the new vertex in the model space of the diagram surface; and

treating the first element as the root vertex of the new directed tree in the view state space;

receiving input connecting the first element to at least one other element in the diagram; and

cleaning the root vertex of the new directed tree structure from the view state space upon detecting that the first element is connected to the at least one other element in the diagram while to still displaying the element on the diagram surface.

10. The method of claim 9 , wherein the view state is stored in a database.

11. The method of claim 9 , further comprising:

receiving another user input gesture which is operable for modifying the diagram displayed on the diagram surface,

interpreting the user input gesture to be a gesture creating a graph by connecting the first element to the second element of the diagram, the second element being connected to a plurality of elements laid out in a particular layout pattern with respect to the second element;

performing the auto layout of the diagram by automatically, and without user intervention, repositioning the second element with respect to the first element but without substantially repositioning the plurality of elements with respect to the second element by moving the second element and the plurality of elements as an atomic unit.

12. The method of claim 11 , further comprising adding the graph to the view state as an atomic unit that can be used in subsequent incremental layout operations taking into account additional user gestures on the diagram surface.

13. The method of claim 1 , wherein moving the second element and the plurality of elements as an atomic unit is performed by using an entry in the view state defining the second element and the plurality of elements as an atomic unit that can be used in subsequent incremental layout operations taking into account additional user gestures on the diagram surface.

14. The method of claim 13 , wherein the entry in the view state is defined declaratively.

15. The method of claim 13 , wherein the view state is stored in a database.

16. The method of claim 1 , wherein the recognized layout rules or patterns are stored in a mark-up format.

17. The method of claim 1 , wherein the recognized layout rules or patterns are extendable, such that additional layout rules or patterns can be added to the layout rules or patterns after a system including the diagram surface is deployed.

18. The method of claim 2 , wherein the method further includes cleaning the first and second trees from the view state database while still continuing to display the first element, the second element and the plurality of elements on the diagram surface.

19. A computing system comprising:

at least one processor; and

one or more storage device having stored computer-executable instructions which, when executed by the at least one processor, implement a method of performing diagram layouts, the method comprising a computing system performing the following:

receiving one or more user input gestures modifying a diagram displayed on a diagram surface, the diagram comprising a first element, a second element, and a plurality of elements connected to the second element laid out in a particular layout pattern with respect to the second element;

interpreting the one or more user input gestures to be at least one of a gesture connecting the first element to the second element of the diagram or a gesture dropping an element onto the diagram surface; and

when the one or more gestures is interpreted to be a gesture dropping an element onto the diagram surface, then treating the element as a new vertex in a model space of the diagram surface and treating the element as a root vertex of a new directed tree in a view state space, and when the one or more gestures is interpreted to be a gesture creating a connection connecting the first element to the second element of the diagram, then performing the following:

referencing at least one of recognized patterns or rules to determine if the connection results in a layout that could fit into the at least one of recognized patterns or rules, and when the connection results in a layout that could fit into the at least one of recognized patterns or rules, then performing an auto-layout on the layout by automatically, and without user intervention, repositioning the second element with respect to the first element but without substantially repositioning the plurality of elements with respect to the second element by moving the second element and the plurality of elements as an atomic unit to cause the auto-layout to conform to the at least one of recognized patterns or rules and adding the auto-layout as a declarative object to a view state such that the auto-layout can be used as an atomic unit in subsequent incremental layout operations taking into account additional user gestures on the diagram surface, else treating the connection as a back link.

20. One or more hardware storage devices having stored computer-executable instructions which, when executed by the at least one processor, implement a method of performing diagram layouts, the method comprising a computing system performing the following:

receiving one or more user input gestures modifying a diagram displayed on a diagram surface, the diagram comprising a first element, a second element, and a plurality of elements connected to the second element laid out in a particular layout pattern with respect to the second element;

interpreting the one or more user input gestures to be at least one of a gesture connecting the first element to the second element of the diagram or a gesture dropping an element onto the diagram surface; and

when the one or more gestures is interpreted to be a gesture dropping an element onto the diagram surface, then treating the element as a new vertex in a model space of the diagram surface and treating the element as a root vertex of a new directed tree in a view state space, and when the one or more gestures is interpreted to be a gesture creating a connection connecting the first element to the second element of the diagram, then performing the following:

referencing at least one of recognized patterns or rules to determine if the connection results in a layout that could fit into the at least one of recognized patterns or rules, and when the connection results in a layout that could fit into the at least one of recognized patterns or rules, then performing an auto-layout on the layout by automatically, and without user intervention, repositioning the second element with respect to the first element but without substantially repositioning the plurality of elements with respect to the second element by moving the second element and the plurality of elements as an atomic unit to cause the auto-layout to conform to the at least one of recognized patterns or rules and adding the auto-layout as a view state such that the auto-layout can be used in subsequent incremental layout operations taking into account additional user gestures on the diagram surface, else treating the connection as a back link.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2009
From: DANTON, STEPHEN M.; RYCHIKHIN, YURI; SEHN, JORDAN C.; ROBERTS, SCOTT M.; VOSS, FLORIAN; MOLLICONE, LAURENT; MANIS, WILLIAM A.
To: MICROSOFT CORPORATION
Reel/Frame 022844/0981 →
Continuity (1)
Related Publication 20100325587A1 · Dec 23, 2010