1.1.0: Added validate attribute with NotNullField
This commit is contained in:
parent
18356eb532
commit
41ced8fdb7
15 changed files with 166 additions and 8 deletions
|
|
@ -75,6 +75,7 @@ namespace Module.Inspector.Editor.Utilities
|
|||
var predrawerModifiers = new List<ResultValue<PredrawerModifierPropertyAttribute, PredrawerModifierPropertyDrawer>>(2);
|
||||
var valueModifiers = new List<ResultValue<ValueModifierPropertyAttribute, ValueModifierPropertyDrawer>>(2);
|
||||
var accessModifiers = new List<ResultValue<AccessModifierPropertyAttribute, AccessModifierPropertyDrawer>>(2);
|
||||
var validators = new List<ResultValue<ValidatePropertyAttribute, ValidatePropertyDrawer>>(2);
|
||||
object[] attributes = fieldInfo.GetCustomAttributes(false);
|
||||
string tooltip = null;
|
||||
var isObsolete = false;
|
||||
|
|
@ -115,6 +116,13 @@ namespace Module.Inspector.Editor.Utilities
|
|||
if (prop != null)
|
||||
accessModifiers.Add(new ResultValue<AccessModifierPropertyAttribute, AccessModifierPropertyDrawer>(accessModifier, prop));
|
||||
}
|
||||
else if (att is ValidatePropertyAttribute validator)
|
||||
{
|
||||
var prop = InternalCreateInstanceOf<ValidatePropertyDrawer>(validator);
|
||||
|
||||
if (prop != null)
|
||||
validators.Add(new ResultValue<ValidatePropertyAttribute, ValidatePropertyDrawer>(validator, prop));
|
||||
}
|
||||
else if (att is TooltipAttribute attTooltip)
|
||||
{
|
||||
tooltip = attTooltip.tooltip;
|
||||
|
|
@ -144,7 +152,7 @@ namespace Module.Inspector.Editor.Utilities
|
|||
}
|
||||
}
|
||||
|
||||
return new Result(drawer, predrawerModifiers, valueModifiers, accessModifiers, tooltip, isObsolete);
|
||||
return new Result(drawer, predrawerModifiers, valueModifiers, accessModifiers, validators, tooltip, isObsolete);
|
||||
}
|
||||
|
||||
private static T InternalCreateInstanceOf<T>(AbstractPropertyAttribute att) where T : AbstractPropertyDrawer
|
||||
|
|
@ -172,6 +180,7 @@ namespace Module.Inspector.Editor.Utilities
|
|||
public readonly List<ResultValue<PredrawerModifierPropertyAttribute, PredrawerModifierPropertyDrawer>> predrawerModifiers;
|
||||
public readonly List<ResultValue<ValueModifierPropertyAttribute, ValueModifierPropertyDrawer>> valueModifiers;
|
||||
public readonly List<ResultValue<AccessModifierPropertyAttribute, AccessModifierPropertyDrawer>> accessModifiers;
|
||||
public readonly List<ResultValue<ValidatePropertyAttribute, ValidatePropertyDrawer>> validators;
|
||||
public readonly string tooltip;
|
||||
public readonly bool isObsolete;
|
||||
|
||||
|
|
@ -179,6 +188,7 @@ namespace Module.Inspector.Editor.Utilities
|
|||
List<ResultValue<PredrawerModifierPropertyAttribute, PredrawerModifierPropertyDrawer>> predrawerModifiers,
|
||||
List<ResultValue<ValueModifierPropertyAttribute, ValueModifierPropertyDrawer>> valueModifiers,
|
||||
List<ResultValue<AccessModifierPropertyAttribute, AccessModifierPropertyDrawer>> accessModifiers,
|
||||
List<ResultValue<ValidatePropertyAttribute, ValidatePropertyDrawer>> validators,
|
||||
string tooltip,
|
||||
bool isObsolete)
|
||||
{
|
||||
|
|
@ -186,6 +196,7 @@ namespace Module.Inspector.Editor.Utilities
|
|||
this.predrawerModifiers = predrawerModifiers;
|
||||
this.valueModifiers = valueModifiers;
|
||||
this.accessModifiers = accessModifiers;
|
||||
this.validators = validators;
|
||||
this.tooltip = tooltip;
|
||||
this.isObsolete = isObsolete;
|
||||
}
|
||||
|
|
@ -222,6 +233,17 @@ namespace Module.Inspector.Editor.Utilities
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
public T GetValidator<T>() where T : ValidatePropertyAttribute
|
||||
{
|
||||
for (var i = 0; i < validators.Count; i++)
|
||||
{
|
||||
if (validators[i].attribute is T att)
|
||||
return att;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue