mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 17:22:20 -05:00
Focus database projects view after open/import (#10760)
This commit is contained in:
@@ -15,6 +15,7 @@ import { Project } from '../models/project';
|
||||
*/
|
||||
export class SqlDatabaseProjectTreeViewProvider implements vscode.TreeDataProvider<BaseProjectTreeItem> {
|
||||
private _onDidChangeTreeData: vscode.EventEmitter<BaseProjectTreeItem | undefined> = new vscode.EventEmitter<BaseProjectTreeItem | undefined>();
|
||||
private treeView: vscode.TreeView<BaseProjectTreeItem> | undefined;
|
||||
readonly onDidChangeTreeData: vscode.Event<BaseProjectTreeItem | undefined> = this._onDidChangeTreeData.event;
|
||||
|
||||
private roots: BaseProjectTreeItem[] = [];
|
||||
@@ -58,4 +59,20 @@ export class SqlDatabaseProjectTreeViewProvider implements vscode.TreeDataProvid
|
||||
this.roots = newRoots;
|
||||
this._onDidChangeTreeData.fire(undefined);
|
||||
}
|
||||
|
||||
public setTreeView(value: vscode.TreeView<BaseProjectTreeItem>) {
|
||||
if (this.treeView) {
|
||||
throw new Error('TreeView should not be set multiple times.');
|
||||
}
|
||||
|
||||
this.treeView = value;
|
||||
}
|
||||
|
||||
public async focus(project: Project) {
|
||||
const projNode = this.roots.find(x => x instanceof ProjectRootTreeItem ? (<ProjectRootTreeItem>x).project === project : false);
|
||||
|
||||
if (projNode) {
|
||||
this.treeView?.reveal(projNode, { focus: true, expand: true });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user