105 lines
2.8 KiB
C#
105 lines
2.8 KiB
C#
using DesktopTools.Helpers;
|
||
using ModuleTools.Enums;
|
||
using System;
|
||
using System.Windows.Forms;
|
||
|
||
namespace DesktopTools.Controls
|
||
{
|
||
public partial class BaseControlViewEntityElement : UserControl
|
||
{
|
||
/// <summary>
|
||
/// Признак налиичия изменений
|
||
/// </summary>
|
||
protected bool _haveChages = false;
|
||
|
||
/// <summary>
|
||
/// Событие, вызываемое при закрытии контрола
|
||
/// </summary>
|
||
protected event Action<Guid> CloseEvent;
|
||
|
||
/// <summary>
|
||
/// Событие, вызываемое при закрытии контрола
|
||
/// </summary>
|
||
public event Action<Guid> CloseEventAdd { add { CloseEvent += value; } remove { CloseEvent -= value; } }
|
||
|
||
/// <summary>
|
||
/// Открытие формы
|
||
/// </summary>
|
||
public virtual void Open() { }
|
||
|
||
/// <summary>
|
||
/// Закрытие формы
|
||
/// </summary>
|
||
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; }
|
||
|
||
/// <summary>
|
||
/// Дубликат контрола
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public virtual BaseControlViewEntityElement Clone() { return null; }
|
||
|
||
/// <summary>
|
||
/// Установка флага, что есть изменения
|
||
/// </summary>
|
||
protected void ValueChange() => _haveChages = true;
|
||
|
||
/// <summary>
|
||
/// Идентификатор контрола
|
||
/// </summary>
|
||
public Guid ControlId { get; protected set; }
|
||
|
||
/// <summary>
|
||
/// Идентификатор элемента с которым идет раота при редактировании
|
||
/// </summary>
|
||
public Guid? ElementId { get; protected set; }
|
||
|
||
/// <summary>
|
||
/// Идентификатор родителського элемента
|
||
/// </summary>
|
||
public Guid? ParentEleemtId { get; protected set; }
|
||
|
||
/// <summary>
|
||
/// Заголовок контрола
|
||
/// </summary>
|
||
public string Title { get; protected set; }
|
||
|
||
/// <summary>
|
||
/// Порядок контрола в меню
|
||
/// </summary>
|
||
public int Order { get; protected set; }
|
||
|
||
/// <summary>
|
||
/// Операция в системе
|
||
/// </summary>
|
||
public AccessOperation AccessOperation { get; protected set; }
|
||
|
||
/// <summary>
|
||
/// Форма в которой открыт контрол
|
||
/// </summary>
|
||
public Form Form { get; set; }
|
||
|
||
/// <summary>
|
||
/// Констркутор
|
||
/// </summary>
|
||
public BaseControlViewEntityElement()
|
||
{
|
||
InitializeComponent();
|
||
}
|
||
}
|
||
}
|