@@ -17,12 +17,16 @@ export class Resource implements IPublicModelResource {
1717 return this . resourceType . name ;
1818 }
1919
20+ get viewType ( ) {
21+ return this . resourceData . viewType ;
22+ }
23+
2024 get description ( ) {
2125 return this . resourceTypeInstance ?. description ;
2226 }
2327
2428 get icon ( ) {
25- return this . resourceTypeInstance ?. icon ;
29+ return this . resourceData . icon || this . resourceTypeInstance ?. icon ;
2630 }
2731
2832 get type ( ) {
@@ -45,9 +49,13 @@ export class Resource implements IPublicModelResource {
4549 return this . context . innerSkeleton ;
4650 }
4751
48- constructor ( readonly resourceData : IPublicResourceData , readonly resourceType : ResourceType , workspace : InnerWorkSpace ) {
52+ get children ( ) : Resource [ ] {
53+ return this . resourceData ?. children ?. map ( d => new Resource ( d , this . resourceType , this . workspace ) ) || [ ] ;
54+ }
55+
56+ constructor ( readonly resourceData : IPublicResourceData , readonly resourceType : ResourceType , readonly workspace : InnerWorkSpace ) {
4957 this . context = new BasicContext ( workspace , `resource-${ resourceData . resourceName || resourceType . name } ` ) ;
50- this . resourceTypeInstance = resourceType . resourceTypeModel ( this . context , { } ) ;
58+ this . resourceTypeInstance = resourceType . resourceTypeModel ( this . context , this . options ) ;
5159 this . init ( ) ;
5260 if ( this . resourceTypeInstance . editorViews ) {
5361 this . resourceTypeInstance . editorViews . forEach ( ( d : any ) => {
@@ -68,6 +76,10 @@ export class Resource implements IPublicModelResource {
6876 return await this . resourceTypeInstance . import ?.( schema ) ;
6977 }
7078
79+ async url ( ) {
80+ return await this . resourceTypeInstance . url ?.( ) ;
81+ }
82+
7183 async save ( value : any ) {
7284 return await this . resourceTypeInstance . save ?.( value ) ;
7385 }
0 commit comments