This topic provides detailed design information that directly supports SDK implementation of the design.
The minimum requirements for implementing a Dashboard component are to:
A base component is supplied for SDK consumers to derive from, but it is not a requirement. The Act! Dashboard components all derive from the base component. The Act! Dashboard components use a visualization control to present the data in the center area of the base component. Users can change the visualization for an Act! Dashboard component at design time. Due to this feature, the Act! Dashboard components must be able to dynamically create a visualization.
The design for the components calls for a base component in the Act.Framework.ComponentModel.Core assembly that will be part of the SDK. This base component encompasses all the functionality common to Dashboard components: the header, footer, and filter bar. The base component provides a center area for the derived components to use for displaying a visualization.
The configurable component provides the common functionality and attributes for all the Act! Dashboard components that can be configured by the Dashboard configuration User Interface (UI). The attributes of the component are specified independent of the current visualization. This allows the user to be able to change visualizations without losing the data that may or may not be applicable to that visualization. These attributes include:
The configurable component is implemented as an abstract class and defines some properties that should be implemented by the derived consumer. The derived components should be able to enumerate all the visualizations that they support as a bitmask, a display name that is the name for the component shown to the user in the configuration UI, and what the default visualization is for that component.
At this level an entity-specific component should be derived from the configurable component. This is where any entity specific logic should be implemented that is common across all of the those entities' components. This component implements the filters for the entity, the columns for the entities list view, and the sort order of the columns in the list view.
The following components currently derive from the entity specific component:
These components implement the logic specific to each Dashboard component and have attributes specific to each Dashboard component. For example, the Top Open Opportunities component has attributes for the number of open opportunities to show and which field to use for the calculation.
Database changes to support Dashboard include the addition of storage structure for the component Filters, Columns, and Sort. The approach to defining and storing the user Dashboard settings is to handle them within the database in a new table structure. This is necessary due to the behavioral requirement to synchronize user filters, and the desire for consistent behavior between Act! and Act! Premium (access via web). This approach is similar to the database Preferences model for those items defined and stored within the database or Datastore.