aktueller stand

This commit is contained in:
Meik
2025-11-13 18:35:45 +01:00
parent ed80f72e81
commit 8c74bc667d

View File

@@ -72,6 +72,7 @@ namespace FasdDesktopUi.Basics.UserControls
private string activeCategoryTableName = CategoryTableNamePrimary; private string activeCategoryTableName = CategoryTableNamePrimary;
private static readonly Brush SharedValidationBorderBrush = CreateValidationBrush(); private static readonly Brush SharedValidationBorderBrush = CreateValidationBrush();
private static readonly Brush DefaultTextBoxBorderBrush = CreateDefaultTextBoxBorderBrush();
private static Brush CreateValidationBrush() private static Brush CreateValidationBrush()
{ {
var brush = new SolidColorBrush(Color.FromRgb(0xF5, 0x7C, 0x73)); var brush = new SolidColorBrush(Color.FromRgb(0xF5, 0x7C, 0x73));
@@ -79,6 +80,13 @@ namespace FasdDesktopUi.Basics.UserControls
brush.Freeze(); brush.Freeze();
return brush; return brush;
} }
private static Brush CreateDefaultTextBoxBorderBrush()
{
var brush = new SolidColorBrush(Color.FromRgb(0xDE, 0xE2, 0xE6));
if (brush.CanFreeze)
brush.Freeze();
return brush;
}
private ObservableCollection<HierarchicalSelectionItem> categoryHierarchy = new ObservableCollection<HierarchicalSelectionItem>(); private ObservableCollection<HierarchicalSelectionItem> categoryHierarchy = new ObservableCollection<HierarchicalSelectionItem>();
private readonly Dictionary<string, HierarchicalSelectionItem> categoryLookup = new Dictionary<string, HierarchicalSelectionItem>(StringComparer.OrdinalIgnoreCase); private readonly Dictionary<string, HierarchicalSelectionItem> categoryLookup = new Dictionary<string, HierarchicalSelectionItem>(StringComparer.OrdinalIgnoreCase);
@@ -2450,8 +2458,8 @@ namespace FasdDesktopUi.Basics.UserControls
private bool CheckTextBlockNotEmpty(TextBlock _textBlock, bool notEmpty) private bool CheckTextBlockNotEmpty(TextBlock _textBlock, bool notEmpty)
{ {
var _retVal = false; var _retVal = false;
Brush _borderCaseNores = (SolidColorBrush)new BrushConverter().ConvertFromString("#DEE2E6"); Brush _borderCaseNores = DefaultTextBoxBorderBrush;
if (notEmpty && string.IsNullOrWhiteSpace(_textBlock.Text)) if (notEmpty && string.IsNullOrWhiteSpace(_textBlock.Text))
{ {
_retVal = true; _retVal = true;
@@ -2464,74 +2472,40 @@ namespace FasdDesktopUi.Basics.UserControls
private static void setTextboxErrorState(object sender, bool hasError) private static void setTextboxErrorState(object sender, bool hasError)
{ {
if (sender is TextBox textBox) var textBox = sender as TextBox;
{ if (textBox == null)
// Überprüfe den Inhalt und setze die Hintergrundfarbe entsprechend return;
if (hasError)
{ textBox.BorderBrush = hasError
// Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen ? SharedValidationBorderBrush
textBox.BorderBrush = SharedValidationBorderBrush; : DefaultTextBoxBorderBrush;
} }
else
{ private void UpdateCategoryValidationVisualState(bool hasError) =>
// Setze die ursprüngliche Hintergrundfarbe zurück, wenn die Validierung erfolgreich ist UpdateValidationBorderState(CategoryValidationBorder, ref defaultCategoryBorderBrush, ref defaultCategoryBorderThickness, hasError);
textBox.BorderBrush = (SolidColorBrush)new BrushConverter().ConvertFromString("#DEE2E6");
} private void UpdateQuickTicketValidationVisualState(bool hasError) =>
UpdateValidationBorderState(QuickTicketValidationBorder, ref defaultQuickTicketBorderBrush, ref defaultQuickTicketBorderThickness, hasError);
private void UpdateTicketStatusValidationVisualState(bool hasError) =>
UpdateValidationBorderState(TicketStatusValidationBorder, ref defaultTicketStatusBorderBrush, ref defaultTicketStatusBorderThickness, hasError);
private void UpdateValidationBorderState(Border border, ref Brush defaultBrush, ref Thickness? defaultThickness, bool hasError)
{
if (border == null)
return;
if (defaultBrush == null)
{
var borderBrush = border.BorderBrush;
defaultBrush = borderBrush != null ? borderBrush.CloneCurrentValue() : null;
} }
}
private void UpdateCategoryValidationVisualState(bool hasError) if (!defaultThickness.HasValue)
{ defaultThickness = border.BorderThickness;
if (CategoryValidationBorder == null)
return;
if (defaultCategoryBorderBrush == null) border.BorderBrush = hasError ? validationErrorBrush : defaultBrush;
defaultCategoryBorderBrush = CategoryValidationBorder.BorderBrush?.CloneCurrentValue(); border.BorderThickness = hasError ? new Thickness(1) : defaultThickness ?? new Thickness(0);
if (defaultCategoryBorderThickness == null)
defaultCategoryBorderThickness = CategoryValidationBorder.BorderThickness;
CategoryValidationBorder.BorderBrush = hasError
? validationErrorBrush
: defaultCategoryBorderBrush;
CategoryValidationBorder.BorderThickness = hasError
? new Thickness(1)
: defaultCategoryBorderThickness ?? new Thickness(0);
}
private void UpdateQuickTicketValidationVisualState(bool hasError)
{
if (QuickTicketValidationBorder == null)
return;
if (defaultQuickTicketBorderBrush == null)
defaultQuickTicketBorderBrush = QuickTicketValidationBorder.BorderBrush?.CloneCurrentValue();
if (defaultQuickTicketBorderThickness == null)
defaultQuickTicketBorderThickness = QuickTicketValidationBorder.BorderThickness;
QuickTicketValidationBorder.BorderBrush = hasError
? validationErrorBrush
: defaultQuickTicketBorderBrush;
QuickTicketValidationBorder.BorderThickness = hasError
? new Thickness(1)
: defaultQuickTicketBorderThickness ?? new Thickness(0);
}
private void UpdateTicketStatusValidationVisualState(bool hasError)
{
if (TicketStatusValidationBorder == null)
return;
if (defaultTicketStatusBorderBrush == null)
defaultTicketStatusBorderBrush = TicketStatusValidationBorder.BorderBrush?.CloneCurrentValue();
if (defaultTicketStatusBorderThickness == null)
defaultTicketStatusBorderThickness = TicketStatusValidationBorder.BorderThickness;
TicketStatusValidationBorder.BorderBrush = hasError
? validationErrorBrush
: defaultTicketStatusBorderBrush;
TicketStatusValidationBorder.BorderThickness = hasError
? new Thickness(1)
: defaultTicketStatusBorderThickness ?? new Thickness(0);
} }