A dashboard is a configurable entry point into a system. It has to provide easy-to-read information and key performance indicators of the system.
The dashboard can be configured by the creator of the dashboard (=owner) by placing widgets on it. This enables the user to create an overview over the system for his personal needs, i.e., a business manager can create, e.g., an overview of order numbers while somebody managing product data can create a dashboard holding the results of the last product validation.
The present concept is primarily addressed to business users who work with the ıntershop Commerce Management application.
Dashboard | A Dashboard is a container for widgets. It is represented by a single page, that provides a good overview and/or a good entry point into the system. |
---|---|
Widget | Widgets can be added to a dashboard and provide a quick access to information. |
WidgetType | A WidgetType is a container that provides a defined set of functionality and/or information, that will be displayed in a widget instance. WidgetTypes can be defined to be configurable. In that cases the user can configure parameters that are proceeded by a widget instance. |
The dashboard feature brings along two new objects: dashboards and widgets.
Dashboards are written to the persistence layer and are also provided as a business object. Those business objects are handled by a dashboard repository, which is an extension of the user business object. This ensures that only the owner of a dashboard can see, edit or delete the dashboard and the dashboard content. Since the main goal of a dashboard is to access information fast and easy, a link to dashboards is available in the global menu bar, and therefore, a user's dashboards are accessible from everywhere in the commerce management application.
To customize a dashboard, widgets need to be added. A widget is an instance of a certain WidgetType. Those WidgetTypes are defined in *.component files, determine amongst others the default displayname and content of the widgets and can be found in the widgetTypeRegistry which is attached to all applications.
If added to a dashboard, a widget is available as a WidgetBO, which can be accessed via the DashboardBO. The added widget is also persisted in the database and linked to the dashboard. It is up to the user how many widgets are added to the dashboard, widgets of a certain widgetType can be added multiple times.
If a WidgetBO is of a WidgetType that is not available in the system anymore, a PlaceholderWidgetType is used instead. This PlaceholderWidgetType is always available and notifies the user, that the original WidgetType cannot be found anymore.
The WidgetType provides an URI that displays its content. It can refer to an external URL or to an internal view pipeline which have access to configuration values of the WidgetType.
By using property groups WidgetTypes are easily configurable using Java interfaces without further creation of code artifacts to manipulate the values. An appropiate user interface is provided by each widget to the user. Entered values are stored on each WidgetBO. Furthermore,
WidgetTypes can be categorized to provide a better overview over all existing WidgetTypes.