Skip to content

Component Manager and Dashboard Output

Component Manager

from dashboard_builder import ComponentManager

The ComponentManager is an essential piece of a dashboard-building system that abstracts the creation, registration, and rendering of various UI components. This manager allows users to define components, like inputs (InputDropdown, TextInput, etc.) and outputs (OutputText, OutputChart_Matplotlib, etc.), and then use these components to build dynamic dashboards.

By following the Factory design pattern, the system ensures flexibility, making it easier to add new component types or modify existing ones. Grouping mechanisms like FormGroup and OutputGroup further enhance the organization, letting users combine related components for better structure and presentation.

It follows the Factory design pattern, abstracting the creation of components. This makes adding new component types or changing existing ones simpler, without affecting the rest of the system.

DashboardOutput

from dashboard_builder import DashboardOutput

The DashboardOutput class serves as the culmination point of the dashboard-building process, bringing together the individually defined components and presenting them in a unified template. This class plays a pivotal role in rendering the final view of the dashboard, merging the inputs and outputs with the chosen template.

Built with adaptability in mind, it provides users the flexibility to either use built-in default templates or introduce their custom designs, ensuring that the look and feel of the dashboard can always align with user requirements or branding guidelines.

On instantiation, it conducts a series of checks, ensuring the right parameters are provided for the desired template. Once the template's context is prepared by incorporating defaults, inputs, and outputs, the render method finalizes the dashboard's appearance, using Flask's render_template_string to dynamically generate the final HTML view.

In essence, the DashboardOutput class acts as the bridge between the component definitions, handled by the ComponentManager, and the end user, delivering a well-structured, interactive, and visually appealing dashboard.