refactor: 重构 Manager 架构,引入 ManagerRegistry 和 BaseManager 基类
- 新增 ManagerRegistry 单例注册表,统一管理所有 Manager 实例 - 新增 BaseManager 基类,自动管理事件订阅清理 - 新增 BaseDialogManager 基类,统一对话框生命周期管理 - 重构 15 个 Manager 使用新基类 - 重构 Toolbar 按钮和 Menu 按钮移除 engine 参数依赖 - 删除 BimComponent 基类(已不再使用) - 为所有 Manager 和核心模块添加中文 JSDoc 注释
This commit is contained in:
@@ -1,15 +1,16 @@
|
||||
import { BimEngine } from "../../../bim-engine";
|
||||
import { MenuItemConfig } from "../item";
|
||||
import { MenuItemConfig } from '../item';
|
||||
import { ManagerRegistry } from '../../../core/manager-registry';
|
||||
|
||||
export const fourMenuButton = (engine: BimEngine): MenuItemConfig => {
|
||||
export const fourMenuButton = (): MenuItemConfig => {
|
||||
return {
|
||||
id: "fourMenu",
|
||||
label: "menu.info",
|
||||
id: 'fourMenu',
|
||||
label: 'menu.info',
|
||||
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M12 7q.425 0 .713-.288T13 6t-.288-.712T12 5t-.712.288T11 6t.288.713T12 7m0 8q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9t-.712.288T11 10v4q0 .425.288.713T12 15m-6 3l-2.3 2.3q-.475.475-1.088.213T2 19.575V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18z"/></svg>',
|
||||
onClick: () => {
|
||||
console.log('dianjile')
|
||||
engine.dialog?.showInfoDialog()
|
||||
engine.engine?.rightKey?.hide()
|
||||
console.log('dianjile');
|
||||
const registry = ManagerRegistry.getInstance();
|
||||
registry.dialog?.showInfoDialog();
|
||||
registry.engine3d?.rightKey?.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
import { BimEngine } from "../../../bim-engine";
|
||||
import { MenuItemConfig } from "../item";
|
||||
import { fourMenuButton } from "./four";
|
||||
import { secondMenuButton } from "./second";
|
||||
import { MenuItemConfig } from '../item';
|
||||
import { ManagerRegistry } from '../../../core/manager-registry';
|
||||
import { secondMenuButton } from './second';
|
||||
import { fourMenuButton } from './four';
|
||||
|
||||
export const homeMenuButton = (engine: BimEngine): MenuItemConfig => {
|
||||
export const homeMenuButton = (): MenuItemConfig => {
|
||||
return {
|
||||
id: "homeMenu",
|
||||
label: "menu.home",
|
||||
id: 'homeMenu',
|
||||
label: 'menu.home',
|
||||
group: 'home',
|
||||
children: [secondMenuButton(engine), fourMenuButton(engine)],
|
||||
children: [secondMenuButton(), fourMenuButton()],
|
||||
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M12 7q.425 0 .713-.288T13 6t-.288-.712T12 5t-.712.288T11 6t.288.713T12 7m0 8q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9t-.712.288T11 10v4q0 .425.288.713T12 15m-6 3l-2.3 2.3q-.475.475-1.088.213T2 19.575V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18z"/></svg>',
|
||||
onClick: () => {
|
||||
engine.dialog?.showInfoDialog()
|
||||
engine.engine?.rightKey?.hide()
|
||||
const registry = ManagerRegistry.getInstance();
|
||||
registry.dialog?.showInfoDialog();
|
||||
registry.engine3d?.rightKey?.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
import { BimEngine } from "../../../bim-engine";
|
||||
import { MenuItemConfig } from "../item";
|
||||
import { MenuItemConfig } from '../item';
|
||||
import { ManagerRegistry } from '../../../core/manager-registry';
|
||||
|
||||
export const infoMenuButton = (engine: BimEngine): MenuItemConfig => {
|
||||
export const infoMenuButton = (): MenuItemConfig => {
|
||||
return {
|
||||
id: "infoMenu",
|
||||
label: "menu.info",
|
||||
id: 'infoMenu',
|
||||
label: 'menu.info',
|
||||
group: 'info',
|
||||
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M12 7q.425 0 .713-.288T13 6t-.288-.712T12 5t-.712.288T11 6t.288.713T12 7m0 8q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9t-.712.288T11 10v4q0 .425.288.713T12 15m-6 3l-2.3 2.3q-.475.475-1.088.213T2 19.575V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18z"/></svg>',
|
||||
onClick: () => {
|
||||
console.log('dianjile')
|
||||
engine.dialog?.showInfoDialog()
|
||||
engine.engine?.rightKey?.hide()
|
||||
console.log('dianjile');
|
||||
const registry = ManagerRegistry.getInstance();
|
||||
registry.dialog?.showInfoDialog();
|
||||
registry.engine3d?.rightKey?.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import { BimEngine } from "../../../bim-engine";
|
||||
import { MenuItemConfig } from "../item";
|
||||
import { MenuItemConfig } from '../item';
|
||||
import { ManagerRegistry } from '../../../core/manager-registry';
|
||||
|
||||
export const secondMenuButton = (engine: BimEngine): MenuItemConfig => {
|
||||
export const secondMenuButton = (): MenuItemConfig => {
|
||||
return {
|
||||
id: "infoMenu",
|
||||
label: "menu.info",
|
||||
id: 'infoMenu',
|
||||
label: 'menu.info',
|
||||
icon: '<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M12 7q.425 0 .713-.288T13 6t-.288-.712T12 5t-.712.288T11 6t.288.713T12 7m0 8q.425 0 .713-.288T13 14v-4q0-.425-.288-.712T12 9t-.712.288T11 10v4q0 .425.288.713T12 15m-6 3l-2.3 2.3q-.475.475-1.088.213T2 19.575V4q0-.825.588-1.412T4 2h16q.825 0 1.413.588T22 4v12q0 .825-.587 1.413T20 18z"/></svg>',
|
||||
onClick: () => {
|
||||
console.log('dianjile')
|
||||
engine.dialog?.showInfoDialog()
|
||||
engine.engine?.rightKey?.hide()
|
||||
console.log('dianjile');
|
||||
const registry = ManagerRegistry.getInstance();
|
||||
registry.dialog?.showInfoDialog();
|
||||
registry.engine3d?.rightKey?.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user