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

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