IP Library Granted Patent US 11,816,302
Granted Patent B2
US 11,816,302 · App. 17/381,265 · Granted Nov 14, 2023

Techniques for user interface layouts

Inventors: Robert Fitzgerald (Cork, IE); David P. Moloney (Cork, IE)
Assignee: EMC IP Holding Company LLC
G06F3/0481G06F3/04855G06T11/206G06T2200/24
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 11,816,302
App. No.
17/381,265
Granted
Nov 14, 2023
Kind
B2
Abstract

Techniques for rendering a user interface may include: receiving a view area height and width, a first integer denoting a count of objects to be displayed, a minimum row height, and a minimum object width; determining a maximum allowed number of columns in accordance with the view area width and minimum object width; determining a current number of rows in accordance with the view area height, a current number of columns, the minimum row height, and the first integer; determining whether the current number of rows and columns denote an optimized layout of the objects, wherein the optimized layout is in accordance with a plurality of conditions; and responsive to determining the current number of rows and columns denote an optimized layout, rendering the plurality of objects in a view area in accordance with the current number of rows and columns.

Claims (60)

1. A computer-implemented method of rendering a user interface (UI) comprising:

receiving a plurality of inputs including a view area height, a view area width, a first integer denoting a count of a plurality of objects to be displayed, a minimum row height denoting a minimum object height, and a minimum object width, wherein a view area in which the plurality of objects is to be displayed has a height denoted by the view area height and a width denoted by the view area width;

determining a maximum allowed number of columns in accordance with the view area width and minimum object width;

determining a current number of rows in accordance with the view area height, a current number of columns, the minimum row height, and the first integer denoting a count of a plurality of objects to be displayed;

determining whether the current number of rows and the current number of columns denote an optimized layout of the plurality of objects, wherein the optimized layout is in accordance with a plurality of conditions; and

responsive to determining the current number of rows and the current number of columns denote an optimized layout, rendering the plurality of objects in the view area in accordance with the current number of rows and the current number of columns.

2. The computer-implemented method of claim 1 , further comprising:

responsive to determining the current number of rows and the current number of columns do not denote an optimized layout, performing first processing including:

incrementing the current number of columns by one (1);

determining whether the current number of columns is less than or equal to the maximum allowed number of columns;

responsive to determining the current number of columns is less than or equal to the maximum allowed number of columns, determining an updated value for the current number of rows in accordance with the view area height, the current number of columns, the minimum row height, and the first integer denoting a count of a plurality of objects to be displayed; and

responsive to determining the current number of columns is not less than or equal to the maximum allowed number of columns, determining that there is no optimized layout that meets the plurality of conditions, wherein the plurality of conditions includes a first condition that the number of objects be included in a layout in the view area without scrolling, a second condition that a number of columns of a layout not exceed the maximum allowed number of columns, and a third condition that each displayed object of the view area in accordance with a layout have an associated width dimension that is not less than the minimum object width and an associated height dimension that is not less than the minimum row height denoting the minimum object height.

3. The computer-implemented method of claim 1 , wherein said determining the current number of rows in accordance with the view area height, the current number of columns, the minimum row height, and the first integer denoting a count of a plurality of objects to be displayed, further comprises:

determining a first amount denoting a number of objects visible in a single view without scrolling, wherein the first amount is a mathematical product of a current number of rows and a current number of columns;

determining whether the first integer is less than or equal to the first amount; and

responsive to determining the first integer is less than or equal to the first amount, determining the current number of columns and the current number of rows denote an optimized layout.

4. The computer-implemented method of claim 3 , wherein responsive to determining the first integer is not less than or equal to the first amount, performing first processing including:

incrementing the current number of rows by one (1); and

determining whether a current row height is greater than or equal to the minimum row height, wherein the current row height is the view area height divided by the current number of rows.

5. The computer-implemented method of claim 4 , wherein the first processing further includes:

responsive to determining the current row height is greater than or equal to the minimum row height, performing second processing, and wherein said second processing comprises:

assigning the first amount, that denotes the number of objects visible without scrolling, an updated value that is a mathematical product of the current number of rows and the current number of columns;

determining whether the first integer is less than or equal to the first amount; and

responsive to determining the first integer is less than or equal to the first amount, determining that the current number of columns and the current number of rows denote an optimized layout.

6. The computer-implemented method of claim 5 , wherein the first processing further comprises:

responsive to determining the current row height is not greater than or equal to the minimum row height, performing third processing, wherein said third processing includes:

determining the current number of columns and the current number of rows do not denote an optimized layout;

