DFLayoutEmbeddedImageProperties.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System;
  2. using System.Collections.Generic;
  3. namespace InABox.Core
  4. {
  5. public class DFLayoutEmbeddedImageProperties : DFLayoutFieldProperties<Guid, DFLayoutEmbeddedMediaValue>
  6. {
  7. [EditorSequence(-995)]
  8. [NullEditor]
  9. public override Guid Default { get; set; }
  10. [CheckBoxEditor]
  11. [EditorSequence(1)]
  12. public bool DisableLibrary { get; set; }
  13. public override string FormatValue(DFLayoutEmbeddedMediaValue value)
  14. {
  15. return value.ID != Guid.Empty ? "Yes" : "";
  16. }
  17. public override DFLayoutEmbeddedMediaValue DeserializeValue(DFLoadStorageEntry entry)
  18. {
  19. var value = new DFLayoutEmbeddedMediaValue();
  20. value.Deserialize(entry);
  21. return value;
  22. }
  23. public override void SerializeValue(DFSaveStorageEntry entry, DFLayoutEmbeddedMediaValue value)
  24. {
  25. value.Serialize(entry);
  26. }
  27. public override Guid GetValue(DFLayoutEmbeddedMediaValue value)
  28. {
  29. return value.ID;
  30. }
  31. public override IEnumerable<CoreColumn> GetDisplayColumns()
  32. {
  33. yield return new CoreColumn { ColumnName = Code, DataType = typeof(byte[]) };
  34. yield return new CoreColumn { ColumnName = $"{Code}.ID", DataType = typeof(Guid) };
  35. yield return new CoreColumn { ColumnName = $"{Code}.Thumbnail", DataType = typeof(byte[]) };
  36. }
  37. public override IEnumerable<KeyValuePair<string, object?>> GetDisplayValues(DFLayoutEmbeddedMediaValue value)
  38. {
  39. if(value.Data != null && value.Data.Length > 0)
  40. {
  41. yield return new KeyValuePair<string, object?>(Code, value.Data);
  42. }
  43. else
  44. {
  45. yield return new KeyValuePair<string, object?>(Code, DigitalFormDocumentFactory.LoadDocument(value.ID));
  46. }
  47. yield return new KeyValuePair<string, object?>($"{Code}.ID", value.ID);
  48. yield return new KeyValuePair<string, object?>($"{Code}.Thumbnail", value.Thumbnail);
  49. }
  50. protected override void LoadProperties()
  51. {
  52. base.LoadProperties();
  53. DisableLibrary = GetProperty("DisableLibrary", false);
  54. }
  55. protected override void SaveProperties()
  56. {
  57. base.SaveProperties();
  58. SetProperty("DisableLibrary", DisableLibrary);
  59. }
  60. }
  61. }