append data functionality (#13120)

append data functionality
This commit is contained in:
Vladimir Chernov
2020-10-29 01:57:08 +03:00
committed by GitHub
parent 31817c5494
commit e679d70a4b
7 changed files with 30 additions and 8 deletions

View File

@@ -1427,7 +1427,9 @@ class TableComponentWrapper extends ComponentWrapper implements azdata.TableComp
return emitter && emitter.event;
}
public appendData(v: any[][]): void {
this.doAction(ModelViewAction.AppendData, v);
}
}
class DropDownWrapper extends ComponentWrapper implements azdata.DropDownComponent {

View File

@@ -181,7 +181,8 @@ export enum ModelComponentTypes {
}
export enum ModelViewAction {
SelectTab = 'selectTab'
SelectTab = 'selectTab',
AppendData = 'appendData'
}
export enum ColumnSizingMode {

View File

@@ -25,7 +25,7 @@ import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { KeyMod, KeyCode } from 'vs/base/common/keyCodes';
import { slickGridDataItemColumnValueWithNoData, textFormatter } from 'sql/base/browser/ui/table/formatters';
import { isUndefinedOrNull } from 'vs/base/common/types';
import { IComponent, IComponentDescriptor, IModelStore, ComponentEventType } from 'sql/platform/dashboard/browser/interfaces';
import { IComponent, IComponentDescriptor, IModelStore, ComponentEventType, ModelViewAction } from 'sql/platform/dashboard/browser/interfaces';
import { convertSizeToNumber } from 'sql/base/browser/dom';
import { ButtonColumn, ButtonClickEventArgs } from 'sql/base/browser/ui/table/plugins/buttonColumn.plugin';
import { createIconCssClass } from 'sql/workbench/browser/modelComponents/iconUtils';
@@ -489,4 +489,16 @@ export default class TableComponent extends ComponentBase<azdata.TableComponentP
public get headerFilter(): boolean {
return this.getPropertyOrDefault<boolean>((props) => props.headerFilter, false);
}
public doAction(action: string, ...args: any[]): void {
switch (action) {
case ModelViewAction.AppendData:
this.appendData(args[0]);
}
}
private appendData(data: any[][]) {
this._tableData.push(TableComponent.transformData(data, this.columns));
this.data = this._tableData.getItems().map(dataObject => Object.values(dataObject));
this.layoutTable();
}
}