IP Library Granted Patent US 9,692,810
Granted Patent B2
US 9,692,810 · App. 14/249,089 · Granted Jun 27, 2017

Dynamic user interface layout algorithm

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,692,810
App. No.
14/249,089
Granted
Jun 27, 2017
Kind
B2
Abstract

The present disclosure describes methods, systems, and computer program products for generating user interface layouts. One computer-implemented method includes dividing an available vertical space associated with a graphical user interface into a plurality of allowed vertical space allocations based on a priority of a plurality of data display fields, calculating, by a computer, slack following each data display field expanding to fill an allowed vertical space allocation associated with the data display fields, allocating the slack among the plurality of data display fields, re-calculating, by a computer, slack following allocation of slack among the plurality of data display fields, and finalizing display of the plurality of data display elements in the graphical user interface.

Claims (37)

1. A computer-implemented method comprising:

dividing an available vertical space associated with a graphical user interface (GUI) into a plurality of allowed vertical space allocations, wherein each allowed vertical space allocation specifies how much vertical space each data display field of a plurality of data display fields has to display itself in the GUI, wherein the allowed vertical space allocation is based on a priority assigned to each data display field of the plurality of data display fields, and wherein each allowed vertical space allocation is proportional to the priority assigned to the data display field in relation to the priority assigned to other data display fields;

calculating, by a computer, slack following each data display field expanding to fill an allowed vertical space allocation associated with the plurality of data display fields;

allocating the slack among the plurality of data display fields;

re-calculating, by a computer, slack following allocation of slack among the plurality of data display fields; and

finalizing display of the plurality of data display elements in the GUI.

2. The method of claim 1 , wherein the calculated slack is either positive or negative.

3. The method of claim 1 , further comprising requesting, for calculated positive slack, that each data display field resizes from highest priority to lowest priority to expand into a vertical space including its current size, remaining allowed vertical space allocation, and determined slack.

4. The method of claim 1 , further comprising requesting, for calculated negative slack, that each data display field resizes from lowest priority to highest priority to shrink into a vertical space including its current size minus the determined slack.

5. The method of claim 1 , further comprising determining whether the plurality of data display elements need to be resized based on the re-calculated slack.

6. The method of claim 1 , further comprising setting a horizontal or a vertical tab value to align data display fields on the GUI.

7. The method of claim 1 , further comprising hiding a data display element if negative slack remains following re-calculating slack.

8. A non-transitory, computer-readable medium storing computer-readable instructions executable by a computer and operable to:

divide an available vertical space associated with a graphical user interface (GUI) into a plurality of allowed vertical space allocations, wherein each allowed vertical space allocation specifies how much vertical space each data display field of a plurality of data display fields has to display itself in the GUI, wherein the allowed vertical space allocation is based on a priority assigned to each data display field of the plurality of data display fields, and wherein each allowed vertical space allocation is proportional to the priority assigned to the data display field in relation to the priority assigned to other data display fields;

calculate slack following each data display field expanding to fill an allowed vertical space allocation associated with the plurality of data display fields;

allocate the slack among the plurality of data display fields;

re-calculate slack following allocation of slack among the plurality of data display fields; and

finalize display of the plurality of data display elements in the GUI.

9. The method of claim 8 , wherein the calculated slack is either positive or negative.

10. The medium of claim 8 , further comprising instructions to request, for calculated positive slack, that each data display field resizes from highest priority to lowest priority to expand into a vertical space including its current size, remaining allowed vertical space allocation, and determined slack.

11. The medium of claim 8 , further comprising instructions to request, for calculated negative slack, that each data display field resizes from lowest priority to highest priority to shrink into a vertical space including its current size minus the determined slack.

12. The medium of claim 8 , further comprising instructions to determine whether the plurality of data display elements need to be resized based on the re-calculated slack.

13. The medium of claim 8 , further comprising instructions to set a horizontal or a vertical tab value to align data display fields on the GUI.

14. The medium of claim 8 , further comprising instructions to hide a data display element if negative slack remains following re-calculating slack.

15. A system, comprising:

a memory;

at least one hardware processor interoperably coupled with the memory and configured to:

divide an available vertical space associated with a graphical user interface (GUI) into a plurality of allowed vertical space allocations, wherein each allowed vertical space allocation specifies how much vertical space each data display field of a plurality of data display fields has to display itself in the GUI, wherein the allowed vertical space allocation is based on a priority assigned to each data display field of the plurality of data display fields, and wherein each allowed vertical space allocation is proportional to the priority assigned to the data display field in relation to the priority assigned to other data display fields;

calculate slack following each data display field expanding to fill an allowed vertical space allocation associated with the plurality of data display fields;

allocate the slack among the plurality of data display fields;

re-calculate slack following allocation of slack among the plurality of data display fields; and

finalize display of the plurality of data display elements in the GUI.

16. The system of claim 15 , wherein the calculated slack is either positive or negative.

17. The system of claim 15 , further configured to request, for calculated positive slack, that each data display field resizes from highest priority to lowest priority to expand into a vertical space including its current size, remaining allowed vertical space allocation, and determined slack.

18. The system of claim 15 , further configured to request, for calculated negative slack, that each data display field resizes from lowest priority to highest priority to shrink into a vertical space including its current size minus the determined slack.

19. The system of claim 15 , further configured to determine whether the plurality of data display elements need to be resized based on the re-calculated slack.

20. The system of claim 15 , further configured to hide a data display element if negative slack remains following re-calculating slack.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2014
From: PETERS, JOHAN CHRISTIAAN
To: SAP AG
Reel/Frame 032659/0634 →