|
|
|
@@ -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);
|
|
|
|
@@ -2451,7 +2459,7 @@ 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)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
textBox.BorderBrush = hasError
|
|
|
|
|
|
|
|
? SharedValidationBorderBrush
|
|
|
|
|
|
|
|
: DefaultTextBoxBorderBrush;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void UpdateCategoryValidationVisualState(bool hasError) =>
|
|
|
|
|
|
|
|
UpdateValidationBorderState(CategoryValidationBorder, ref defaultCategoryBorderBrush, ref defaultCategoryBorderThickness, hasError);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// Überprüfe den Inhalt und setze die Hintergrundfarbe entsprechend
|
|
|
|
var borderBrush = border.BorderBrush;
|
|
|
|
if (hasError)
|
|
|
|
defaultBrush = borderBrush != null ? borderBrush.CloneCurrentValue() : null;
|
|
|
|
{
|
|
|
|
|
|
|
|
// Setze die Hintergrundfarbe auf Rot, um einen Validierungsfehler anzuzeigen
|
|
|
|
|
|
|
|
textBox.BorderBrush = SharedValidationBorderBrush;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// Setze die ursprüngliche Hintergrundfarbe zurück, wenn die Validierung erfolgreich ist
|
|
|
|
|
|
|
|
textBox.BorderBrush = (SolidColorBrush)new BrushConverter().ConvertFromString("#DEE2E6");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|