2021-03-29 23:16:11 +04:00
|
|
|
|
using DesktopTools.Helpers;
|
|
|
|
|
using ModuleTools.Enums;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace DesktopTools.Controls
|
|
|
|
|
{
|
2021-03-30 22:34:31 +04:00
|
|
|
|
public abstract partial class AbstractControlViewEntityElement : UserControl
|
2021-03-29 23:16:11 +04:00
|
|
|
|
{
|
|
|
|
|
/// <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>
|
2021-03-30 22:34:31 +04:00
|
|
|
|
public abstract void Open(Guid? id);
|
2021-03-29 23:16:11 +04:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Закрытие формы
|
|
|
|
|
/// </summary>
|
2021-03-30 22:34:31 +04:00
|
|
|
|
public void Close()
|
2021-03-29 23:16:11 +04:00
|
|
|
|
{
|
|
|
|
|
if(_haveChages && DialogHelper.MessageQuestion("Имеется несохраненные данные, вы действительно хотите закрыть элемент?", "Закрытие элемента") ==
|
|
|
|
|
DialogResult.Yes)
|
|
|
|
|
{
|
|
|
|
|
if (!Save())
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
CloseEvent?.Invoke(ControlId);
|
|
|
|
|
Form?.Close();
|
|
|
|
|
Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
2021-03-30 22:34:31 +04:00
|
|
|
|
protected abstract bool Save();
|
2021-03-29 23:16:11 +04:00
|
|
|
|
|
|
|
|
|
/// <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>
|
2021-03-30 22:34:31 +04:00
|
|
|
|
public AbstractControlViewEntityElement()
|
2021-03-29 23:16:11 +04:00
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|