События жизненного цикла компонента рабочего места¶
Интерфейс компонента рабочего места IWorkplaceViewComponent
имеет ряд событий, позволяющих запускать обработчики на разных этапах жизненного цикла компонентов:
-
Initializing
- Событие, вызываемое при инициализации элемента. -
Closing
- Событие, вызываемое при закрытии элеменета. -
Loading
- Событие, вызываемое при загрузке контента (отображении) элемента. -
CanUnload
- Событие, вызываемое перед выгрузкой контента элемента, с помощью которого можно отменить выгрузку. -
Unloading
- Событие, вызываемое при выгрузке контента (скрытии) элемента.
В качестве примера рассмотрим расширение компонента дерева рабочего места, которое будет вызывать диалог подтверждения при попытке его переключения или закрытия:
using Tessa.UI;
using Tessa.UI.Views;
namespace Tessa.Extensions.Client
{
public class WorkplaceItemUnloadPromptExtension : IWorkplaceViewComponentExtension
{
public void Clone(IWorkplaceViewComponent source, IWorkplaceViewComponent cloned, ICloneableContext context)
{
}
public void Initialize(IWorkplaceViewComponent model)
{
}
public void Initialized(IWorkplaceViewComponent model)
{
// После инициализации узла дерева добавим обработчик для события, с помощью которого можно отменить выгрузку.
model.CanUnload += Model_CanUnload;
}
private void Model_CanUnload(object sender, Tessa.Platform.DeferredCancelEventArgs e)
{
// В обработчике события вызываем диалог подтверждения.
if (!TessaDialog.Confirm("Узел будет закрыт. Вы уверены?"))
{
// Если действие не подтверждено, выставляем истинное значение для признака отмены действия.
// Переключение / закрытие узла дерева при этом не произойдет.
e.Cancel = true;
}
}
}
}