DFLayoutPINFieldProperties.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. namespace InABox.Core
  2. {
  3. public class DFLayoutPINFieldProperties : DFLayoutFieldProperties<string, string?>
  4. {
  5. [EditorSequence(-995)]
  6. [PINEditor]
  7. public override string Default { get; set; }
  8. public int Length { get; set; }
  9. public DFLayoutPINFieldProperties()
  10. {
  11. Length = 4;
  12. }
  13. public override string FormatValue(string? value)
  14. {
  15. return value ?? string.Empty;
  16. }
  17. public override string? DeserializeValue(DFLoadStorageEntry entry)
  18. {
  19. var value = entry.GetValue();
  20. if(value is int i)
  21. {
  22. return i.ToString();
  23. }
  24. return value?.ToString();
  25. }
  26. public override string GetValue(string? value)
  27. {
  28. return value ?? Default;
  29. }
  30. public override void SerializeValue(DFSaveStorageEntry entry, string? value)
  31. {
  32. entry.SetValue(value);
  33. }
  34. protected override void LoadProperties()
  35. {
  36. base.LoadProperties();
  37. Length = GetProperty("Length", 4);
  38. }
  39. protected override void SaveProperties()
  40. {
  41. base.SaveProperties();
  42. SetProperty("Length", Length);
  43. }
  44. }
  45. }