IP Library Granted Patent US 12,282,988
Granted Patent B1
US 12,282,988 · App. 18/164,432 · Granted Apr 22, 2025

Automated generation of display layouts

Inventors: Simon Tam (San Mateo, CA); Everett Yip (San Jose, CA)
Assignee: SPLUNK INC.
G06T11/60G06F9/451G06F40/103G06F40/106G06F40/154G06T3/20G06T3/40G06F40/197G06T2210/12
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 12,282,988
App. No.
18/164,432
Granted
Apr 22, 2025
Kind
B1
Abstract

A client device executes a display layout application that receives a size of each display item included in a set of display items. The set of display items is associated with a first frame included in a bounding box associated with a display screen. The display layout application determines a reference size based on the sizes of the set of display items. The display layout application determines a size of the first frame based on the reference size. The display layout application determines a position for a first display item included in the set of display items based on a position of the first frame within the bounding box. The display layout application generates a layout for display on the display screen, where the layout includes the first display item.

Claims (75)

1. A computer-implemented method, comprising:

receiving a set of layout instructions and a plurality of display items, wherein:

the set of layout instructions specifies that the plurality of display items are to be stacked in a first frame,

the set of layout instructions and plurality of display items are attached to a shadow node that exists as a standalone node that performs frame calculations but does not directly inherit properties from any operating system,

the set of layout instructions are retrievable from the shadow node when a first display application, operating within a first operating system type, renders the layout,

the set of layout instructions are retrievable from the shadow node when a second display application, operating within a second operating system type, renders the layout, and

the first operating system type is distinct from the second operating system type;

determining a height of the first frame based on a height of a tallest display item in the plurality of display items;

determining a width of the first frame based on a width of a widest display item in the plurality of display items;

determining a position for each of the plurality of display items within the first frame based on one or more alignment parameters associated with the plurality of display items; and

generating a layout for display on a display screen, wherein the layout includes the first frame.

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

retrieving one or more alignment layout properties from the set of layout instructions; and

setting, based on the one or more alignment layout properties, a first position for a first display item in the plurality of display items.

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

determining a second position for a second display item included in the plurality of display items,

wherein the first position for the first display item is further based on a padding distance between the first display item and the second display item.

4. The computer-implemented method of claim 3 , further comprising adjusting the first display item to move to a second position based on a relative position property.

5. The computer-implemented method of claim 2 , wherein the first position for the first display item is further based on a padding distance between the first display item and an edge of the first frame.

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

retrieving one or more style properties from a style property data structure; and

rendering a first display item in the plurality of display items for display within the layout based on the one or more style properties.

7. The computer-implemented method of claim 1 , further comprising determining an available display area associated with a display screen, wherein:

an initial size of the available display area is determined based on dimensions of the display screen; and

generating the layout for display comprises:

generating the first frame;

when the available display area exceeds the first frame, reducing the available display area based on the first frame to generate a modified display area;

determining a frame size of a second frame; and

generating the second frame.

8. The computer-implemented method of claim 7 , wherein the second frame includes a second plurality of display items.

9. The computer-implemented method of claim 7 , further comprising determining, from a data store, the available display area, wherein reducing the available display area is based on a layout property included in the set of layout instructions.

10. The computer-implemented method of claim 1 , wherein after determining the positions for each of the plurality of display items, at least two display items in the plurality of display items overlap.

11. One or more non-transitory computer-readable storage media including instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of:

receiving a set of layout instructions and a plurality of display items, wherein:

the set of layout instructions specifies that the plurality of display items are to be stacked in a first frame,

the set of layout instructions and plurality of display items are attached to a shadow node that exists as a standalone node that performs frame calculations but does not directly inherit properties decoupled from any operating system,

the set of layout instructions are retrievable from the shadow node when a first display application, operating within a first operating system type, renders the layout,

the set of layout instructions are retrievable from the shadow node when a second display application, operating within a second operating system type, renders the layout, and

the first operating system type is distinct from the second operating system type;

determining a height of the first frame based on a height of a tallest display item in the plurality of display items;

determining a width of the first frame based on a width of a widest display item in the plurality of display items;

