Dashboard behavior

The Dashboard view loads using the existing view loading architecture. The process is:

  1. The Dashboard view creates a Framework component.
  2. The Dashboard view loads the current Dashboard from disk.
  3. The Dashboard view creates the designer surface control that is used to lay out the Dashboard components.
  4. The Dashboard view creates the individual Dashboard components as specified in the Dashboard file.
  5. The Dashboard view initializes the Framework component with the current running instance of ActFramework.
  6. The Framework component asynchronously notifies its consumers that the framework has been connected and that they should load their data.

    The Dashboard component is the specification-level dashboard component.

  7. The Dashboard Component loads its data and notifies the Framework component that it is done loading.
  8. After receiving notifications that all the consumers have loaded data, the Framework component asynchronously notifies all consumers to display the data.
  9. The Dashboard component renders its data when notified from the Framework component.

Click here for a visual representation of Dashboard component behavior.

Data Loading

Data loading uses a pattern already in place in the contacts, group, and company layouts. Each of the views contains an Act! Framework Component that allows the individual layout controls to be bound to the data in the Act! Framework. The Framework Component notifies its consumers when the Framework has been connected. For the Dashboard feature, the Act! Framework Component is extended with the Act! Dashboard Framework Component which utilizes this notification to signal its consumers to load the Dashboard component data. The Act! Dashboard Framework Component contains an event object that controls the asynchronous background loading of the dashboard components data. The event object can be added to, changed or replaced independent of the individual Dashboard components themselves. Dashboard components are not hard coded with a particular method of loading the data; you can change the method without changing the dashboard components.

When the Framework is connected, the Act! Dashboard Framework Component notifies the Dashboard components to load their data. Since the Dashboard Framework component uses the event object to do this, the consumers are called in the correct order and in the configured way, synchronously or asynchronously. The Act! Dashboard Framework Component contains a property to set whether the data should be loaded synchronously or asynchronously. This property allows consumers of the component to specify how the components will load their data. The background loading happens on the main application thread because the Act! Framework is currently not thread safe. This means that even though the data for the Dashboard components is loaded in the background, it will happen one at a time on the main thread. The data will be loaded and not shown. This allows the Dashboard components to all render their data at the same time. The Act! Dashboard Framework Component notifies the Dashboard components to display the loaded data after all the components have loaded their data.

Drill Down

The Dashboard components expose events to notify of a drill down operation. The view upon load of a Dashboard hooks the consumers of drill down up with the individual Dashboard components. The consumer then takes the drill down information, such as filters, and displays the appropriate UI with the filters applied.