Перейти к содержанию

События жизненного цикла компонента рабочего места

Интерфейс компонента рабочего места 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; } } } }

Back to top