feat(workspace): add resourceTypeList api (#2148)

This commit is contained in:
刘菊萍(絮黎) 2023-06-07 17:21:10 +08:00 committed by GitHub
parent ee0d120bbd
commit dc029c252a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 27 additions and 2 deletions

View File

@ -34,6 +34,21 @@ export class Workspace implements IPublicApiWorkspace {
return new ShellWindow(this[workspaceSymbol].window);
}
get resourceTypeList() {
return Array.from(this[workspaceSymbol].resourceTypeMap.values()).map((d) => {
const { name: resourceName, type: resourceType } = d;
const {
description,
} = d.resourceTypeModel({} as any, {});
return {
resourceName,
resourceType,
description,
};
});
}
onWindowRendererReady(fn: () => void): IPublicTypeDisposable {
return this[workspaceSymbol].onWindowRendererReady(fn);
}

View File

@ -37,6 +37,10 @@ export class Resource implements IPublicModelResource {
return this[resourceSymbol].category;
}
get description() {
return this[resourceSymbol].description;
}
get children() {
return this[resourceSymbol].children.map((child) => new Resource(child));
}

View File

@ -19,6 +19,8 @@ export interface IBaseModelResource<
get viewName(): string | undefined;
get description(): string | undefined;
get config(): {
disableBehaviors?: ('copy' | 'remove')[];
} | undefined;

View File

@ -12,6 +12,8 @@ export interface IBaseResource<T> extends IBaseModelResource<T> {
skeleton: ISkeleton;
description?: string;
get editorViews(): IPublicTypeEditorView[];
get defaultViewType(): string;

View File

@ -33,6 +33,8 @@ export interface IWorkspace extends Omit<IPublicApiWorkspace<
plugins: ILowCodePluginManager;
resourceTypeMap: Map<string, ResourceType>;
getResourceList(): IResource[];
getResourceType(resourceName: string): IResourceType;
@ -55,12 +57,12 @@ export class Workspace implements IWorkspace {
enableAutoOpenFirstWindow: boolean;
resourceTypeMap: Map<string, ResourceType> = new Map();
private emitter: IEventBus = createModuleEventBus('workspace');
private _isActive = false;
private resourceTypeMap: Map<string, ResourceType> = new Map();
private resourceList: IResource[] = [];
get skeleton() {