mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 11:20:11 +00:00
feat(workspace): resource supports the init lifecycle and initializes plugins
This commit is contained in:
parent
8537eff893
commit
0d388a3076
@ -1,5 +1,4 @@
|
|||||||
import { ReactElement } from 'react';
|
import { ReactElement } from 'react';
|
||||||
import { IPublicModelResourceType } from './resource-type';
|
|
||||||
|
|
||||||
export interface IPublicModelResource {
|
export interface IPublicModelResource {
|
||||||
get title(): string | undefined;
|
get title(): string | undefined;
|
||||||
|
|||||||
@ -7,12 +7,16 @@ import { Workspace as InnerWorkSpace } from './workspace';
|
|||||||
const logger = new Logger({ level: 'warn', bizName: 'workspace:resource' });
|
const logger = new Logger({ level: 'warn', bizName: 'workspace:resource' });
|
||||||
|
|
||||||
export class Resource implements IPublicModelResource {
|
export class Resource implements IPublicModelResource {
|
||||||
|
private context: BasicContext;
|
||||||
|
|
||||||
resourceTypeInstance: IPublicResourceTypeConfig;
|
resourceTypeInstance: IPublicResourceTypeConfig;
|
||||||
|
|
||||||
editorViewMap: Map<string, IPublicTypeEditorView> = new Map<string, IPublicTypeEditorView>();
|
editorViewMap: Map<string, IPublicTypeEditorView> = new Map<string, IPublicTypeEditorView>();
|
||||||
|
|
||||||
constructor(readonly resourceData: IPublicResourceData, readonly resourceType: ResourceType, workspace: InnerWorkSpace) {
|
constructor(readonly resourceData: IPublicResourceData, readonly resourceType: ResourceType, workspace: InnerWorkSpace) {
|
||||||
this.resourceTypeInstance = resourceType.resourceTypeModel(new BasicContext(workspace, ''), {});
|
this.context = new BasicContext(workspace, '');
|
||||||
|
this.resourceTypeInstance = resourceType.resourceTypeModel(this.context, {});
|
||||||
|
this.init();
|
||||||
if (this.resourceTypeInstance.editorViews) {
|
if (this.resourceTypeInstance.editorViews) {
|
||||||
this.resourceTypeInstance.editorViews.forEach((d: any) => {
|
this.resourceTypeInstance.editorViews.forEach((d: any) => {
|
||||||
this.editorViewMap.set(d.viewName, d);
|
this.editorViewMap.set(d.viewName, d);
|
||||||
@ -51,6 +55,11 @@ export class Resource implements IPublicModelResource {
|
|||||||
return this.resourceData?.category;
|
return this.resourceData?.category;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async init() {
|
||||||
|
await this.resourceTypeInstance.init?.();
|
||||||
|
await this.context.innerPlugins.init();
|
||||||
|
}
|
||||||
|
|
||||||
async import(schema: any) {
|
async import(schema: any) {
|
||||||
return await this.resourceTypeInstance.import?.(schema);
|
return await this.resourceTypeInstance.import?.(schema);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user