using AuroraDesk.Core.Entities;
using System.Collections.ObjectModel;
namespace AuroraDesk.Core.Interfaces;
///
/// 标签页管理服务接口
/// 负责管理标签页的创建、选择、关闭等操作,分离标签页管理职责
///
public interface ITabManagementService
{
///
/// 标签页集合
///
ObservableCollection Tabs { get; }
///
/// 当前选中的标签页
///
TabItem? SelectedTab { get; set; }
///
/// 当前选中标签页变化事件
///
System.IObservable SelectedTabChanged { get; }
///
/// 创建或更新标签页
///
void CreateOrUpdateTab(NavigationItem navigationItem, ReactiveUI.IRoutableViewModel viewModel);
///
/// 选择标签页
///
void SelectTab(TabItem tab);
///
/// 关闭标签页
///
void CloseTab(TabItem tab);
///
/// 根据 ViewModel 查找标签页
///
TabItem? FindTabByViewModel(ReactiveUI.IRoutableViewModel viewModel);
///
/// 根据 ID 查找标签页
///
TabItem? FindTabById(string tabId);
}