diff --git a/src/sql/parts/modelComponents/tree/treeComponentRenderer.ts b/src/sql/parts/modelComponents/tree/treeComponentRenderer.ts index 6923471116..6e2edd4031 100644 --- a/src/sql/parts/modelComponents/tree/treeComponentRenderer.ts +++ b/src/sql/parts/modelComponents/tree/treeComponentRenderer.ts @@ -71,6 +71,13 @@ export class TreeDataTemplate extends Disposable { } } + public set enableCheckbox(value: boolean) { + if (value === undefined) { + value = true; + } + this._checkbox.disabled = !value; + } + public get checkbox(): HTMLInputElement { return this._checkbox; } @@ -155,6 +162,7 @@ export class TreeComponentRenderer extends Disposable implements IRenderer { templateData.label.textContent = label; templateData.root.title = label; templateData.checkboxState = this.getCheckboxState(treeNode); + templateData.enableCheckbox = treeNode.enabled; } private getCheckboxState(treeNode: ITreeComponentItem): TreeCheckboxState { diff --git a/src/sql/sqlops.proposed.d.ts b/src/sql/sqlops.proposed.d.ts index 0989c95ee9..6738450517 100644 --- a/src/sql/sqlops.proposed.d.ts +++ b/src/sql/sqlops.proposed.d.ts @@ -58,6 +58,7 @@ declare module 'sqlops' { export class TreeComponentItem extends vscode.TreeItem { checked?: boolean; + enabled?: boolean; } export interface ComponentBuilder { diff --git a/src/sql/workbench/api/node/extHostModelViewTree.ts b/src/sql/workbench/api/node/extHostModelViewTree.ts index ba94fa56e9..9c53d312a5 100644 --- a/src/sql/workbench/api/node/extHostModelViewTree.ts +++ b/src/sql/workbench/api/node/extHostModelViewTree.ts @@ -164,7 +164,7 @@ export class ExtHostTreeView extends vsTreeExt.ExtHostTreeView { protected createTreeItem(element: T, extensionTreeItem: sqlops.TreeComponentItem, parent?: vsTreeExt.TreeNode): ITreeComponentItem { let item = super.createTreeItem(element, extensionTreeItem, parent); - item = Object.assign({}, item, { checked: extensionTreeItem.checked }); + item = Object.assign({}, item, { checked: extensionTreeItem.checked, enabled: extensionTreeItem.enabled }); return item; } } \ No newline at end of file diff --git a/src/sql/workbench/common/views.ts b/src/sql/workbench/common/views.ts index b921e7de63..b42b3a2723 100644 --- a/src/sql/workbench/common/views.ts +++ b/src/sql/workbench/common/views.ts @@ -7,6 +7,7 @@ import { ITreeViewDataProvider, ITreeItem } from 'vs/workbench/common/views'; export interface ITreeComponentItem extends ITreeItem { checked?: boolean; + enabled?: boolean; onCheckedChanged?: (checked: boolean) => void; children?: ITreeComponentItem[]; }