IP Library Granted Patent US 9,952,839
Granted Patent B2
US 9,952,839 · App. 14/826,405 · Granted Apr 24, 2018

Layout management in a rapid application development tool

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,952,839
App. No.
14/826,405
Granted
Apr 24, 2018
Kind
B2
Abstract

The present application discloses systems, computer-readable media, and methods for aligning widgets and groups of widgets, and defining relationships between the widgets and groups of widgets. In a first case, a most significant sub-component border determination may be made for each widget. Then, a grouping relationship determined between each of a plurality of the widgets. Finally, for each widget in each determined group, the widgets may be aligned based on the determined most significant sub-component border of each widget in the group. In a second case, connections between widgets, groups of widgets, and/or edges of a page are determined, and an algorithm applied to infer whether a relationship exists, and if it does, to determine whether the relationship is one of a fixed-distance relationship and a proportional-distance relationship.

Claims (62)

1. A computer implemented method comprising:

providing, via a computing device, a graphical development environment depicting a representation of a page, a plurality of user-selectable data-capable widgets, and one or more groups of user-selectable data-capable widgets, each widget comprising a graphical display characteristic and a computer-executable functional characteristic;

identifying for each widget, via the computing device, whether the widget belongs to a group of widgets;

identifying, via the computing device, a first set of connections comprising (i) each connection between each pair of widgets that do not belong to the identified group of widgets, (ii) each connection between each identified group of widgets and each widget that does not belong to the identified group of widgets, and (iii) each connection between the identified groups of widgets;

assigning, via the computing device, an arbitrary default connection weight for each connection in the first set;

raising, via the computing device, the weight of each connection in the first set that attaches to the identified group of widgets;

applying, via the computing device, a multiplier to each connection in the first set relative to a distance that each connection travels;

comparing, via the computing device, the weight of each connection in the first set to a first threshold value;

identifying, via the computing device, a second set of connections comprising those connections in the first set that one of meet the first threshold value or do not meet the first threshold value;

comparing, via the computing device, a weight of each connection in the second set to a second threshold value; and

based on a relationship between the weight of each connection in the second set and the second threshold value, storing each connection in the second set as one of (i) a fixed-distance connection that does not vary based on a size of a screen or window on which the representation of the page is rendered or (ii) a proportional-distance connection that does vary based on the size of the screen or window on which the representation of the page is rendered.

2. The method of claim 1 , further comprising:

determining, via the computing device, positions of at least first and second edges of the page;

identifying, via the computing device, the first set of connections to further include (iii) each connection between each edge and each widget that does not belong to the identified group of widgets and (iv) each connection between each identified group of widgets and each edge; and

raising, via the computing device, the weight of the connection for each connection in the first set that attaches to one of the first and second edges.

3. The method of claim 2 , wherein applying the multiplier comprises dividing a current weight of each connection by a square root of the distance that the connection travels.

4. The method of claim 1 , wherein comparing and storing further comprises:

if the weight of each connection in the second set is one of greater or less than the second threshold value, storing the connection as the fixed-distance connection that does not vary based on the size of the screen or window on which the representation of the page is rendered; and

if the weight of each connection in the second set is another of greater or less than the second threshold value, storing the connection as the proportional-distance connection that does vary based on the size of the screen or window on which the representation of the page is rendered.

5. The method of claim 1 , further comprising:

displaying, in the graphical development environment via the computing device, a visual depiction of each connection in the second set as one of the fixed-distance connection and the proportional-distance connection; and

responsive to receiving an instruction, changing, via the computing device, a type of a particular connection selected from the second set from one of a fixed-type connection or a proportional-type connection to another of the fixed-type connection or the proportional-type connection.

6. The method of claim 1 , wherein applying the multiplier comprises dividing a current weight of each connection by a square root of the distance that the connection travels.

7. The method of claim 1 , further comprising storing each widget, the group of widgets, and the connections in the second set at the computing device as an application representation.

8. The method of claim 7 , further comprising transmitting the representation to a remote computing device.

9. A system, comprising:

a memory;

a processor, coupled to the memory, the processor to:

