Automated arrangement of nodes, representing a software application, in a graphical user interface
AssigneeBoomi, LP
InventorsThomas M. Fullalove, Benjamin K. Fullalove
Life of this patent
Estimating the term…
Abstract
Some integration services provide a virtual canvas on which users can construct software applications (e.g., implementing workflow automation processes), represented as nodes and edges in a graph, using drag-and-drop operations. These graphs can become quite complex and disorganized. To complicate matters, the graphs may comprise groups of nodes that are managed as a single unit and need to be preserved. Standard graph arrangement algorithms are not applicable to graphs with groups. Accordingly, embodiments automatically rearrange graphs to optimize their arrangements, while accounting for groups, using a recursive, multi-level automated-arrangement process.
Claims12
A method comprising using at least one hardware processor to:
- generate a graphical user interface comprising a virtual canvas;
- receive a placement on the virtual canvas of a plurality of nodes in a graph, wherein each node is a visual representation of a component of a software application;
- receive a placement on the virtual canvas of one or more edges in the graph, wherein each edge is a visual representation of a connection between two components of the software application;
- receive an automated-arrangement operation;
- and
- in response to receiving the automated-arrangement operation,
- determine whether or not the graph contains at least one group of two or more nodes,
- when determining that the graph contains at least one group, until no groups remain,
- select a deepest group in the graph,
- apply a graph arrangement algorithm to the selected group to produce an arranged group,
- calculate dimensions of the arranged group, and
- replace the group in the graph with a mock node having the calculated dimensions,
- apply the graph arrangement algorithm to an entirety of the graph,
- after applying the graph arrangement algorithm to the entirety of the graph, replace each mock node in the graph with the group that was replaced by that mock node to produce a rearranged graph, and
- update the placements on the virtual canvas of the plurality of nodes and the one or more edges, according to the rearranged graph.
A system comprising:
- at least one hardware processor;
- and
- software that is configured to, when executed by the at least one hardware processor,
- generate a graphical user interface comprising a virtual canvas,
- receive a placement on the virtual canvas of a plurality of nodes in a graph, wherein each node is a visual representation of a component of a software application,
- receive a placement on the virtual canvas of one or more edges in the graph, wherein each edge is a visual representation of a connection between two components of the software application,
- receive an automated-arrangement operation, and
- in response to receiving the automated-arrangement operation,
- determine whether or not the graph contains at least one group of two or more nodes,
- when determining that the graph contains at least one group, until no groups remain,
- select a deepest group in the graph,
- apply a graph arrangement algorithm to the selected group to produce an arranged group,
- calculate dimensions of the arranged group, and
- replace the group in the graph with a mock node having the calculated dimensions,
- apply the graph arrangement algorithm to an entirety of the graph,
- after applying the graph arrangement algorithm to the entirety of the graph, replace each mock node in the graph with the group that was replaced by that mock node to produce a rearranged graph, and
- update the placements on the virtual canvas of the plurality of nodes and the one or more edges, according to the rearranged graph.
A non-transitory computer-readable medium having instructions stored therein, wherein the instructions, when executed by a processor, cause the processor to:
- generate a graphical user interface comprising a virtual canvas;
- receive a placement on the virtual canvas of a plurality of nodes in a graph, wherein each node is a visual representation of a component of a software application;
- receive a placement on the virtual canvas of one or more edges in the graph, wherein each edge is a visual representation of a connection between two components of the software application;
- receive an automated-arrangement operation;
- and
- in response to receiving the automated-arrangement operation,
- determine whether or not the graph contains at least one group of two or more nodes,
- when determining that the graph contains at least one group, until no groups remain,
- select a deepest group in the graph,
- apply a graph arrangement algorithm to the selected group to produce an arranged group,
- calculate dimensions of the arranged group, and
- replace the group in the graph with a mock node having the calculated dimensions,
- apply the graph arrangement algorithm to an entirety of the graph,
- after applying the graph arrangement algorithm to the entirety of the graph, replace each mock node in the graph with the group that was replaced by that mock node to produce a rearranged graph, and
- update the placements on the virtual canvas of the plurality of nodes and the one or more edges, according to the rearranged graph.
Dependencies are inferred from the claim text.