using System; using InABox.Core; namespace InABox.DynamicGrid { public interface IDynamicEditorForm { public delegate Document? FindDocumentEvent(string FileName); public delegate Document? GetDocumentEvent(Guid id); public delegate void SaveDocumentEvent(Document document); event OnBeforeLoad OnBeforeLoad; void BeforeLoad(); event OnAfterLoad OnAfterLoad; void AfterLoad(); event OnValidateData? OnValidateData; OnCustomiseColumns? OnCustomiseColumns { set; } OnDefineFilter? OnDefineFilter { set; } OnDefineLookup? OnDefineLookups { set; } DefineEditorEventHandler? OnDefineEditor { set; } event OnFormCustomiseEditor? OnFormCustomiseEditor; OnReconfigureEditors? OnReconfigureEditors { set; } event OnAfterEditorValueChanged? OnAfterEditorValueChanged; event EditorValueChangedHandler? OnEditorValueChanged; GetDocumentEvent? OnGetDocument { set; } FindDocumentEvent? OnFindDocument { set; } SaveDocumentEvent? OnSaveDocument { set; } event OnSelectPage? OnSelectPage; DynamicGridSaveEvent? OnSaveItem { set; } DynamicEditorPages? Pages { get; } bool ReadOnly { get; set; } BaseObject[] Items { get; set; } void Setup(Type type, DynamicEditorPages? pages = null, DynamicEditorButtons? buttons = null, Func? pageDataHandler = null, bool preloadPages = false); IDynamicEditorControl FindEditor(string columnName); object? GetEditorValue(string columnName); void SetEditorValue(string columnName, object? value); void SetLayoutType() where T : DynamicEditorGridLayout; void UnloadEditorPages(bool saved); } }