From 48bfe1ec00f399f89ea1d617663f2b81ec0ed89f Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Wed, 23 Apr 2025 12:14:20 +0200 Subject: [PATCH] optimizations --- .../RadValidationProviderEx.cs | 32 ++++++++++++++++--- Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs | 13 ++++---- Pilz.UI.Telerik/Pilz.UI.Telerik.csproj | 2 +- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/Pilz.UI.Telerik/Controls/RadValidationProvider/RadValidationProviderEx.cs b/Pilz.UI.Telerik/Controls/RadValidationProvider/RadValidationProviderEx.cs index 7aa08ba..4816c23 100644 --- a/Pilz.UI.Telerik/Controls/RadValidationProvider/RadValidationProviderEx.cs +++ b/Pilz.UI.Telerik/Controls/RadValidationProvider/RadValidationProviderEx.cs @@ -1,4 +1,6 @@ -using System.ComponentModel; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; using System.Drawing.Design; using System.Globalization; using System.Reflection; @@ -672,13 +674,33 @@ public class RadValidationProviderEx : Component, ISupportInitialize, IExtenderP [Editor(DesignerConsts.RadValidationRuleEditorString, typeof(UITypeEditor))] public void SetValidationRule(RadControl control, FilterDescriptor rule) { - var radValidationRule = rule as IRadValidationRuleEx; - if (radValidationRule == null) + if (rule is not IRadValidationRuleEx radValidationRule) RemoveControlFromRules(control); else - { radValidationRule.AddControl(control); - } + } + + /// + /// Associates a validation rule with the specified RadControls descendant. + /// + /// A RadControl collection descendant that represents the editors. + /// A RadValidationRule descendant that represents the validation rule. + [Editor(DesignerConsts.RadValidationRuleEditorString, typeof(UITypeEditor))] + public void SetValidationRule(IEnumerable controls, FilterDescriptor rule) + { + SetValidationRule(controls.OfType(), rule); + } + + /// + /// Associates a validation rule with the specified RadControls descendant. + /// + /// A RadControl collection descendant that represents the editors. + /// A RadValidationRule descendant that represents the validation rule. + [Editor(DesignerConsts.RadValidationRuleEditorString, typeof(UITypeEditor))] + public void SetValidationRule(IEnumerable controls, FilterDescriptor rule) + { + foreach (var control in controls) + SetValidationRule(control, rule); } /// diff --git a/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs b/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs index a167f65..142f168 100644 --- a/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs +++ b/Pilz.UI.Telerik/Dialogs/RadFlyoutBase.cs @@ -15,11 +15,13 @@ public partial class RadFlyoutBase : UserControl protected TableLayoutPanel tableLayoutPanel_ActionPanel; protected TableLayoutPanel tableLayoutPanel_TitlePanel; protected RadLabel radLabel_Title; - protected RadValidationProviderEx validationProvider = new(); public static RadSvgImage? CancelSvg { get; set; } = null; public static RadSvgImage? ConfirmSvg { get; set; } = null; + [Browsable(false)] + public RadValidationProviderEx ValidationProvider { get; } = new(); + [ReadOnly(true)] public DialogResult Result { get; protected set; } @@ -98,14 +100,11 @@ public partial class RadFlyoutBase : UserControl } } - [Browsable(false)] - public FilterDescriptorCollection ValidationRules => validationProvider.ValidationRules; - [DefaultValue(typeof(ValidationMode), "OnValidating")] public ValidationMode ValidationMode { - get => validationProvider.ValidationMode; - set => validationProvider.ValidationMode = value; + get => ValidationProvider.ValidationMode; + set => ValidationProvider.ValidationMode = value; } protected RadFlyoutBase() @@ -264,7 +263,7 @@ public partial class RadFlyoutBase : UserControl protected virtual bool ValidateOK() { - return validationProvider.ValidateAll(); + return ValidationProvider.ValidateAll(); } protected virtual void SetShowTitlePanel() diff --git a/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj b/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj index 54dd4ed..abad732 100644 --- a/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj +++ b/Pilz.UI.Telerik/Pilz.UI.Telerik.csproj @@ -9,7 +9,7 @@ - 2.10.0 + 2.10.1 True