From 5da0e16e440a3991cc2caac6cd68697ac8985d52 Mon Sep 17 00:00:00 2001 From: Amir Omidi Date: Mon, 14 Oct 2019 16:26:51 -0700 Subject: [PATCH] Check for error (#7711) * Custom error --- src/sql/base/common/errors.ts | 6 ++++++ src/sql/workbench/browser/parts/views/customView.ts | 4 ++++ .../objectExplorer/browser/objectExplorerViewTreeShim.ts | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/sql/base/common/errors.ts b/src/sql/base/common/errors.ts index fa0bdd2003..fba4150f92 100644 --- a/src/sql/base/common/errors.ts +++ b/src/sql/base/common/errors.ts @@ -10,3 +10,9 @@ export function invalidProvider(name?: string): Error { return new Error('Invalid provider'); } } + +export class UserCancelledConnectionError extends Error { + constructor(message?: string) { + super(message); + } +} diff --git a/src/sql/workbench/browser/parts/views/customView.ts b/src/sql/workbench/browser/parts/views/customView.ts index e1b10b9a0d..d32ceb2fd1 100644 --- a/src/sql/workbench/browser/parts/views/customView.ts +++ b/src/sql/workbench/browser/parts/views/customView.ts @@ -48,6 +48,7 @@ import { CollapseAllAction } from 'vs/base/browser/ui/tree/treeDefaults'; import { ITreeItem, ITreeView } from 'sql/workbench/common/views'; import { IOEShimService } from 'sql/workbench/parts/objectExplorer/browser/objectExplorerViewTreeShim'; import { NodeContextKey } from 'sql/workbench/parts/dataExplorer/browser/nodeContext'; +import { UserCancelledConnectionError } from 'sql/base/common/errors'; export class CustomTreeViewPanel extends ViewletPanel { @@ -700,6 +701,9 @@ class TreeDataSource implements IAsyncDataSource { // So in order to enable this we need to tell the tree to refresh this node so it will ask us for the data again setTimeout(() => { this.treeView.collapse(node); + if (e instanceof UserCancelledConnectionError) { + return; + } this.treeView.refresh([node]); }); return []; diff --git a/src/sql/workbench/parts/objectExplorer/browser/objectExplorerViewTreeShim.ts b/src/sql/workbench/parts/objectExplorer/browser/objectExplorerViewTreeShim.ts index 8b52f51e7a..8e0038670f 100644 --- a/src/sql/workbench/parts/objectExplorer/browser/objectExplorerViewTreeShim.ts +++ b/src/sql/workbench/parts/objectExplorer/browser/objectExplorerViewTreeShim.ts @@ -18,6 +18,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { TreeItemCollapsibleState } from 'vs/workbench/common/views'; import { localize } from 'vs/nls'; import { NodeType } from 'sql/workbench/parts/objectExplorer/common/nodeType'; +import { UserCancelledConnectionError } from 'sql/base/common/errors'; export const SERVICE_ID = 'oeShimService'; export const IOEShimService = createDecorator(SERVICE_ID); @@ -90,7 +91,7 @@ export class OEShimService extends Disposable implements IOEShimService { resolve(connProfile); }, onConnectCanceled: () => { - reject(new Error(localize('loginCanceled', "User canceled"))); + reject(new UserCancelledConnectionError(localize('loginCanceled', "User canceled"))); }, onConnectReject: undefined, onConnectStart: undefined,