123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using InABox.Configuration;
- using InABox.Core;
- using InABox.Wpf.Dashboard;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace PRSDesktop;
- public class CustomDashboardProperties : IDashboardProperties, IUserConfigurationSettings
- {
- public Guid DashboardID { get; set; }
- }
- public class CustomDashboardElement : DFLayoutElement<CustomDashboardProperties>
- {
- protected override string GetDescription()
- {
- var customDashboard = new GlobalConfiguration<GlobalUtilityDashboardSettings>().Load()
- .CustomDashboards.FirstOrDefault(x => x.ID == Properties.DashboardID);
- return customDashboard?.Name ?? "Unknown Dashboard";
- }
- }
- /// <summary>
- /// Interaction logic for CustomDashboard.xaml
- /// </summary>
- public partial class CustomDashboardWidget : UserControl, IDashboardWidget<CustomDashboardProperties>
- {
- public CustomDashboardWidget()
- {
- InitializeComponent();
- }
- public CustomDashboardProperties Properties { get; set; } = null!;
- public event LoadSettings<CustomDashboardProperties>? LoadSettings;
- public event SaveSettings<CustomDashboardProperties>? SaveSettings;
- private DynamicDashboardDataComponent? DataComponent;
- private IDynamicDashboardDataPresenter? DataPresenter;
- public void Setup()
- {
- var customDashboard = new GlobalConfiguration<GlobalUtilityDashboardSettings>().Load()
- .CustomDashboards.FirstOrDefault(x => x.ID == Properties.DashboardID);
- if(customDashboard is null)
- {
- return;
- }
- var dashboard = DynamicDashboardUtils.Deserialize(customDashboard.Layout);
- if(dashboard is null)
- {
- return;
- }
- DataComponent = dashboard.DataComponent;
- DataPresenter = dashboard.DataPresenter;
- if(DataPresenter is null)
- {
- return;
- }
- DataPresenter.IsPreview = false;
- DataPresenter.DataComponent = DataComponent;
- var control = DataPresenter.Setup();
- ContentControl.Content = control;
- }
- public void Refresh()
- {
- var data = DataComponent?.RunQuery();
- if (data is null) return;
- DataPresenter?.Refresh(data);
- }
- public void Shutdown(CancelEventArgs? cancel)
- {
- DataPresenter?.Shutdown(cancel);
- }
- }
|