determining a position for each of the plurality of display items within the first frame based on one or more alignment parameters associated with the plurality of display items; and

generating a layout for display on a display screen, wherein the layout includes the first frame.

12. The one or more non-transitory computer-readable storage media of claim 11 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the steps of:

retrieving one or more alignment layout properties from the set of layout instructions; and

setting, based on the one or more alignment layout properties, a first position for a first display item in the plurality of display items.

13. The one or more non-transitory computer-readable storage media of claim 12 , wherein the first position for the first display item is further based on a padding distance between the first display item and an edge of the first frame.

14. The one or more non-transitory computer-readable storage media of claim 11 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the steps of:

retrieving one or more style properties from a style property data structure; and

rendering a first display item in the plurality of display items for display within the layout based on the one or more style properties.

15. The one or more non-transitory computer-readable storage media of claim 11 , further comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform the step of determining an available display area associated with a display screen, wherein:

an initial size of the available display area is determined based on dimensions of the display screen; and

generating the layout for display comprises:

generating the first frame;

when the available display area exceeds the first frame, reducing the available display area based on the first frame to generate a modified display area;

determining a frame size of a second frame; and

generating the second frame.

16. A computing device, comprising:

a memory that includes instructions; and

a processor that is coupled to the memory and, when executing the instructions:

receives a set of layout instructions and a plurality of display items, wherein:

the set of layout instructions specifies that the plurality of display items are to be stacked in a first frame,

the set of layout instructions and plurality of display items are attached to a shadow node that exists as a standalone node that performs frame calculations but does not directly inherit properties from any operating system,

the set of layout instructions are retrievable from the shadow node when a first display application, operating within a first operating system type, renders the layout,

the set of layout instructions are retrievable from the shadow node when a second display application, operating within a second operating system type, renders the layout, and

the first operating system type is distinct from the second operating system type;

determines a height of the first frame based on a height of a tallest display item in the plurality of display items;

determines a width of the first frame based on a width of a widest display item in the plurality of display items;

determines a position for each of the plurality of display items within the frame based on one or more alignment parameters associated with the plurality of display items; and

generates a layout for display on a display screen, wherein the layout includes the first frame.

17. The computer-implemented method of claim 1 , wherein the shadow node is separate from a local graphics library of a first device running the first operating system type.

18. The computer-implemented method of claim 1 , wherein the layout is generated independent of a refresh rate of a first device running the first operating system type.

19. The computer-implemented method of claim 7 , wherein the shadow node computes at least one of the initial size of the available display or the available display area.

20. The computer-implemented method of claim 1 , wherein the shadow node further includes a template default layout.

21. The computer-implemented method of claim 1 , wherein the shadow node is separate from user interface builders specific to the operating system.

