mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-02-28 12:50:38 +00:00
80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
import { find } from 'lodash';
|
|
|
|
import {
|
|
BaseManager,
|
|
connectGeneralManager,
|
|
connectGeneralManagerList,
|
|
IDesignerController,
|
|
IManagerController,
|
|
} from './base';
|
|
import VisualDesigner from './visualDesigner';
|
|
|
|
export default class VisualManager extends BaseManager implements IManagerController, IDesignerController {
|
|
private visualManagerList: VisualManager[] = [];
|
|
private visualDesignerList: VisualDesigner[] = [];
|
|
|
|
getManager(): VisualManager {
|
|
return this.visualManagerList[0];
|
|
}
|
|
|
|
getManagerByName(name?: string): VisualManager[] {
|
|
return this.visualManagerList.filter((m) => m.getName() === name);
|
|
}
|
|
|
|
getManagerById(id?: string): VisualManager {
|
|
return find(this.visualManagerList, (m) => m.getId() === id) as VisualManager;
|
|
}
|
|
|
|
getManagerList(): VisualManager[] {
|
|
return this.visualManagerList;
|
|
}
|
|
|
|
getDesigner(): VisualDesigner {
|
|
return this.visualDesignerList[0];
|
|
}
|
|
|
|
getDesignerByName(name?: string): VisualDesigner[] {
|
|
return this.visualDesignerList.filter((m) => m.getName() === name);
|
|
}
|
|
|
|
getDesignerById(id?: string): VisualDesigner {
|
|
return find(this.visualDesignerList, (m) => m.getId() === id) as VisualDesigner;
|
|
}
|
|
|
|
getDesignerList() {
|
|
return this.visualDesignerList;
|
|
}
|
|
|
|
connectManager(manager: VisualManager) {
|
|
connectGeneralManager.call(this, manager, this.visualManagerList);
|
|
return this;
|
|
}
|
|
|
|
connectDesigner(manager: VisualDesigner): this {
|
|
connectGeneralManager.call(this, manager, this.visualDesignerList);
|
|
return this;
|
|
}
|
|
|
|
connectManagerList(managerList: VisualManager[]): this {
|
|
this.visualManagerList = connectGeneralManagerList.call(this, managerList, this.visualManagerList);
|
|
return this;
|
|
}
|
|
|
|
connectDesignerList(managerList: VisualDesigner[]): this {
|
|
this.visualDesignerList = connectGeneralManagerList.call(this, managerList, this.visualDesignerList);
|
|
return this;
|
|
}
|
|
|
|
notifyAllManagers(eventName: string | symbol, ...eventData: any[]): boolean {
|
|
return this.getManagerList()
|
|
.map((m) => m.emit(eventName, eventData))
|
|
.every((r) => r);
|
|
}
|
|
|
|
notifyAllDesigners(eventName: string | symbol, ...eventData: any[]): boolean {
|
|
return this.getDesignerList()
|
|
.map((m) => m.emit(eventName, eventData))
|
|
.every((r) => r);
|
|
}
|
|
}
|