custom home tab sample (#16965)

* add sample for custom home tab

* revert unexpected changes
This commit is contained in:
Alan Ren
2021-09-01 16:45:08 -07:00
committed by GitHub
parent 502feba76d
commit d8980ea711
6 changed files with 37 additions and 88 deletions

View File

@@ -1,82 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import * as vscode from 'vscode';
export class ConnectionProvider implements azdata.ConnectionProvider {
private onConnectionCompleteEmitter: vscode.EventEmitter<azdata.ConnectionInfoSummary> = new vscode.EventEmitter();
onConnectionComplete: vscode.Event<azdata.ConnectionInfoSummary> = this.onConnectionCompleteEmitter.event;
private onIntelliSenseCacheCompleteEmitter: vscode.EventEmitter<string> = new vscode.EventEmitter();
onIntelliSenseCacheComplete: vscode.Event<string> = this.onIntelliSenseCacheCompleteEmitter.event;
private onConnectionChangedEmitter: vscode.EventEmitter<azdata.ChangedConnectionInfo> = new vscode.EventEmitter();
onConnectionChanged: vscode.Event<azdata.ChangedConnectionInfo> = this.onConnectionChangedEmitter.event;
connect(connectionUri: string, connectionInfo: azdata.ConnectionInfo): Promise<boolean> {
this.onConnectionCompleteEmitter.fire({
connectionId: '',
ownerUri: connectionUri,
messages: '',
errorMessage: '',
errorNumber: 0,
connectionSummary: {
serverName: '',
userName: ''
},
serverInfo: {
serverReleaseVersion: 1,
engineEditionId: 1,
serverVersion: '1.0',
serverLevel: '',
serverEdition: '',
isCloud: true,
azureVersion: 1,
osVersion: '',
options: {}
}
});
return Promise.resolve(true);
}
disconnect(connectionUri: string): Promise<boolean> {
return Promise.resolve(true);
}
cancelConnect(connectionUri: string): Promise<boolean> {
return Promise.resolve(true);
}
listDatabases(connectionUri: string): Promise<azdata.ListDatabasesResult> {
return Promise.resolve({
databaseNames: ['master', 'msdb']
});
}
changeDatabase(connectionUri: string, newDatabase: string): Promise<boolean> {
return Promise.resolve(true);
}
rebuildIntelliSenseCache(connectionUri: string): Promise<void> {
return Promise.resolve();
}
getConnectionString(connectionUri: string, includePassword: boolean): Promise<string> {
return Promise.resolve('conn_string');
}
buildConnectionInfo?(connectionString: string): Promise<azdata.ConnectionInfo> {
return Promise.resolve({
options: []
});
}
registerOnConnectionComplete(handler: (connSummary: azdata.ConnectionInfoSummary) => any): void {
this.onConnectionComplete((e) => {
handler(e);
});
}
registerOnIntelliSenseCacheComplete(handler: (connectionUri: string) => any): void {
console.log('IntellisenseCache complete');
}
registerOnConnectionChanged(handler: (changedConnInfo: azdata.ChangedConnectionInfo) => any): void {
console.log('Connection changed');
}
handle?: number;
providerId: string = 'testProvider';
}

View File

@@ -51,6 +51,7 @@ export default class MainController implements vscode.Disposable {
const counterHtml = fs.readFileSync(path.join(__dirname, 'counter.html')).toString();
this.registerSqlServicesModelView();
this.registerSplitPanelModelView();
this.registerModelViewDashboardTab();
azdata.tasks.registerTask('sqlservices.clickTask', (profile) => {
vscode.window.showInformationMessage(`Clicked from profile ${profile.serverName}.${profile.databaseName}`);
@@ -739,6 +740,15 @@ export default class MainController implements vscode.Disposable {
});
}
private registerModelViewDashboardTab(): void {
azdata.ui.registerModelViewProvider('sqlservices-home', async (view) => {
const text = view.modelBuilder.text().withProps({
value: 'home tab content place holder'
}).component();
await view.initializeModel(text);
});
}
private registerSplitPanelModelView(): void {
azdata.ui.registerModelViewProvider('splitPanel', async (view) => {
let numPanels = 3;