allow extension to provide custom icons to data explorer tree (#16868)

* expose icon path to extension for OE node

* remove node type

* pr comments
This commit is contained in:
Alan Ren
2021-08-24 17:52:19 -07:00
committed by GitHub
parent 16975da000
commit 712a1b3a65
10 changed files with 73 additions and 26 deletions

View File

@@ -42,7 +42,7 @@ export default class MainController implements vscode.Disposable {
public activate(): Promise<boolean> {
const connectionProvider = new ConnectionProvider();
const iconProvider = new IconProvider();
const objectExplorer = new ObjectExplorerProvider();
const objectExplorer = new ObjectExplorerProvider(this.context);
azdata.dataprotocol.registerConnectionProvider(connectionProvider);
azdata.dataprotocol.registerIconProvider(iconProvider);
azdata.dataprotocol.registerObjectExplorerProvider(objectExplorer);

View File

@@ -10,6 +10,9 @@ import { ProviderId } from './connectionProvider';
* This class implements the ObjectExplorerProvider interface that is responsible for providing the connection tree view content.
*/
export class ObjectExplorerProvider implements azdata.ObjectExplorerProvider {
constructor(private context: vscode.ExtensionContext) {
}
onSessionCreatedEmitter: vscode.EventEmitter<azdata.ObjectExplorerSession> = new vscode.EventEmitter<azdata.ObjectExplorerSession>();
onSessionCreated: vscode.Event<azdata.ObjectExplorerSession> = this.onSessionCreatedEmitter.event;
@@ -60,13 +63,18 @@ export class ObjectExplorerProvider implements azdata.ObjectExplorerProvider {
nodes: [
{
nodePath: 'root/1',
nodeType: 'Database',
label: 'abc1',
nodeType: '',
icon: {
light: this.context.asAbsolutePath('images/group.svg'),
dark: this.context.asAbsolutePath('images/group_inverse.svg')
},
label: 'obj 1',
isLeaf: false
}, {
nodePath: 'root/2',
nodeType: 'Database',
label: 'abc2',
nodeType: '',
icon: azdata.SqlThemeIcon.Column,
label: 'obj 2',
isLeaf: false
}
]