Advanced software development tools may enable developers to define user interface elements configured to publish and/or subscribe to user interface events. In typical approaches, the events available to be published and/or subscribed to are defined in advance, and the behavior of user interface elements to publish and/or respond to receipt of user interface events is predefined by a provider of the software development tool.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
Composable custom user interface events to facilitate composition of dynamic user interfaces (UI) are disclosed. In various embodiments, a software development tool is provided that enables a developer to define custom user interface events. In various embodiments, a developer defines and/or selects a composable element comprising one or more of user interface elements (e.g., page element) and non-user interface elements (e.g., data service, action flow) with which to associate a custom event. In the case of a user interface element to be configured to publish a custom event, in various embodiments one of more of the following may be received: a definition of the event (e.g., structure, event content or arguments, event scope, e.g., fragment-wide, page-wide, application-wide, etc.); one or more event triggers or other conditions that may cause the user interface element to publish an instance of the event; and one or more conditions to be evaluated at runtime, for example to determine in response to an event trigger whether an instance of the event will be published, a payload or other content associated with the event, etc. In some embodiments, an event payload may be stored temporarily in a “content cache” or other structure, e.g., from which a user interface or other element configured to consume the event may read the payload. In some embodiments, an event is cached until another event of the same type is published. In the case of a user interface or other element to be configured to subscribed to and/or otherwise consume the event, one or more of the following may be received: a definition of an evaluation or other trigger associated with receipt of an instance of the user interface event; and one or more expressions to be evaluated in response to receiving an instance of the event. In some embodiments, the latter expressions may include and/or make reference to data values read from a payload associated with the received user interface event instance. In some embodiments, an event definition may indicate a scope of an event, e.g., fragment-wide, page-wide, application-wide; and the event is published and/or consumed only within the defined scope of the event.
In various embodiments, a visual or other development tool interface to enable developers to compose developer-composed custom user interface events, and user interface element (e.g., page element) definitions to publish, subscribe to, and consume developer-composed events, is provided, e.g., via application development workstation 114. Definitions are received via the interface and stored. The definitions are used to generate application user interface code which at runtime invokes a user interface event infrastructure, e.g., of a runtime or other environment comprising application server 110, to publish, subscribed to, and/or consume custom user interface events as defined by the developer.
In the example shown in
In some embodiments, use of a structure such as content cache 216 to store event payloads may enable the developer to use the user interface event infrastructure, such as the one shown in
Using techniques disclosed herein, a highly dynamic and flexible application user interface can be defined, without constraining a developer to use of only a predefined set of application user interface events, triggers, and/or responses.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
This application is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 from U.S. patent application Ser. No. 16/574,839 filed Sep. 18, 2019, now U.S. Pat. No. 11,126,332, entitled “COMPOSABLE EVENTS FOR DYNAMIC USER INTERFACE COMPOSITION,” which is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 from U.S. patent application Ser. No. 14/136,232 filed Dec. 20, 2013, issued as U.S. Pat. No. 10,466,872, entitled “COMPOSABLE EVENTS FOR DYNAMIC USER INTERFACE COMPOSITION,” which are hereby fully incorporated herein by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4910660 | Li | Mar 1990 | A |
5079690 | Li | Jan 1992 | A |
5644738 | Goldman et al. | Jul 1997 | A |
5664133 | Malamud | Sep 1997 | A |
5754772 | Leaf | May 1998 | A |
5778377 | Marlin | Jul 1998 | A |
6012067 | Sarkar | Jan 2000 | A |
6226627 | Polak | May 2001 | B1 |
6233726 | Bowman et al. | May 2001 | B1 |
6268852 | Lindhorst | Jul 2001 | B1 |
6304886 | Bernardo | Oct 2001 | B1 |
6397220 | Deisinger | May 2002 | B1 |
6724403 | Santoro | Apr 2004 | B1 |
7013469 | Smith | Mar 2006 | B2 |
7020842 | DeStefano | Mar 2006 | B1 |
7225425 | Kompalli et al. | May 2007 | B2 |
7734995 | Saikaly | Jun 2010 | B1 |
7797432 | Volodarsky et al. | Sep 2010 | B2 |
7933632 | Flynt | Apr 2011 | B2 |
8037406 | Barnes | Oct 2011 | B1 |
8156481 | Koh et al. | Apr 2012 | B1 |
8271899 | Blackburn et al. | Sep 2012 | B1 |
8321681 | Tulchinsky et al. | Nov 2012 | B2 |
8346889 | Chiu et al. | Jan 2013 | B1 |
8560959 | Zaman | Oct 2013 | B2 |
8572268 | Wray | Oct 2013 | B2 |
8645848 | Lesh | Feb 2014 | B2 |
9170786 | Totale | Oct 2015 | B1 |
9756147 | Totale | Sep 2017 | B1 |
9851951 | Ganesan | Dec 2017 | B1 |
9977703 | Gall | May 2018 | B2 |
10031729 | Totale | Jul 2018 | B1 |
10282689 | Johnston | May 2019 | B1 |
10466872 | Totale | Nov 2019 | B1 |
10540150 | Totale | Jan 2020 | B2 |
10659567 | Totale | May 2020 | B2 |
10942715 | Totale et al. | Mar 2021 | B2 |
11327730 | Totale | May 2022 | B2 |
11681507 | Totale | Jun 2023 | B2 |
20020194393 | Hrischuk et al. | Dec 2002 | A1 |
20030004770 | Miller et al. | Jan 2003 | A1 |
20030023641 | Gorman et al. | Jan 2003 | A1 |
20030164862 | Cadiz | Sep 2003 | A1 |
20030222906 | Fish et al. | Dec 2003 | A1 |
20040006765 | Goldman et al. | Jan 2004 | A1 |
20040044987 | Kompalli et al. | Mar 2004 | A1 |
20040117731 | Blyashov | Jun 2004 | A1 |
20050022157 | Brendle | Jan 2005 | A1 |
20050039141 | Burke | Feb 2005 | A1 |
20050114849 | Megiddo | May 2005 | A1 |
20050117737 | Stanford | Jun 2005 | A1 |
20050149908 | Klianev | Jul 2005 | A1 |
20050166207 | Baba et al. | Jul 2005 | A1 |
20060053421 | Dickenson | Mar 2006 | A1 |
20060074704 | Shukla et al. | Apr 2006 | A1 |
20060074733 | Shukla et al. | Apr 2006 | A1 |
20060236304 | Luo et al. | Oct 2006 | A1 |
20060236306 | Debruin et al. | Oct 2006 | A1 |
20060259586 | Wood | Nov 2006 | A1 |
20070055591 | Enenkiel | Mar 2007 | A1 |
20070192702 | Takano | Aug 2007 | A1 |
20070266368 | Szpak et al. | Nov 2007 | A1 |
20080046868 | Tsantilis | Feb 2008 | A1 |
20080126396 | Gagnon | May 2008 | A1 |
20080201332 | Souders | Aug 2008 | A1 |
20080281944 | Vorne et al. | Nov 2008 | A1 |
20090019386 | Sweetland et al. | Jan 2009 | A1 |
20090055725 | Portnov | Feb 2009 | A1 |
20090183092 | Naghshineh | Jul 2009 | A1 |
20090193339 | Nichols | Jul 2009 | A1 |
20090210631 | Bosworth et al. | Aug 2009 | A1 |
20090292681 | Wood | Nov 2009 | A1 |
20090307670 | Kashyap et al. | Dec 2009 | A1 |
20100058711 | Engel | Mar 2010 | A1 |
20100095248 | Karstens | Apr 2010 | A1 |
20100185954 | Siememitski | Jul 2010 | A1 |
20100211420 | Kodi et al. | Aug 2010 | A1 |
20100223322 | Mott | Sep 2010 | A1 |
20100281462 | Festa | Nov 2010 | A1 |
20100293056 | Flynt | Nov 2010 | A1 |
20110047557 | Koskimies | Feb 2011 | A1 |
20110185342 | Argue | Jul 2011 | A1 |
20110225565 | Van Velzen et al. | Sep 2011 | A1 |
20110238437 | Zhou | Sep 2011 | A1 |
20110246549 | Katzenberger et al. | Oct 2011 | A1 |
20120054682 | Bell | Mar 2012 | A1 |
20120131442 | Grizim | May 2012 | A1 |
20120166992 | Huynh et al. | Jun 2012 | A1 |
20120185425 | Reeves | Jul 2012 | A1 |
20120254801 | Gaffney | Oct 2012 | A1 |
20130019172 | Kotler et al. | Jan 2013 | A1 |
20130019173 | Kotler | Jan 2013 | A1 |
20130019175 | Kotler | Jan 2013 | A1 |
20130019182 | Gil et al. | Jan 2013 | A1 |
20130080641 | Lui | Mar 2013 | A1 |
20130151571 | Stumpf | Jun 2013 | A1 |
20130205193 | Matsufuji et al. | Aug 2013 | A1 |
20130218919 | Solonchev | Aug 2013 | A1 |
20130219263 | Abrahami | Aug 2013 | A1 |
20130290380 | Flickner et al. | Oct 2013 | A1 |
20140013297 | Cook | Jan 2014 | A1 |
20140040862 | Webster | Feb 2014 | A1 |
20140052681 | Nitz | Feb 2014 | A1 |
20140137079 | Witteborg | May 2014 | A1 |
20140164906 | Hassler | Jun 2014 | A1 |
20140164955 | Thiruvidam | Jun 2014 | A1 |
20140201232 | Berry | Jul 2014 | A1 |
20140219433 | Pai | Aug 2014 | A1 |
20140245262 | Hill | Aug 2014 | A1 |
20200012402 | Totale | Jan 2020 | A1 |
20200142673 | Totale | May 2020 | A1 |
20210157556 | Totale | May 2021 | A1 |
20220197608 | Totale | Jun 2022 | A1 |
20230273777 | Totale | Aug 2023 | A1 |
Entry |
---|
The PHP Group, What is PHP?, Jan. 23, 2009, 1 pg., retrieved.from https://web.archive.org/web/20090124160056/http://php.net/manual/en/intro-whatis.php. |
Unknown, Kohana Team, Session Library, Jan. 2012, retrieved from http://www.hcs.harvard.edu/-powerpak/kohanadocs/libraries/session.html, 6 pgs. |
Unknown, www.gwtproject.org. GWT, Jul. 2013, retrieved from https://web.archive.org/web/20130708095321/http://www.gwtproject.org/doc/latest/DevGuide-Html5Storage.html, 7 pgs. |
Unknown, w3schools.com, “HTML5 Web Storage,” Nov. 2012, retrieved from https://web.archive.org/web/20121123023047/http://www.w3schools.com/html/html5_webstorage.asp, 3 pgs. |
Office Action for U.S. Appl. No. 14/136,287, mailed Dec. 17, 2014, 10 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Sep. 11, 2015, 15 pgs. |
Office Action for U.S. Appl. No. 14/136,255, mailed Jan. 15, 2016, 16 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Feb. 1, 2016, 17 pgs. |
Office Action for U.S. Appl. No. 14/136,255, mailed Apr. 22, 2016, 16 pgs. |
Office Action for U.S. Appl. No. 14/136,255, mailed Jul. 12, 2016, 23 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Sep. 22, 2016, 18 pgs. |
Office Action for U.S. Appl. No. 14/136,255, mailed Oct. 17, 2016, 21 pgs. |
Office Action for U.S. Appl. No. 14/136,255, mailed Feb. 6, 2017, 21 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Mar. 10, 2017, 19 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Nov. 15, 2017, 20 pgs. |
Office Action for U.S. Appl. No. 15/633,293, mailed Feb. 20, 2018, 23 pgs. |
Office Action for U.S. Appl. No. 14/842,713, mailed Mar. 9, 2018, 43 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Jun. 11, 2018, 26 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Nov. 6, 2018, 21 pages. |
Office Action for U.S. Appl. No. 15/633,293, mailed Dec. 3, 2018, 19 pages. |
Office Action for U.S. Appl. No. 15/633,293, mailed Mar. 27, 2019, 14 pgs. |
Office Action for U.S. Appl. No. 14/136,232, mailed Apr. 12, 2019, 24 pgs. |
Office Action for U.S. Appl. No. 15/633,293, mailed Oct. 3, 2019, 16 pgs. |
Office Action for U.S. Appl. No. 16/574,839, mailed Jun. 22, 2020, 20 pgs. |
Office Action for U.S. Appl. No. 16/574,839, mailed Oct. 28, 2020, 23 pgs. |
Notice of Allowance for U.S. Appl. No. 16/574,839, mailed May 24, 2021, 11 pgs. |
Corrected Notice of Allowability for U.S. Appl. No. 17/165,643, mailed Apr. 11, 2022, 4 pgs. |
Notice of Allowance for U.S. Appl. No. 17/165,643, mailed Nov. 22, 2021, 5 pages. |
Corrected Notice of Allowability for U.S. Appl. No. 17/165,643, mailed Dec. 3, 2021, 5 pages. |
Notice of Allowance issued in U.S. Appl. No. 17/688,990, mailed Oct. 18, 22, 10 pgs. |
Notice of Allowance for U.S. Appl. No. 17/688,990, issued by the U.S. Patent and Trademark office, Feb. 8, 2023, 10 pages. |
Notice of Allowance issued for U.S. Appl. No. 18/313,908, mailed Dec. 7, 2023, 10 pages. |
Notice of Allowance for U.S. Appl. No. 18/313,908 issued by the United States Patent and Trademark office on Apr. 1, 2024, 7 pages. |
Notice of Allowance for U.S. Appl. No. 18/313,908 issued by the United States Patent and Trademark office, Jul. 17, 2024, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20210397315 A1 | Dec 2021 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16574839 | Sep 2019 | US |
Child | 17466938 | US | |
Parent | 14136232 | Dec 2013 | US |
Child | 16574839 | US |