This commit is contained in:
Meik
2025-11-11 11:03:42 +01:00
commit dc3e8a2e4c
582 changed files with 191465 additions and 0 deletions

View File

@@ -0,0 +1,148 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using FasdDesktopUi.Basics.Enums;
using C4IT.FASD.Base;
using static C4IT.Logging.cLogManager;
using MaterialIcons;
using F4SD_AdaptableIcon.Enums;
using C4IT.F4SD.DisplayFormatting;
namespace FasdDesktopUi.Basics.Models
{
public interface IContainerData
{
bool HasValue { get; }
}
public interface IContainerHelperClass
{
int MaxValueCount { get; }
bool IsValueRequired { get; }
}
public interface IContainerCollectionElementData
{
}
public class cContainerCollectionData : List<cContainerData>
{
public int ColumnSpan { get; set; }
}
public class cContainerData : List<IContainerData>
{
public string ContainerName { get; set; }
public bool IsMaximizable { get; set; }
public bool IsAddable { get; set; }
public bool IsDeletable { get; set; }
}
public class cContainerStackPanel : IContainerData
{
public Orientation Orientation { get; set; }
public List<IContainerData> StackPanelData { get; set; }
public bool HasValue { get => StackPanelData?.Any(data => data.HasValue) ?? false; }
}
public class cContainerPrimaryContent : IContainerData
{
public IContainerData Value { get; set; }
public bool HasValue { get => Value.HasValue; }
}
public class cContainerValue : IContainerData
{
public string DisplayValue { get; set; }
public string Description { get; set; }
public string MaximizeValue { get; set; }
public double FontSize { get; set; } = 16;
public FontWeight FontWeight { get; set; } = FontWeights.Normal;
public bool IsEditOnly { get; set; } = false;
public cEditableValueInformationBase EditableValueInformation { get; set; }
public bool HasValue { get => !string.IsNullOrWhiteSpace(DisplayValue); }
}
public class cContainerIcon : IContainerData
{
public string IconName { get; set; }
public enumIconType IconType { get; set; }
public enumHighlightColor HighlightColor { get; set; } = enumHighlightColor.none;
public string ToolTipText { get; set; }
public cContainerIcon()
{
}
public cContainerIcon(enumInternIcons internIcon, enumHighlightColor highlightColor = enumHighlightColor.none)
{
try
{
IconType = enumIconType.intern;
IconName = internIcon.ToString();
HighlightColor = highlightColor;
}
catch (Exception E)
{
LogException(E);
}
}
public cContainerIcon(MaterialIconType materialIcon, enumHighlightColor highlightColor = enumHighlightColor.none)
{
try
{
IconType = enumIconType.material;
IconName = materialIcon.ToString();
HighlightColor = highlightColor;
}
catch (Exception E)
{
LogException(E);
}
}
public bool HasValue { get => !string.IsNullOrWhiteSpace(IconName); }
}
#region Helpers
public class cContainerValueHelper : cContainerValue, IContainerHelperClass
{
public int MaxValueCount { get => RawValues.Count; }
public RawValueType DisplayType { get; set; }
public List<object> RawValues { get; set; } = new List<object>();
public List<object> RawMaximizeValues { get; set; } = new List<object>();
public bool IsValueRequired { get; set; }
}
public class cContainerIconHelper : IContainerHelperClass
{
public int MaxValueCount { get => Icons.Count; }
public List<cContainerIcon> Icons { get; set; } = new List<cContainerIcon>();
public bool IsValueRequired { get; set; }
}
public class cContainerStackPanelHelper : cContainerStackPanel, IContainerHelperClass
{
public int MaxValueCount { get => StackPanelHelperData.Max(value => value.MaxValueCount); }
public List<IContainerHelperClass> StackPanelHelperData { get; set; } = new List<IContainerHelperClass>();
public bool IsValueRequired { get; set; }
}
public class cContainerContentHelper : cContainerPrimaryContent, IContainerHelperClass
{
public int MaxValueCount { get => Content?.MaxValueCount ?? 1; }
public IContainerHelperClass Content { get; set; }
public bool IsValueRequired { get; set; }
}
#endregion
}