144 lines
5.9 KiB
C#
144 lines
5.9 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Media.Effects;
|
|
using C4IT.FASD.Base;
|
|
using C4IT.Logging;
|
|
using F4SD_AdaptableIcon.Enums;
|
|
using FasdDesktopUi.Basics.Enums;
|
|
using FasdDesktopUi.Basics.UserControls.AdaptableIcon;
|
|
using FasdDesktopUi.Pages.SlimPage.Models;
|
|
using static C4IT.Logging.cLogManager;
|
|
|
|
namespace FasdDesktopUi.Pages.SlimPage.UserControls
|
|
{
|
|
public partial class SlimPageDataHistory : UserControl
|
|
{
|
|
#region Properties
|
|
|
|
#region IsBlurred
|
|
|
|
private static void IsBlurredChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
if (d is SlimPageDataHistory _me && e.NewValue is bool isBlurred)
|
|
_me.ValueBorder.Child.Effect = isBlurred ? new BlurEffect() { Radius = 5, KernelType = KernelType.Gaussian } : null;
|
|
}
|
|
|
|
public static readonly DependencyProperty IsBlurredProperty =
|
|
DependencyProperty.Register("IsBlurred", typeof(bool), typeof(SlimPageDataHistory), new PropertyMetadata(false, new PropertyChangedCallback(IsBlurredChangedCallback)));
|
|
|
|
public bool IsBlurred
|
|
{
|
|
get { return (bool)GetValue(IsBlurredProperty); }
|
|
set { SetValue(IsBlurredProperty, value); }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region HistoryData Dependeny Property
|
|
|
|
private static void HistoryDataChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
if (d is SlimPageDataHistory slimPageDataHistory)
|
|
slimPageDataHistory.InitializeHistoryData();
|
|
}
|
|
|
|
public static readonly DependencyProperty HistoryDataProperty =
|
|
DependencyProperty.Register("HistoryData", typeof(cSlimPageDataHistoryModel), typeof(SlimPageDataHistory), new PropertyMetadata(new cSlimPageDataHistoryModel(), new PropertyChangedCallback(HistoryDataChangedCallback)));
|
|
|
|
public cSlimPageDataHistoryModel HistoryData
|
|
{
|
|
get { return (cSlimPageDataHistoryModel)GetValue(HistoryDataProperty); }
|
|
set { SetValue(HistoryDataProperty, value); }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
public SlimPageDataHistory()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void InitializeHistoryData()
|
|
{
|
|
try
|
|
{
|
|
if (HistoryData == null)
|
|
return;
|
|
|
|
MainStack.Children.Clear();
|
|
|
|
var tempHistoryDataColumns = HistoryData.ValueColumns.Take(7);
|
|
|
|
foreach (var historyColumn in tempHistoryDataColumns)
|
|
{
|
|
StackPanel stackPanel = new StackPanel();
|
|
stackPanel.Children.Add(new TextBlock() { TextAlignment = TextAlignment.Center, Text = historyColumn.Content });
|
|
AdaptableIcon adaptableIcon = new AdaptableIcon();
|
|
|
|
switch (historyColumn.HighlightColor)
|
|
{
|
|
case enumHighlightColor.none:
|
|
adaptableIcon.SelectedInternIcon = enumInternIcons.status_empty;
|
|
adaptableIcon.SetResourceReference(AdaptableIcon.PrimaryIconColorProperty, "Color.SoftContrast");
|
|
break;
|
|
case enumHighlightColor.blue:
|
|
adaptableIcon.SelectedInternIcon = enumInternIcons.status_info;
|
|
adaptableIcon.SetResourceReference(AdaptableIcon.PrimaryIconColorProperty, "Color.Blue");
|
|
break;
|
|
case enumHighlightColor.green:
|
|
adaptableIcon.SelectedInternIcon = enumInternIcons.status_good;
|
|
adaptableIcon.SetResourceReference(AdaptableIcon.PrimaryIconColorProperty, "Color.Green");
|
|
break;
|
|
case enumHighlightColor.orange:
|
|
adaptableIcon.SelectedInternIcon = enumInternIcons.status_danger;
|
|
adaptableIcon.SetResourceReference(AdaptableIcon.PrimaryIconColorProperty, "Color.Orange");
|
|
break;
|
|
case enumHighlightColor.red:
|
|
adaptableIcon.SelectedInternIcon = enumInternIcons.status_bad;
|
|
adaptableIcon.SetResourceReference(AdaptableIcon.PrimaryIconColorProperty, "Color.Red");
|
|
break;
|
|
}
|
|
|
|
if (historyColumn.IsLoading && historyColumn.HighlightColor != enumHighlightColor.red)
|
|
{
|
|
//todo: replace loading icon
|
|
adaptableIcon.SelectedInternIcon = enumInternIcons.menuBar_more;
|
|
adaptableIcon.SetResourceReference(AdaptableIcon.PrimaryIconColorProperty, "Color.Menu.Icon");
|
|
}
|
|
|
|
stackPanel.Children.Add(adaptableIcon);
|
|
MainStack.Children.Add(stackPanel);
|
|
}
|
|
|
|
if (tempHistoryDataColumns.Any(data => data.IsLoading))
|
|
LoadingIcon.Visibility = Visibility.Visible;
|
|
else
|
|
LoadingIcon.Visibility = Visibility.Collapsed;
|
|
|
|
(MainStack.Children[0] as FrameworkElement).Margin = new Thickness(5, 2.5, 2.5, 2.5);
|
|
(MainStack.Children[MainStack.Children.Count - 1] as FrameworkElement).Width = 75;
|
|
}
|
|
catch (Exception E)
|
|
{
|
|
LogException(E);
|
|
}
|
|
finally
|
|
{
|
|
}
|
|
|
|
}
|
|
|
|
internal void UpdateHistoryData(cSlimPageDataHistoryModel newHistoryData)
|
|
{
|
|
HistoryData = newHistoryData;
|
|
}
|
|
}
|
|
}
|