The monitor package deals with the creation / display and management of Monitor GUI Components.

Contents

Overview
The MonitorGCInterface
GraphMonitorGC
Updating the monitors 

Overview

Monitors are used to display the probability distribution, and statistics values for a given set of nodes.  These probability values are extracted from the core and displayed on the monitor GUI component. The parent class for all monitors is the MonitorGCInterface 

The MonitorGCInterface

The MonitorGCInterface is the parent class of all would be monitors.  It is an abstract class. It performs a number of functions which all monitor implementations will need:

The GraphMonitorGC

The graph monitor GC is currently the only implementation of the MonitorGCInterface.  It renders the node probabilities and statistics using the Graphing API.  The additional functionality that it adds to the MonitorGCInterface is purely aesthetic. Each monitor data item needs to be connected to a graph data set (that resides in the graphing API), thus the GraphMonitorGC holds reference to a set of GraphMonitorDataItems (rather than monitorDataItems) which extend MonitorDataItem and a add reference to the GraphDataSet.

Updating the monitors

The complexity in the monitors resides in how and when the monitors update (get the marginal's and stats from the underlying nodes). The figure below provides a flow diagram that outlines the process. 

In summary each and every monitor data item listens to the extended BN in which its connected node resides.  It thus receives events from that BN, which may or may not trigger the monitor data item to go and get the latest marginal's and statistics for that node.  There are a number of flags that can be configured on a monitor data item that help determine whether the update should occur, namely: