From b23e577cccb3d9bd97d1d1780dc7e1caf5d8ea3c Mon Sep 17 00:00:00 2001 From: Kevin Cunnane Date: Fri, 4 Oct 2019 14:10:50 -0700 Subject: [PATCH] Support mounted file icon (#7496) --- .../hdfsProvider.ts | 21 ++++++++++--------- .../objectTypes/FileGroupFile_mounted.svg | 11 ++++++++++ src/sql/media/objectTypes/objecttypes.css | 6 ++++++ 3 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 src/sql/media/objectTypes/FileGroupFile_mounted.svg diff --git a/extensions/mssql/src/objectExplorerNodeProvider/hdfsProvider.ts b/extensions/mssql/src/objectExplorerNodeProvider/hdfsProvider.ts index ed19cdda24..be103a8d25 100644 --- a/extensions/mssql/src/objectExplorerNodeProvider/hdfsProvider.ts +++ b/extensions/mssql/src/objectExplorerNodeProvider/hdfsProvider.ts @@ -76,7 +76,7 @@ export class HdfsProvider implements vscode.TreeDataProvider, ITreeCha } export abstract class HdfsFileSourceNode extends TreeNode { - constructor(protected context: TreeDataContext, protected _path: string, public readonly fileSource: IFileSource) { + constructor(protected context: TreeDataContext, protected _path: string, public readonly fileSource: IFileSource, protected mountStatus?: MountStatus) { super(); } @@ -88,6 +88,11 @@ export abstract class HdfsFileSourceNode extends TreeNode { return this.getDisplayName(); } + + protected isMounted(): boolean { + return this.mountStatus === MountStatus.Mount || this.mountStatus === MountStatus.Mount_Child; + } + getDisplayName(): string { return fspath.basename(this._path); } @@ -104,8 +109,8 @@ export abstract class HdfsFileSourceNode extends TreeNode { export class FolderNode extends HdfsFileSourceNode { private children: TreeNode[]; protected _nodeType: string; - constructor(context: TreeDataContext, path: string, fileSource: IFileSource, nodeType?: string, private mountStatus?: MountStatus) { - super(context, path, fileSource); + constructor(context: TreeDataContext, path: string, fileSource: IFileSource, nodeType?: string, mountStatus?: MountStatus) { + super(context, path, fileSource, mountStatus); this._nodeType = nodeType ? nodeType : Constants.MssqlClusterItems.Folder; } @@ -179,10 +184,6 @@ export class FolderNode extends HdfsFileSourceNode { return nodeInfo; } - private isMounted(): boolean { - return this.mountStatus === MountStatus.Mount || this.mountStatus === MountStatus.Mount_Child; - } - private getSubType(): string | undefined { if (this.mountStatus === MountStatus.Mount) { return Constants.MssqlClusterItemsSubType.Mount; @@ -269,8 +270,8 @@ export class ConnectionNode extends FolderNode { export class FileNode extends HdfsFileSourceNode implements IFileNode { - constructor(context: TreeDataContext, path: string, fileSource: IFileSource, private mountStatus?: MountStatus) { - super(context, path, fileSource); + constructor(context: TreeDataContext, path: string, fileSource: IFileSource, mountStatus?: MountStatus) { + super(context, path, fileSource, mountStatus); } public onChildRemoved(): void { @@ -303,7 +304,7 @@ export class FileNode extends HdfsFileSourceNode implements IFileNode { nodeStatus: undefined, nodeType: Constants.MssqlClusterItems.File, nodeSubType: this.getSubType(), - iconType: 'FileGroupFile' + iconType: this.isMounted() ? 'FileGroupFile_mounted' : 'FileGroupFile' }; return nodeInfo; } diff --git a/src/sql/media/objectTypes/FileGroupFile_mounted.svg b/src/sql/media/objectTypes/FileGroupFile_mounted.svg new file mode 100644 index 0000000000..7800d249ab --- /dev/null +++ b/src/sql/media/objectTypes/FileGroupFile_mounted.svg @@ -0,0 +1,11 @@ + + FileGroupFile_mounted_V2 + + + + + + + + + diff --git a/src/sql/media/objectTypes/objecttypes.css b/src/sql/media/objectTypes/objecttypes.css index 52558b1f0e..90b362beab 100644 --- a/src/sql/media/objectTypes/objecttypes.css +++ b/src/sql/media/objectTypes/objecttypes.css @@ -171,6 +171,12 @@ background: url("FileGroupFile.svg") center center no-repeat; } +.vs .icon.filegroupfile_mounted, +.vs-dark .icon.filegroupfile_mounted, +.hc-black .icon.filegroupfile_mounted { + background: url("FileGroupFile_mounted.svg") center center no-repeat; +} + .vs .icon.folder, .vs-dark .icon.folder, .hc-black .icon.folder {