provide a graphical development environment depicting a representation of a page, a plurality of user-selectable data-capable widgets, and one or more groups of user-selectable data-capable widgets, each widget comprising a graphical display characteristic and a computer-executable functional characteristic;

identify, for each widget whether the widget belongs to a group of widgets;

identify a first set of connections comprising (i) each connection between each pair of widgets that do not belong to the identified group of widgets, (ii) each connection between each identified group of widgets and each widget that does not belong to the identified group of widgets, and (iii) each connection between the identified groups of widgets;

assign, for each connection in the first set, an arbitrary default connection weight;

raise the weight of each connection in the first set that attaches to the identified group of widgets;

apply a multiplier to each connection in the first set relative to a distance that each connection travels;

compare the weight of each connection in the first set to a first threshold value;

identify a second set of connections comprising those connections in the first set that one of meet the first threshold value or do not meet the first threshold value;

compare a weight of each connection in the second set to a second threshold value; and

based on a relationship between the weight of each connection in the second set and the second threshold value, store each connection in the second set as one of (i) a fixed-distance connection that does not vary based on a size of a screen or window on which the representation of the page is rendered or (ii) a proportional-distance connection that does vary based on the size of the screen or window on which the representation of the page is rendered.

10. The system of claim 9 , wherein the processor is further to:

determine positions of at least first and second edges of a web page;

identify the first set of connections further to further include (iii) each connection between each edge and each widget that does not belong to the identified group of widgets and (iv) each connection between each identified group of widgets and each edge; and

for each connection in the first set that attaches to one of the first and second edges, raise the weight of the connection.

11. The system of claim 9 , wherein to apply the multiplier, the processor to divide a current weight of each connection by a square root of the distance that the connection travels.

12. The system of claim 9 , wherein to compare and to store, the processor to:

if the weight of each connection in the second set is one of greater or less than the second threshold value, store the connection as the fixed-distance connection that does not vary based on the size of the screen or window on which the representation of the page is rendered; and

if the weight of each connection in the second set is another of greater or less than the second threshold value, store the connection as the proportional-distance connection that does vary based on the size of the screen or window on which the representation of the page is rendered.

13. A non-transitory computer readable medium having instructions stored thereon that, in response to execution by a computing device, cause the computing device to perform operations comprising:

providing a graphical development environment depicting a representation of a page, a plurality of user-selectable data-capable widgets, and one or more groups of user-selectable data-capable widgets, each widget comprising a graphical display characteristic and a computer-executable functional characteristic;

identifying for each widget whether the widget belongs to a group of widgets;

identifying a first set of connections comprising (i) each connection between each pair of widgets that do not belong to the identified group of widgets, (ii) each connection between each identified group of widgets and each widget that does not belong to the identified group of widgets, and (iii) each connection between the identified groups of widgets;

assigning an arbitrary default connection weight for each connection in the first set;

raising the weight of each connection in the first set that attaches to the identified group of widgets;

applying a multiplier to each connection in the first set relative to a distance that each connection travels;

comparing the weight of each connection in the first set to a first threshold value;

identifying a second set of connections comprising those connections in the first set that one of meet the first threshold value or do not meet the first threshold value;

comparing a weight of each connection in the second set to a second threshold value; and

based on a relationship between the weight of each connection in the second set and the second threshold value, storing each connection in the second set as one of (i) a fixed-distance connection that does not vary based on a size of a screen or window on which the representation of the page is rendered or (ii) a proportional-distance connection that does vary based on the size of the screen or window on which the representation of the page is rendered.

14. The non-transitory computer readable medium of claim 13 , the operations further comprising:

determining, via the computing device, positions of at least first and second edges of the page;

identifying, via the computing device, the first set of connections to further include (iii) each connection between each edge and each widget that does not belong to the identified group of widgets and (iv) each connection between each identified group of widgets and each edge; and

raising, via the computing device, the weight of the connection for each connection in the first set that attaches to one of the first and second edges.

15. The non-transitory computer readable medium of claim 14 , wherein applying the multiplier comprises dividing a current weight of each connection by a square root of the distance that the connection travels.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2018
From: QUINE, DANIEL NICHOLAS
To: GOOGLE INC.
Reel/Frame 044824/0330 →
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →