Expand/collapse all node options (#11728)

* Implementing expand and collapse nodes

* adding constants for error messages

* Removing expand all database projects functionality

* Reformatting imports
This commit is contained in:
anjalia
2020-08-13 18:31:03 -07:00
committed by GitHub
parent 28aa9b7912
commit 1ee4af52b4
4 changed files with 15 additions and 3 deletions

View File

@@ -110,6 +110,7 @@ export const invalidDatabaseReference = localize('invalidDatabaseReference', "In
export const databaseSelectionRequired = localize('databaseSelectionRequired', "Database selection is required to import a project");
export const databaseReferenceAlreadyExists = localize('databaseReferenceAlreadyExists', "A reference to this database already exists in this project");
export const ousiderFolderPath = localize('outsideFolderPath', "Items with absolute path outside project folder are not supported. Please make sure the paths in the project file are relative to project folder.");
export const parentTreeItemUnknown = localize('parentTreeItemUnknown', "Cannot access parent of provided tree item");
export function projectAlreadyOpened(path: string) { return localize('projectAlreadyOpened', "Project '{0}' is already opened.", path); }
export function projectAlreadyExists(name: string, path: string) { return localize('projectAlreadyExists', "A project named {0} already exists in {1}.", name, path); }
export function noFileExist(fileName: string) { return localize('noFileExist', "File {0} doesn't exist", fileName); }

View File

@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
import * as constants from '../common/constants';
import { BaseProjectTreeItem, SpacerTreeItem } from '../models/tree/baseTreeItem';
import { ProjectRootTreeItem } from '../models/tree/projectTreeItem';
@@ -39,6 +40,13 @@ export class SqlDatabaseProjectTreeViewProvider implements vscode.TreeDataProvid
return element.children;
}
public getParent(element: BaseProjectTreeItem): BaseProjectTreeItem {
if (!element.parent) {
throw new Error(constants.parentTreeItemUnknown);
}
return element.parent;
}
/**
* Constructs a new set of root nodes from a list of Projects
* @param projects List of Projects
@@ -71,7 +79,7 @@ export class SqlDatabaseProjectTreeViewProvider implements vscode.TreeDataProvid
const projNode = this.roots.find(x => x instanceof ProjectRootTreeItem ? (<ProjectRootTreeItem>x).project === project : false);
if (projNode) {
this.treeView?.reveal(projNode, { focus: true, expand: true });
await this.treeView?.reveal(projNode, { focus: true, expand: true });
}
}
}

View File

@@ -76,7 +76,10 @@ export default class MainController implements vscode.Disposable {
IconPathHelper.setExtensionContext(this.extensionContext);
// init view
const treeView = vscode.window.createTreeView(SQL_DATABASE_PROJECTS_VIEW_ID, { treeDataProvider: this.dbProjectTreeViewProvider });
const treeView = vscode.window.createTreeView(SQL_DATABASE_PROJECTS_VIEW_ID, {
treeDataProvider: this.dbProjectTreeViewProvider,
showCollapseAll: true
});
this.dbProjectTreeViewProvider.setTreeView(treeView);
this.extensionContext.subscriptions.push(treeView);

View File

@@ -28,7 +28,7 @@ export class FolderNode extends BaseProjectTreeItem {
}
public get treeItem(): vscode.TreeItem {
const folderItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Expanded);
const folderItem = new vscode.TreeItem(this.uri, vscode.TreeItemCollapsibleState.Collapsed);
folderItem.contextValue = DatabaseProjectItemType.folder;
return folderItem;
}