Differentiated server icons by server type: box, big data cluster, cloud... (#5241)

This commit is contained in:
Gene Lee
2019-05-13 14:52:56 -07:00
committed by GitHub
parent 7da0dddaa9
commit 99d00e2057
25 changed files with 693 additions and 19 deletions

View File

@@ -136,6 +136,12 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
return rt;
}
$registerIconProvider(provider: azdata.IconProvider): vscode.Disposable {
let rt = this.registerProvider(provider, DataProviderType.IconProvider);
this._proxy.$registerIconProvider(provider.providerId, provider.handle);
return rt;
}
$registerProfilerProvider(provider: azdata.ProfilerProvider): vscode.Disposable {
let rt = this.registerProvider(provider, DataProviderType.ProfilerProvider);
this._proxy.$registerProfilerProvider(provider.providerId, provider.handle);
@@ -330,6 +336,10 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
this._proxy.$onEditSessionReady(handle, ownerUri, success, message);
}
public $getConnectionIconId(handle: number, connection: azdata.IConnectionProfile, serverInfo: azdata.ServerInfo): Thenable<string> {
return this._resolveProvider<azdata.IconProvider>(handle).getConnectionIconId(connection, serverInfo);
}
// Metadata handlers
public $getMetadata(handle: number, connectionUri: string): Thenable<azdata.ProviderMetadata> {
return this._resolveProvider<azdata.MetadataProvider>(handle).getMetadata(connectionUri);

View File

@@ -278,6 +278,16 @@ export class MainThreadDataProtocol implements MainThreadDataProtocolShape {
return undefined;
}
public $registerIconProvider(providerId: string, handle: number): Promise<any> {
const self = this;
this._connectionManagementService.registerIconProvider(providerId, <azdata.IconProvider>{
getConnectionIconId(connection: azdata.IConnectionProfile, serverInfo: azdata.ServerInfo): Thenable<string> {
return self._proxy.$getConnectionIconId(handle, connection, serverInfo);
}
});
return undefined;
}
public $registerTaskServicesProvider(providerId: string, handle: number): Promise<any> {
const self = this;
this._taskService.registerProvider(providerId, <azdata.TaskServicesProvider>{

View File

@@ -269,6 +269,10 @@ export function createApiFactory(
return extHostDataProvider.$registerObjectExplorerNodeProvider(provider);
};
let registerIconProvider = (provider: azdata.IconProvider): vscode.Disposable => {
return extHostDataProvider.$registerIconProvider(provider);
};
let registerTaskServicesProvider = (provider: azdata.TaskServicesProvider): vscode.Disposable => {
provider.registerOnTaskCreated((response: azdata.TaskInfo) => {
extHostDataProvider.$onTaskCreated(provider.handle, response);
@@ -365,6 +369,7 @@ export function createApiFactory(
registerMetadataProvider,
registerObjectExplorerProvider,
registerObjectExplorerNodeProvider,
registerIconProvider,
registerProfilerProvider,
registerRestoreProvider,
registerScriptingProvider,

View File

@@ -102,6 +102,8 @@ export abstract class ExtHostDataProtocolShape {
$getServerCapabilities(handle: number, client: azdata.DataProtocolClientCapabilities): Thenable<azdata.DataProtocolServerCapabilities> { throw ni(); }
$getConnectionIconId(handle: number, connection: azdata.IConnectionProfile, serverInfo: azdata.ServerInfo): Thenable<string> { throw ni(); }
/**
* Metadata service methods
*
@@ -541,6 +543,7 @@ export interface MainThreadDataProtocolShape extends IDisposable {
$registerProfilerProvider(providerId: string, handle: number): Promise<any>;
$registerObjectExplorerProvider(providerId: string, handle: number): Promise<any>;
$registerObjectExplorerNodeProvider(providerId: string, supportedProviderId: string, group: string, handle: number): Promise<any>;
$registerIconProvider(providerId: string, handle: number): Promise<any>;
$registerMetadataProvider(providerId: string, handle: number): Promise<any>;
$registerTaskServicesProvider(providerId: string, handle: number): Promise<any>;
$registerFileBrowserProvider(providerId: string, handle: number): Promise<any>;