Files
azuredatastudio/extensions/cms/src/cmsResource/tree/cmsResourceEmptyTreeNode.ts
2019-05-01 10:55:58 -07:00

52 lines
1.7 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { TreeItem, TreeItemCollapsibleState } from 'vscode';
import { NodeInfo } from 'azdata';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
import { TreeNode } from '../treeNode';
import { CmsResourceItemType } from '../constants';
export class CmsResourceEmptyTreeNode extends TreeNode {
public getChildren(): TreeNode[] | Promise<TreeNode[]> {
return [];
}
public getTreeItem(): TreeItem | Promise<TreeItem> {
let item = new TreeItem(CmsResourceEmptyTreeNode.addCmsServerLabel, TreeItemCollapsibleState.None);
item.command = {
title: CmsResourceEmptyTreeNode.addCmsServerLabel,
command: 'cms.resource.registerCmsServer',
arguments: [this]
};
item.contextValue = CmsResourceItemType.cmsEmptyNodeContainer;
return item;
}
public getNodeInfo(): NodeInfo {
return {
label: CmsResourceEmptyTreeNode.addCmsServerLabel,
isLeaf: true,
errorMessage: undefined,
metadata: undefined,
nodePath: this.generateNodePath(),
nodeStatus: undefined,
nodeType: CmsResourceItemType.cmsEmptyNodeContainer,
iconType: CmsResourceItemType.cmsEmptyNodeContainer,
nodeSubType: undefined
};
}
public get nodePathValue(): string {
return 'message_cmsTreeNode';
}
private static readonly addCmsServerLabel = localize('cms.resource.tree.CmsTreeNode.addCmsServerLabel', 'Add Central Management Server...');
}