using DesktopTools.Helpers; using ModuleTools.Enums; using System; using System.Windows.Forms; namespace DesktopTools.Controls { public partial class BaseControlViewEntityElement : UserControl { /// /// Признак налиичия изменений /// protected bool _haveChages = false; /// /// Событие, вызываемое при закрытии контрола /// protected event Action CloseEvent; /// /// Событие, вызываемое при закрытии контрола /// public event Action CloseEventAdd { add { CloseEvent += value; } remove { CloseEvent -= value; } } /// /// Открытие формы /// public virtual void Open() { } /// /// Закрытие формы /// public virtual void Close() { if(_haveChages && DialogHelper.MessageQuestion("Имеется несохраненные данные, вы действительно хотите закрыть элемент?", "Закрытие элемента") == DialogResult.Yes) { if (!Save()) { return; } } CloseEvent?.Invoke(ControlId); Form?.Close(); Dispose(); } protected virtual bool Save() { return true; } /// /// Дубликат контрола /// /// public virtual BaseControlViewEntityElement Clone() { return null; } /// /// Установка флага, что есть изменения /// protected void ValueChange() => _haveChages = true; /// /// Идентификатор контрола /// public Guid ControlId { get; protected set; } /// /// Идентификатор элемента с которым идет раота при редактировании /// public Guid? ElementId { get; protected set; } /// /// Идентификатор родителського элемента /// public Guid? ParentEleemtId { get; protected set; } /// /// Заголовок контрола /// public string Title { get; protected set; } /// /// Порядок контрола в меню /// public int Order { get; protected set; } /// /// Операция в системе /// public AccessOperation AccessOperation { get; protected set; } /// /// Форма в которой открыт контрол /// public Form Form { get; set; } /// /// Констркутор /// public BaseControlViewEntityElement() { InitializeComponent(); } } }