添加测试信息

This commit is contained in:
yuding
2025-12-08 10:02:24 +08:00
parent 244891ceec
commit c112c87dad
21 changed files with 3355 additions and 2192 deletions

View File

@@ -1,48 +1,46 @@
import { BimButtonGroup } from '../components/button-group';
import type { ButtonGroupOptions } from '../components/button-group/index.type';
import type { ThemeConfig } from '../themes/types';
import { BimComponent } from '../core/component';
import type { BimEngine } from '../bim-engine';
/**
* 通用按钮组管理器
* 负责创建和管理除底部工具栏以外的其他按钮组。
* 通用按钮组管理器 (ButtonGroupManager)
* 负责创建和管理通用的按钮组实例
*/
export class ButtonGroupManager {
private activeGroups: BimButtonGroup[] = [];
export class ButtonGroupManager extends BimComponent {
private groups: Map<string, BimButtonGroup> = new Map();
private container: HTMLElement;
constructor(container: HTMLElement) {
constructor(engine: BimEngine, container: HTMLElement) {
super(engine);
this.container = container;
}
/**
* 创建一个新的按钮组
*/
public create(options: Omit<ButtonGroupOptions, 'container'>): BimButtonGroup {
// 自动创建一个 div 作为容器
const groupContainer = document.createElement('div');
this.container.appendChild(groupContainer);
public create(id: string, options: Omit<ButtonGroupOptions, 'container'>): BimButtonGroup {
const group = new BimButtonGroup({
container: groupContainer,
container: this.container,
...options
});
// 立即初始化
// @ts-ignore
group.setEngine(this.engine);
group.init();
this.activeGroups.push(group);
this.groups.set(id, group);
return group;
}
public updateTheme(theme: ThemeConfig) {
this.activeGroups.forEach(g => g.setTheme(theme));
public get(id: string): BimButtonGroup | undefined {
return this.groups.get(id);
}
public refresh() {
this.activeGroups.forEach(g => g.render());
public updateTheme(theme: ThemeConfig) {
this.groups.forEach(group => group.setTheme(theme));
}
public destroy() {
this.activeGroups.forEach(g => g.destroy());
this.activeGroups = [];
this.groups.forEach(group => group.destroy());
this.groups.clear();
}
}