ProductDimensionUnitGrid.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. namespace PRSDesktop.Grids
  7. {
  8. public class ProductDimensionUnitGrid : DynamicDataGrid<ProductDimensionUnit>
  9. {
  10. protected override void DoValidate(ProductDimensionUnit[] items, List<string> errors)
  11. {
  12. base.DoValidate(items, errors);
  13. foreach (var item in items)
  14. item.Validate(errors);
  15. }
  16. protected override void CustomiseEditor(ProductDimensionUnit[] items, DynamicGridColumn column, BaseEditor editor)
  17. {
  18. base.CustomiseEditor(items, column, editor);
  19. if (column.ColumnName == nameof(ProductDimensionUnit.Conversion) && editor is ScriptEditor scriptEditor)
  20. {
  21. scriptEditor.Type = ScriptEditorType.TemplateEditor;
  22. scriptEditor.OnEditorClicked += () =>
  23. {
  24. var script = items.FirstOrDefault()?.Conversion.NotWhiteSpaceOr()
  25. ?? DimensionUnit.DefaultConvertDimensionsScript();
  26. var editor = new ScriptEditorWindow(script, SyntaxLanguage.CSharp);
  27. if (editor.ShowDialog() == true)
  28. {
  29. foreach (var item in items)
  30. SetEditorValue(item, column.ColumnName, editor.Script);
  31. }
  32. };
  33. }
  34. }
  35. }
  36. }