Data Explorer Icons (#4806)

* inital icon support

* add necessary classes for icons

* initialize icon to blank string
This commit is contained in:
Anthony Dresser
2019-04-03 11:10:48 -07:00
committed by GitHub
parent 76fe0fef49
commit fb697729c0
3 changed files with 21 additions and 3 deletions

View File

@@ -119,7 +119,20 @@ export class OEShimService extends Disposable implements IOEShimService {
private treeNodeToITreeItem(viewId: string, node: TreeNode, parentNode: ITreeItem): ITreeItem {
let handle = generateUuid();
let nodePath = node.nodePath;
let newTreeItem = {
let icon: string = '';
if (node.iconType) {
icon = (typeof node.iconType === 'string') ? node.iconType : node.iconType.id;
} else {
icon = node.nodeTypeId;
if (node.nodeStatus) {
icon = node.nodeTypeId + '_' + node.nodeStatus;
}
if (node.nodeSubType) {
icon = node.nodeTypeId + '_' + node.nodeSubType;
}
}
icon = icon.toLowerCase();
let newTreeItem: ITreeItem = {
parentHandle: node.parent.id,
handle,
collapsibleState: node.isAlwaysLeaf ? TreeItemCollapsibleState.None : TreeItemCollapsibleState.Collapsed,
@@ -129,7 +142,8 @@ export class OEShimService extends Disposable implements IOEShimService {
childProvider: node.childProvider || parentNode.childProvider,
providerHandle: parentNode.childProvider,
payload: node.payload || parentNode.payload,
contextValue: node.nodeTypeId
contextValue: node.nodeTypeId,
sqlIcon: icon
};
this.nodeHandleMap.set(generateNodeMapKey(viewId, newTreeItem), nodePath);
return newTreeItem;

View File

@@ -639,6 +639,7 @@ class TreeRenderer implements IRenderer {
const icon = this.themeService.getTheme().type === LIGHT ? node.icon : node.iconDark;
const iconUrl = icon ? URI.revive(icon) : null;
const title = node.tooltip ? node.tooltip : resource ? void 0 : label;
const sqlIcon = node.sqlIcon;
// reset
templateData.resourceLabel.clear();
@@ -652,7 +653,9 @@ class TreeRenderer implements IRenderer {
}
templateData.icon.style.backgroundImage = iconUrl ? `url('${iconUrl.toString(true)}')` : '';
DOM.toggleClass(templateData.icon, 'custom-view-tree-node-item-icon', !!iconUrl);
DOM.toggleClass(templateData.icon, sqlIcon, !!sqlIcon);
DOM.toggleClass(templateData.icon, 'icon', !!sqlIcon);
DOM.toggleClass(templateData.icon, 'custom-view-tree-node-item-icon', !!iconUrl || !!sqlIcon);
templateData.actionBar.context = (<TreeViewItemHandleArg>{ $treeViewId: this.treeViewId, $treeItemHandle: node.handle });
templateData.actionBar.push(this.menus.getResourceActions(node), { icon: true, label: false });

View File

@@ -21,6 +21,7 @@ export interface ITreeItem extends vsITreeItem {
providerHandle?: string;
childProvider?: string;
payload?: IConnectionProfile; // its possible we will want this to be more generic
sqlIcon?: string;
}
export interface ITreeView extends vsITreeView {