Visual components in a data-agnostic dashboard runtime environment
A dashboard runtime component includes (1) a visualization component configured to render a visual representation of data items retrieved from a data source and (2) a query execution component associated with at least the visualization component. The query execution component is configured to retrieve the data items from the data source. The dashboard runtime component also includes an application data interface configured to provide communication between the visualization component and the query execution component, including: (i) receiving notification of user interaction with the visualization component; (ii) passing a message to the query execution component, the message including instructions to execute an updated query according to the user interaction; (iii) receiving, from the query execution component, a dataset retrieved from the data source according to execution of the updated query; and (iv) passing the dataset to the visualization component, causing the visualization component to render an updated visual representation.
1 . A dashboard runtime environment for a data visualization platform, implemented on a computing device having one or more processors and memory, the dashboard runtime environment comprising:
a visualization component implemented in a visualization layer of the dashboard runtime environment and configured to render, in a graphical user interface, a visual representation of data items retrieved from a data source;
a query component implemented in a data layer of the dashboard runtime environment and associated with at least the visualization component, wherein the query component is configured to retrieve the data items from the data source; and
an application programming interface (API) configured to provide communication between the visualization component and the query component during runtime, including:
receiving, at the API, notification of user interaction with the visualization component via a first message;
passing, by the API, a second message to the query component at the data layer, the second message including instructions to execute an updated query according to the user interaction;
receiving, at the API, a dataset retrieved from the data source according to execution of the updated query; and
passing the dataset, by the API via a third message, to the visualization component at the visualization layer, causing the visualization component to render an updated visual representation in the graphical user interface;
wherein the API is configured to convert messages from one layer into instructions readable by another layer of the visualization layer and the data layer and to route messages between the visualization layer and the data layer.
2 . The dashboard runtime environment of claim 1 , wherein the visualization component is configured to render, in the graphical user interface, one or more widgets corresponding to the data items, wherein the user interaction corresponds to an interaction with the one or more widgets.
3 . The dashboard runtime environment of claim 1 , wherein the API is further configured to:
in accordance with a determination that a user interaction with the visualization component requires updated data items from the data source, pass a message from the visualization layer to the query component at data layer for query execution based on the user interaction.
4 . The dashboard runtime environment of claim 1 , wherein the API is further configured to:
access a declarative file and apply to the dataset, facets, bindings or filters defined for the query component, prior to passing the dataset, via the third message, to the visualization component.
5 . The dashboard runtime environment of claim 4 , wherein the facets or bindings include information in a programmatic language that defines interactions among different components of one or more widgets.
6 . The dashboard runtime environment of claim 4 , wherein a facet is a type of automatic filter used to select a filtering operation for application within a widget.
7 . The dashboard runtime environment of claim 6 , wherein the selection of the filtering operation automatically filters all other linked widgets for the widget, using steps from a same or different datasets.
8 . The dashboard runtime environment of claim 7 , wherein the automatic filter includes application of a same or different filtering operations to the other linked widgets.
9 . The dashboard runtime environment of claim 8 , wherein the data layer is configured to identify a filtering operation and data to be filtered based on the user interaction, identify data linked to the data to be filtered, and automatically inject the filtering operation or other filtering operations into other steps associated with the other linked widgets.
10 . The dashboard runtime environment of claim 4 , wherein the bindings include a mapping of user interactions and/or data item selections to visualization parameters used for generating visual representations.
11 . The dashboard runtime environment of claim 4 , wherein the bindings bind one or more steps to one or more other steps, wherein a selection or results of one step triggers updates in other steps.
12 . The dashboard runtime environment of claim 4 , wherein the bindings include selection bindings that update a step based on a selection in another step.
13 . The dashboard runtime environment of claim 4 , wherein the bindings include selection bindings that specify: (i) interactions between widgets that use steps from different datasets; (ii) filters, measures, groupings, and other aspects of a step query; and (iii) widget display properties for various widget types.
14 . The dashboard runtime environment of claim 13 , wherein the widget display properties include at least one of: a selection of data or data type to display from one or more datasets; a particular graph, chart, or map in which to view the selected data; color schemes for graphs, charts or maps; and a position or orientation of the graphs, charts, or maps within a widget.
15 . The dashboard runtime environment of claim 4 , wherein the bindings include result bindings that update a step based on results of another step.
16 . The dashboard runtime environment of claim 4 , wherein the bindings include result bindings that define intermediate results for a complex calculation and/or dynamically change display of a widget based on results of a step.
17 . The dashboard runtime environment of claim 4 , further comprising a parser generator configured to parse a context free grammar or context-free language into an abstract syntax tree (AST), JavaScript code, or a script or syntax for execution.
18 . The dashboard runtime environment of claim 1 , wherein the API is further configured to display a dashboard state graphical user interface for displaying one or more user attributes of a dashboard state as well as static and dynamic attributes of one or more widgets and one or more queries including current user selections, applied filters, and user navigation.
19 . A method comprising:
at a computer system having one or more processors and memory storing one or more programs:
detecting a user interaction with a portion of visualization component implemented in a visualization layer of a dashboard runtime environment, wherein the visualization component is configured to render, in a graphical user interface, a visual representation of data items retrieved from a data source in response to execution of a query associated with the visualization component;
receiving, at an application programming interface (API), notification of the user interaction via a first message, wherein the API is configured to route messages between the visualization layer and a data layer and to convert messages from one layer into instructions readable by another layer of the visualization layer and the data layer;
converting, by the API, the first message into a second message with instructions executable by the data layer;
passing, by the API, the second message to a query component at the data layer, wherein the second message includes instructions that when executed send an updated query to the data source and the updated query corresponds to the query associated with the visual component that is updated according to the user interaction;
receiving, by the API via a third message, a dataset retrieved from the data source according to execution of the updated query;
converting, by the API, the third message into a fourth message with instructions executable by the visualization layer; and
passing the retrieved dataset, by the API via a fourth message, to the visualization component, causing the visualization component to render an updated visual representation in the graphical user interface.
20 . A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by a computer system, cause the computer system to:
detect a user interaction with a portion of visualization component implemented in a visualization layer of a dashboard runtime environment, wherein the visualization component is configured to render, in a graphical user interface, a visual representation of data items retrieved from a data source in response to execution of a query associated with the visualization component;
receive, at an application programming interface (API), notification of the user interaction via a first message, wherein the API is configured to route messages between the visualization layer and a data layer and to convert messages from one layer into instructions readable by another layer of the visualization layer and the data layer;
convert, by the API, the first message into a second message with instructions executable by the data layer;
pass, by the API, the second message to a query component at the data layer, wherein the second message includes instructions that when executed send an updated query to the data source and the updated query corresponds to the query associated with the visual component that is updated according to the user interaction;
receive, by the API via a third message, a dataset retrieved from the data source according to execution of the updated query;
convert, by the API, the third message into a fourth message with instructions executable by the visualization layer; and
pass the retrieved dataset, by the API via a fourth message, to the visualization component, causing the visualization component to render an updated visual representation in the graphical user interface.