IP Library Granted Patent US 9,672,050
Granted Patent B2
US 9,672,050 · App. 13/650,982 · Granted Jun 6, 2017

Method of distributed layout negotiation in a user interface framework

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,672,050
App. No.
13/650,982
Granted
Jun 6, 2017
Kind
B2
Abstract

A method of determining a layout of a user interface (UI) that composites elements from a plurality of applications, each of the plurality of applications having a respective UI client engine, the method comprising: receiving, from one of a plurality of UI client engines, a request to change layout parameters; negotiating, between the plurality of UI client engines, changes to the layout parameters to determine negotiated layout parameters; and transmitting the negotiated layout parameters to a UI rendering engine, as a component tree structure, for rendering to a display. A UI system, electronic device and computer program product are also provided.

Claims (50)

1. A method of determining a layout of a user interface (UI) that composites UI elements from a plurality of applications, each of the plurality of applications having a respective UI client engine, the method comprising:

receiving, from one of a plurality of UI client engines, a request to change layout parameters, wherein each UI client engine is assigned to a different application in the plurality of applications and configured to determine a component tree and data items for that different application during negotiations;

negotiating, between the plurality of UI client engines and independent of input from a UI rendering engine, changes to the layout parameters to determine negotiated layout parameters, wherein negotiating comprises:

generating new layout parameters for replacing the current layout parameters;

sending the new layout parameters to the plurality of UI client engines for acceptance,

if, in response, newly proposed layout parameters are received from at least one of the plurality of UI client engines, generating further new layout parameters for sending to the plurality of UI client engines for acceptance, wherein the newly proposed layout parameters are received in response to the at least one of the plurality of UI client engines rejecting the new layout parameters; and

transmitting the negotiated layout parameters to the UI rendering engine, as a component tree structure, for rendering to a display.

2. The method of claim 1 , wherein the negotiating the changes to the layout parameters comprises negotiating changes to layout parameters of a plurality of elements of the UI.

3. The method of claim 1 , wherein the negotiating the changes to the layout parameters comprises performing multiple negotiation rounds.

4. The method of claim 1 , wherein the changes to the layout parameters include changes to size of an element of the UI.

5. The method of claim 1 , wherein the changes to the layout parameters include changes to position of an element of the UI.

6. The method of claim 1 , wherein the changes to the layout parameters include inserting an element in the UI.

7. The method of claim 1 , wherein the component tree structure is a scene graph.

8. A user interface (UI) system determining a layout of a UI that composites elements from a plurality of applications, the system comprising:

at least one processor; and

memory comprising instructions which, when executed by one or more of the at least one processor, cause the one or more processors to be configured to provide:

a plurality of UI client engines each associated with a respective application having an element of the UI to be rendered, each UI client engine is assigned to a different application in the plurality of applications and configured to determine a component tree and data items for that different application during negotiations;

a master UI client engine in communication with the plurality of UI client engines, the master UI client engine configured for receiving requests to change layout parameters from the plurality of UI client engines and negotiating, amongst the plurality of UI client engines and independent of input from a UI rendering engine, changes to the layout parameters to determine negotiated layout parameters, wherein negotiating comprises:

generating new layout parameters for replacing the current layout parameters;

sending the new layout parameters to the plurality of UI client engines for acceptance,

if, in response, newly proposed layout parameters are received from at least one of the plurality of UI client engines, generating further new layout parameters for sending to the plurality of UI client engines for acceptance, wherein the newly proposed layout parameters are received in response to the at least one of the plurality of UI client engines rejecting the new layout parameters; and

the UI rendering engine in communication with the master UI client engine, the UI rendering engine configured for receiving the negotiated layout parameters, as a component tree structure, for rendering to a display.

9. The system of claim 8 , wherein the master UI client engine has an associated application having an element of the UI to be rendered.

10. The system of claim 8 , wherein the negotiated changes to the layout parameters include negotiated changes to layout parameters of a plurality of elements of the UI.

11. The system of claim 8 , wherein the negotiated changes to the layout parameters include negotiated changes to size of an element of the UI.

12. The system of claim 8 , wherein the negotiated changes to the layout parameters include negotiated changes to position of an element of the UI.

13. The system of claim 8 , wherein the negotiated changes to the layout parameters include inserting an element in the UI.

14. The system of claim 8 , wherein the component tree structure is a scene graph.

15. An electronic device comprising:

one or more processors; and,

memory comprising instructions which, when executed by one or more of the processors, cause the one or more processors to be configured to determine a layout of a user interface (UI) that composites UI elements from a plurality of applications, each of the plurality of applications having a respective UI client engine, by:

receiving, from one of a plurality of UI client engines, a request to change layout parameters, wherein each UI client engine is assigned to a different application in the plurality of applications and configured to determine a component tree and data items for that different application during negotiations;

negotiating, between the plurality of UI client engines and independent of input from a UI rendering engine, changes to the layout parameters to determine negotiated layout parameters, wherein negotiating comprises:

generating new layout parameters for replacing the current layout parameters;

sending the new layout parameters to the plurality of UI client engines for acceptance,

if, in response, newly proposed layout parameters are received from at least one of the plurality of UI client engines, generating further new layout parameters for sending to the plurality of UI client engines for acceptance, wherein the newly proposed layout parameters are received in response to the at least one of the plurality of UI client engines rejecting the new layout parameters; and

transmitting the negotiated layout parameters to the UI rendering engine, as a component tree structure, for rendering to a display.

16. The electronic device of claim 15 , wherein the negotiating the changes to the layout parameters comprises negotiating changes to layout parameters of a plurality of elements of the UI.

17. The electronic device of claim 15 , wherein the negotiating the changes to the layout parameters comprises performing multiple negotiation rounds.

18. The electronic device of claim 15 , wherein the changes to the layout parameters include changes to size of an element of the UI.

19. The electronic device of claim 15 , wherein the changes to the layout parameters include changes to position of an element of the UI.

20. The electronic device of claim 15 , wherein the changes to the layout parameters include inserting an element in the UI.

21. The electronic device of claim 15 , wherein the component tree structure is a scene graph.

22. A non-transitory machine-readable medium storing instructions therein which, when executed by one or more processors of an electronic device, cause the one or more processors to be configured to determine a layout of a user interface (UI) that composites UI elements from a plurality of applications, each of the plurality of applications having a respective UI client engine, by:

receiving, from one of a plurality of UI client engines, a request to change layout parameters, wherein each UI client engine is assigned to a different application in the plurality of applications and configured to determine a component tree and data items for that different application during negotiations;

negotiating, between the plurality of UI client engines and independent of input from a UI rendering engine, changes to the layout parameters to determine negotiated layout parameters, wherein negotiating comprises:

generating new layout parameters for replacing the current layout parameters;

sending the new layout parameters to the plurality of UI client engines for acceptance,

if, in response, newly proposed layout parameters are received from at least one of the plurality of UI client engines, generating further new layout parameters for sending to the plurality of UI client engines for acceptance, wherein the newly proposed layout parameters are received in response to the at least one of the plurality of UI client engines rejecting the new layout parameters; and

transmitting the negotiated layout parameters to the UI rendering engine, as a component tree structure, for rendering to a display.

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 3, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034143/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2013
From: RESEARCH IN MOTION TAT AB
To: RESEARCH IN MOTION LIMITED
Reel/Frame 029705/0648 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2013
From: ANDERSSON, JENS OLA; MANSSON, ERIK MAGNUS
To: RESEARCH IN MOTION TAT AB
Reel/Frame 029618/0421 →