Add PropertiesContainer ModelView component (#10115)

* Add PropertiesContainer ModelView component

* Switch to component

* Remove unneeded interface

* Update names

* Fix names
This commit is contained in:
Charles Gagnon
2020-04-22 16:29:46 -07:00
committed by GitHub
parent 9d1b99f1d3
commit 8311c3985d
9 changed files with 146 additions and 6 deletions

View File

@@ -256,6 +256,14 @@ class ModelBuilderImpl implements azdata.ModelBuilder {
return builder;
}
propertiesContainer(): azdata.ComponentBuilder<azdata.PropertiesContainerComponent> {
let id = this.getNextComponentId();
let builder: ComponentBuilderImpl<azdata.PropertiesContainerComponent> = this.getComponentBuilder(new PropertiesContainerComponentWrapper(this._proxy, this._handle, id), id);
this._componentBuilders.set(id, builder);
return builder;
}
getComponentBuilder<T extends azdata.Component>(component: ComponentWrapper, id: string): ComponentBuilderImpl<T> {
let componentBuilder: ComponentBuilderImpl<T> = new ComponentBuilderImpl<T>(component);
this._componentBuilders.set(id, componentBuilder);
@@ -1746,6 +1754,27 @@ class TabbedPanelComponentWrapper extends ComponentWrapper implements azdata.Tab
}
}
class PropertiesContainerComponentWrapper extends ComponentWrapper implements azdata.PropertiesContainerComponent {
constructor(proxy: MainThreadModelViewShape, handle: number, id: string) {
super(proxy, handle, ModelComponentTypes.PropertiesContainer, id);
this.properties = {};
}
public get propertyItems(): azdata.PropertiesContainerItem[] {
return this.properties['propertyItems'];
}
public set propertyItems(v: azdata.PropertiesContainerItem[]) {
this.setProperty('propertyItems', v);
}
public get loading(): boolean {
return this.properties['loading'];
}
public set loading(v: boolean) {
this.setProperty('loading', v);
}
}
class GroupContainerComponentWrapper extends ComponentWrapper implements azdata.GroupContainer {
constructor(proxy: MainThreadModelViewShape, handle: number, type: ModelComponentTypes, id: string) {
super(proxy, handle, type, id);