import { v4 as uuidV4 } from 'uuid'; import XSystem from '../../XSystem.ts' import WindowForm from '../../window/WindowForm.ts' import type { IProcess } from '@/core/process/IProcess.ts' import type { IProcessInfo } from '@/core/process/IProcessInfo.ts' /** * 进程 */ export default class ProcessImpl implements IProcess { private readonly _id: string = uuidV4(); private readonly _processInfo: IProcessInfo; // 当前进程的窗体集合 private _windowForms: Map = new Map(); public get id() { return this._id; } public get processInfo() { return this._processInfo; } public get windowForms() { return this._windowForms; } constructor(info: IProcessInfo) { console.log(`AppProcess: ${info.name}`) this._processInfo = info; const startName = info.startName; XSystem.instance.processManage.addProcess(this); // 通过设置 isJustProcess 为 true,则不会创建窗体 if (!info.isJustProcess) { this.openWindowForm(startName) } } public openWindowForm(startName: string) { const window = new WindowForm(this, startName); this._windowForms.set(window.id, window); } }