Patent ID: 8612892
Filing Date: 2013-12-17
Classification: G06F

Abstract:
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.