Assignments (3)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2023
From: TAM, SIMON; YIP, EVERETT
To: SPLUNK INC.
Reel/Frame 062590/0799 →
Continuity (1)
Continuation 16399990 · Apr 30, 2019
References Cited (63)
US 6320602B1 · Burkardt et al. · 2001 [cited by applicant]
US 6596032B2 · Nojima et al. · 2003 [cited by applicant]
US 7028255B1 · Ayers · 2006 [cited by applicant]
US 7937344B2 · Baum et al. · 2011 [cited by applicant]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8412696B2 · Zhang et al. · 2013 [cited by applicant]
US 8589375B2 · Zhang et al. · 2013 [cited by applicant]
US 8589403B2 · Marquardt et al. · 2013 [cited by applicant]
US 8589432B2 · Zhang et al. · 2013 [cited by applicant]
US 8738587B1 · Bitincka et al. · 2014 [cited by applicant]
US 8738629B1 · Bitincka et al. · 2014 [cited by applicant]
US 8751529B2 · Zhang et al. · 2014 [cited by applicant]
US 8788525B2 · Neels et al. · 2014 [cited by applicant]
US 8788526B2 · Neels et al. · 2014 [cited by applicant]
US 8826434B2 · Merza · 2014 [cited by applicant]
US 8862925B2 · DeMarco · 2014 [cited by applicant]
US 8983994B2 · Neels et al. · 2015 [cited by applicant]
US 9128980B2 · Neels et al. · 2015 [cited by applicant]
US 9128985B2 · Marquardt et al. · 2015 [cited by applicant]
US 9130971B2 · Vasan et al. · 2015 [cited by applicant]
US 9173801B2 · Merza · 2015 [cited by applicant]
US 9185007B2 · Fletcher et al. · 2015 [cited by applicant]
US 9215240B2 · Merza et al. · 2015 [cited by applicant]
US 9248068B2 · Merza · 2016 [cited by applicant]
US 9286413B1 · Coates et al. · 2016 [cited by applicant]
US 9426045B2 · Fletcher et al. · 2016 [cited by applicant]
US 9426172B2 · Merza · 2016 [cited by applicant]
US 9432396B2 · Merza · 2016 [cited by applicant]
US 9514189B2 · Bitincka et al. · 2016 [cited by applicant]
US 9589012B2 · Neels et al. · 2017 [cited by applicant]
US 9838292B2 · Polychronis · 2017 [cited by applicant]
US 10049160B2 · Bitincka et al. · 2018 [cited by applicant]
US 10127258B2 · Lamas et al. · 2018 [cited by applicant]
US 10325103B1 · Austin et al. · 2019 [cited by applicant]
US 20040268269A1 · Breinberg · 2004 [cited by examiner]
US 20050172221A1 · Kobashi et al. · 2005 [cited by applicant]
US 20060236264A1 · Cain et al. · 2006 [cited by applicant]
US 20060253796A1 · Wang et al. · 2006 [cited by applicant]
US 20060259859A1 · Ivarsoy et al. · 2006 [cited by applicant]
US 20070192686A1 · Fortes et al. · 2007 [cited by applicant]
US 20080256439A1 · Boreham et al. · 2008 [cited by applicant]
US 20130318236A1 · Coates et al. · 2013 [cited by applicant]
US 20140129910A1 · Kota et al. · 2014 [cited by applicant]
US 20140236890A1 · Vasan et al. · 2014 [cited by applicant]
US 20140320912A1 · Kubo et al. · 2014 [cited by applicant]
US 20140324862A1 · Bingham et al. · 2014 [cited by applicant]
US 20150019537A1 · Neels et al. · 2015 [cited by applicant]
US 20150154164A1 · Goldstein · 2015 [cited by examiner]
US 20160004750A1 · Marquardt et al. · 2016 [cited by applicant]
US 20160266759A1 · Reeves · 2016 [cited by applicant]
US 20180032627A1 · Margatan · 2018 [cited by examiner]
US 20180074999A1 · Cogan · 2018 [cited by applicant]
US 20180203578A1 · Murphy · 2018 [cited by applicant]
US 20190098106A1 · Mungel et al. · 2019 [cited by applicant]
US 20190332861A1 · Biswas · 2019 [cited by examiner]
US 20200066018A1 · Maeda et al. · 2020 [cited by applicant]
Williams “Encapsulating Style and Structure with Shadow DOM” dated Mar. 22, 2019 and retrieved from https://css-tricks.com/encapsulating-style-and-structure-with-shadow-dom/ (Year: 2019). [cited by examiner]
Splunk Enterprise 8.0.0 Overview, available online, retrieved on May 20, 2020 from docs.splunk.com, 17 pages. [cited by applicant]
Splunk Cloud 8.0.2004 User Manual, available online, retrieved on May 20, 2020 from docs.splunk.com, 66 pages. [cited by applicant]
Splunk Quick Reference Guide, updated 2019, available online at https://www.splunk.com/pdfs/solution-guides/splunk-quick-reference-guide.pdf, retrieved on May 20, 2020, 6 pages. [cited by applicant]
Carasso, David, “Exploring Splunk,” published by CITO Research, New York, NY, Apr. 2012, 156 pages. [cited by applicant]
Bitincka et al., “Optimizing Data Analysis with a Semi-structured Time Series Database,” self-published, first presented at “Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML)”, Vancou… [cited by applicant]
Morris et al., “A Field Study of Knowledge Workers' Use of Interactive Horizontal Displays”, IEEE, 2008, pp. 105-112. [cited by applicant]