incrementing the current number of columns by one (1);

determining whether the current number of columns is less than or equal to the maximum allowed number of columns;

responsive to determining the current number of columns is less than or equal to the maximum allowed number of columns, determining an updated value for the current number of rows in accordance with the view area height, the current number of columns, the minimum row height, and the first integer denoting a count of a plurality of objects to be displayed; and

responsive to determining the current number of columns is not less than or equal to the maximum allowed number of columns, determining that there is no optimized layout that meets the plurality of conditions, wherein the plurality of conditions includes a first condition that the number of objects be included in a layout in the view area, a second condition that a number of columns of a layout not exceed the maximum allowed number of columns, and a third condition that each displayed object have dimension that are not less than the minimum object width and the minimum row height denoting the minimum object height.

7. The computer-implemented method of claim 1 , wherein the plurality of objects is rendered in the view area in a layout with the current number of rows and the current number of columns, and wherein the current number of rows is greater than 1 and wherein the current number of columns is greater than 1.

8. The computer-implemented method of claim 7 , further comprising:

responsive to determining a last row of the current number of rows rendered includes more than 1 object, determining a second object width in accordance with dividing the view area width by a number of objects in the last row; and

rendering each object of the last row to have a width equal to the second object width.

9. The computer-implemented method of claim 8 , further comprising:

responsive to determining the last row includes a single object, rendering the single object of the last row to have a width equal to the view area width.

10. The computer-implemented method of claim 1 , wherein the minimum row height denotes a first number of pixels, the minimum object width denotes a second number of pixels, the view area height denotes third number of pixels, and the view area width denotes a fourth number of pixels.

11. The computer-implemented method of claim 10 , wherein the plurality of objects includes a plurality of charts.

12. The computer-implemented method of claim 10 , wherein the plurality of objects includes a plurality of tables.

13. The computer-implemented method of claim 1 , wherein the computer implemented method is performed in response to an occurrence of a trigger condition.

14. The computer-implemented method of claim 13 , wherein the trigger condition is a UI interaction that results in resizing the view area.

15. The computer-implemented method of claim 14 , wherein the trigger condition includes adding one or more objects to the view area.

16. The computer-implemented method of claim 14 , wherein the trigger condition includes removing one or more objects from the view area.

17. The method of claim 2 , further comprising:

responsive to determining that there is no optimized layout that meets the plurality of conditions, displaying a first portion of the plurality of objects in the view area with a remaining portion of the plurality of objects not visible in the view area, and wherein the remaining portion of the plurality of objects are available for viewing in the view area by scrolling.

18. A system comprising:

one or more processors; and

one or more memories comprising code stored therein that, when executed, perform a method of rendering a user interface (UI) comprising:

receiving a plurality of inputs including a view area height, a view area width, a first integer denoting a count of a plurality of objects to be displayed, a minimum row height denoting a minimum object height, and a minimum object width, wherein a view area in which the plurality of objects is to be displayed has a height denoted by the view area height and a width denoted by the view area width;

determining a maximum allowed number of columns in accordance with the view area width and minimum object width;

determining a current number of rows in accordance with the view area height, a current number of columns, the minimum row height, and the first integer denoting a count of a plurality of objects to be displayed;

determining whether the current number of rows and the current number of columns denote an optimized layout of the plurality of objects, wherein the optimized layout is in accordance with a plurality of conditions; and

responsive to determining the current number of rows and the current number of columns denote an optimized layout, rendering the plurality of objects in the view area in accordance with the current number of rows and the current number of columns.

19. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of rendering a user interface (UI) comprising:

receiving a plurality of inputs including a view area height, a view area width, a first integer denoting a count of a plurality of objects to be displayed, a minimum row height denoting a minimum object height, and a minimum object width, wherein a view area in which the plurality of objects is to be displayed has a height denoted by the view area height and a width denoted by the view area width;

determining a maximum allowed number of columns in accordance with the view area width and minimum object width;

determining a current number of rows in accordance with the view area height, a current number of columns, the minimum row height, and the first integer denoting a count of a plurality of objects to be displayed;

determining whether the current number of rows and the current number of columns denote an optimized layout of the plurality of objects, wherein the optimized layout is in accordance with a plurality of conditions; and

responsive to determining the current number of rows and the current number of columns denote an optimized layout, rendering the plurality of objects in the view area in accordance with the current number of rows and the current number of columns.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2021
From: FITZGERALD, ROBERT; MOLONEY, DAVID P.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056928/0618 →
Continuity (1)
Related Publication 20230025614A1 · Jan 26, 2023