Add Data Grid Provider API (#12097)

* Add RegisterResourceDataProvider API

* Change to data grid provider

* fixes

* updates
This commit is contained in:
Charles Gagnon
2020-09-03 17:55:25 -07:00
committed by GitHub
parent 39d9eed585
commit 1b4f6f8934
10 changed files with 201 additions and 3 deletions

View File

@@ -173,6 +173,11 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
this._proxy.$registerSqlAssessmentServicesProvider(provider.providerId, provider.handle);
return rt;
}
$registerDataGridProvider(provider: azdata.DataGridProvider): vscode.Disposable {
let rt = this.registerProvider(provider, DataProviderType.DataGridProvider);
this._proxy.$registerDataGridProvider(provider.providerId, provider.handle);
return rt;
}
$registerCapabilitiesServiceProvider(provider: azdata.CapabilitiesProvider): vscode.Disposable {
let rt = this.registerProvider(provider, DataProviderType.CapabilitiesProvider);
this._proxy.$registerCapabilitiesServiceProvider(provider.providerId, provider.handle);
@@ -856,4 +861,12 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
public $generateAssessmentScript(handle: number, items: azdata.SqlAssessmentResultItem[]): Thenable<azdata.ResultStatus> {
return this._resolveProvider<azdata.SqlAssessmentServicesProvider>(handle).generateAssessmentScript(items);
}
public $getDataGridItems(handle: number): Thenable<azdata.DataGridItem[]> {
return this._resolveProvider<azdata.DataGridProvider>(handle).getDataGridItems();
}
public $getDataGridColumns(handle: number): Thenable<azdata.DataGridColumn[]> {
return this._resolveProvider<azdata.DataGridProvider>(handle).getDataGridColumns();
}
}

View File

@@ -373,6 +373,10 @@ export function createAdsApiFactory(accessor: ServicesAccessor): IAdsExtensionAp
return extHostDataProvider.$registerSqlAssessmentServiceProvider(provider);
};
let registerDataGridProvider = (provider: azdata.DataGridProvider): vscode.Disposable => {
return extHostDataProvider.$registerDataGridProvider(provider);
};
// namespace: dataprotocol
const dataprotocol: typeof azdata.dataprotocol = {
registerBackupProvider,
@@ -392,6 +396,7 @@ export function createAdsApiFactory(accessor: ServicesAccessor): IAdsExtensionAp
registerCapabilitiesServiceProvider,
registerSerializationProvider,
registerSqlAssessmentServicesProvider,
registerDataGridProvider,
onDidChangeLanguageFlavor(listener: (e: azdata.DidChangeLanguageFlavorParams) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) {
return extHostDataProvider.onDidChangeLanguageFlavor(listener, thisArgs, disposables);
},

View File

@@ -509,6 +509,16 @@ export abstract class ExtHostDataProtocolShape {
* Generate an assessment script based on recent results
*/
$generateAssessmentScript(handle: number, items: azdata.SqlAssessmentResultItem[]): Thenable<azdata.ResultStatus> { throw ni(); }
/**
* Gets the list of items for a data grid
*/
$getDataGridItems(handle: number): Thenable<azdata.DataGridItem[]> { throw ni(); }
/**
* Gets the list of columns for a data grid
*/
$getDataGridColumns(handle: number): Thenable<azdata.DataGridColumn[]> { throw ni(); }
}
/**
@@ -573,6 +583,7 @@ export interface MainThreadDataProtocolShape extends IDisposable {
$registerAgentServicesProvider(providerId: string, handle: number): Promise<any>;
$registerSerializationProvider(providerId: string, handle: number): Promise<any>;
$registerSqlAssessmentServicesProvider(providerId: string, handle: number): Promise<any>;
$registerDataGridProvider(providerId: string, handle: number): void;
$unregisterProvider(handle: number): Promise<any>;
$onConnectionComplete(handle: number, connectionInfoSummary: azdata.ConnectionInfoSummary): void;
$onIntelliSenseCacheComplete(handle: number, connectionUri: string): void;

View File

@@ -354,7 +354,8 @@ export enum DataProviderType {
ObjectExplorerNodeProvider = 'ObjectExplorerNodeProvider',
SerializationProvider = 'SerializationProvider',
IconProvider = 'IconProvider',
SqlAssessmentServicesProvider = 'SqlAssessmentServicesProvider'
SqlAssessmentServicesProvider = 'SqlAssessmentServicesProvider',
DataGridProvider = 'DataGridProvider'
}
export enum DeclarativeDataType {