import { Subject } from "rxjs"; import { IEditorController } from "../controller/types"; import { TabToolbarItem } from "../interface/tool-bar"; import { CommonFileNavTreeComponent } from '../views/nav-panel/common-file-nav-tree/common-file-nav-tree'; /** * 导航面板工具栏配置服务基类 * @remarks 提供工具栏按钮及其菜单的配置,并注册命令回调方法 */ export declare abstract class ToolbarConfigService { /** * 代码视图控制器实例 * @remarks * 提供工具栏服务对标签页以及其它部件的控制能力(afterPropertySet被调用后本属性可用) * afterPropertySet、executeCommand、getToolbarItems被调用时,该属性保证非空 * 编写预置模板时该属性无效(preset-panel,直接通过依赖注入获取控制器实例即可) */ protected editorController: IEditorController; /** * 内置导航树组件实例 * @remarks 如果配置了模板则该字段为空(afterPropertySet被调用后本属性可用) */ protected navTreeCmp?: CommonFileNavTreeComponent; /** * 属性设置完成后回调 * @remarks * 当editorController、navTreeCmp属性设置完成后本方法被调用 * 如果需要在服务初始化时通过控制器的事件总线订阅一些消息,你需要覆盖本方法(本方法被调用之前,控制器实例可能为空) */ afterPropertySet(): void; /** 提醒工具栏组件配置更新,需要重新渲染 */ readonly updated: Subject; private _updated; /** 获取工具栏按钮配置 */ abstract getToolbarItems(): TabToolbarItem[]; /** * 执行本工具栏所引发的命令 * @param command 命令标识 */ abstract executeCommand(command: string): void; }