DepartmentProject/DepartmentPortal/Common/DesktopTools/Controls/AbstractControlViewEntityElement.cs

99 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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