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();
}
}
}