s-Dashboard has a simple messaging system, known as the blackboard, for panels to communicate with each other implemented as a blackboard containing JSON messages. You can use the Blackboard to change the output for a panel by modifying that panel’s query template.
Two panel types are currently enabled to send messages to the blackboard.
|Panel||Preference Field for Blackboard||User Event||Result|
|Geographical Streams > World EventsGeographical Streams > Pan & Zoom||Event Clicks To||Clicks on event circle||Sends name of event and other information.|
|Table||Sent To||Clicks on cell||Sends value of the cell, along with the row and column in the table.|
|Clicks on button||Custom|
Each blackboard message includes a property channel* containing a string used to control individual panels. If it’s filled in, it’s the channel string that this panel should listen to. Any message posted to the blackboad with a channel property equal to, in this case, “table_selection”, will cause the panel to be refreshed. You can use the other properties of the blackboard message to modify the SELECT statement.
The following steps walk you through using the Inter Panel Blackboard to modify the SELECT statement for a panel.
You should have something that looks like this, except that your blackboard panel will be empty:
There are a number of variables available for use in the template, as documented at Customizing the SELECT template.
The base query (an empty template is as follows:
SELECT <%= selection %> FROM <%= from %>
<%= selection %> can contain “ * ”, “STREAM ROWTIME,"" or a similar statement given the type of the input and the input preferences, while <%= from %> should contain the fully qualified name of the input stream or table.
In order to make use of a blackboard message, you need to append a WHERE clause to this base query, using the msg variable.
<% if (msg) print('where "N" >= ' + msg.value); %>
The resulting clause will be *WHERE “N” >= Go to the Input Preferences for the middle panel (SALES.AGGT1) and paste in the following code as one line:
SELECT <%= selection %> FROM <%= from %> <% if (msg) print('where "N" >= ' + msg.value); %>
Set Listen To to table_selection. Clicking on cells in the left table should now control which rows are shown in the middle panel. This is a simple mechanism with a lot of possibilities. For more information on how to customize the SELECT statement, please contact SQLstream support.
There are two system panels that let you monitor the blackboard: The SYSTEM > Blackboard panel shows a log of blackboard activity. The SYSTEM > Button Panel lets you test posting to the blackboard.