mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-15 17:22:25 -05:00
Add Data Grid Provider API (#12097)
* Add RegisterResourceDataProvider API * Change to data grid provider * fixes * updates
This commit is contained in:
@@ -28,6 +28,7 @@ import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
|
||||
import { assign } from 'vs/base/common/objects';
|
||||
import { serializableToMap } from 'sql/base/common/map';
|
||||
import { IAssessmentService } from 'sql/workbench/services/assessment/common/interfaces';
|
||||
import { IDataGridProviderService } from 'sql/workbench/services/dataGridProvider/common/dataGridProviderService';
|
||||
|
||||
/**
|
||||
* Main thread class for handling data protocol management registration.
|
||||
@@ -55,7 +56,8 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
|
||||
@IProfilerService private _profilerService: IProfilerService,
|
||||
@ISerializationService private _serializationService: ISerializationService,
|
||||
@IFileBrowserService private _fileBrowserService: IFileBrowserService,
|
||||
@IAssessmentService private _assessmentService: IAssessmentService
|
||||
@IAssessmentService private _assessmentService: IAssessmentService,
|
||||
@IDataGridProviderService private _dataGridProviderService: IDataGridProviderService
|
||||
) {
|
||||
super();
|
||||
if (extHostContext) {
|
||||
@@ -466,6 +468,20 @@ export class MainThreadDataProtocol extends Disposable implements MainThreadData
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
public $registerDataGridProvider(providerId: string, handle: number): void {
|
||||
const self = this;
|
||||
this._dataGridProviderService.registerProvider(providerId, <azdata.DataGridProvider>{
|
||||
providerId: providerId,
|
||||
getDataGridItems(): Thenable<azdata.DataGridItem[]> {
|
||||
return self._proxy.$getDataGridItems(handle);
|
||||
},
|
||||
getDataGridColumns(): Thenable<azdata.DataGridColumn[]> {
|
||||
return self._proxy.$getDataGridColumns(handle);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public $registerCapabilitiesServiceProvider(providerId: string, handle: number): Promise<any> {
|
||||
const self = this;
|
||||
this._capabilitiesService.registerProvider(<azdata.CapabilitiesProvider>{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
},
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -354,7 +354,8 @@ export enum DataProviderType {
|
||||
ObjectExplorerNodeProvider = 'ObjectExplorerNodeProvider',
|
||||
SerializationProvider = 'SerializationProvider',
|
||||
IconProvider = 'IconProvider',
|
||||
SqlAssessmentServicesProvider = 'SqlAssessmentServicesProvider'
|
||||
SqlAssessmentServicesProvider = 'SqlAssessmentServicesProvider',
|
||||
DataGridProvider = 'DataGridProvider'
|
||||
}
|
||||
|
||||
export enum DeclarativeDataType {
|
||||
|
||||
Reference in New Issue
Block a user