Isolate more features (#6854)

* working; new query and scripting

* working; removing manage from menus and combining data explorer contributions

* consolidate dashboard contributions; move manage action to dashboard contributions; make groupings the same

* fix notebook actions not firing

* fix notebook actions

* notebooks working

* move backup and restore entry points into their own file; move explorerwidget contribution into their respective files

* fix tests

* move extension actions to their own file

* fix tests

* change tests
This commit is contained in:
Anthony Dresser
2019-08-22 16:54:30 -07:00
committed by GitHub
parent 36244ed517
commit 82a8f09709
19 changed files with 616 additions and 589 deletions

View File

@@ -0,0 +1,100 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands';
import { TreeViewItemHandleArg } from 'sql/workbench/common/views';
import * as azdata from 'azdata';
import { IOEShimService } from 'sql/workbench/parts/objectExplorer/common/objectExplorerViewTreeShim';
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
import { IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
export const DATA_TIER_WIZARD_COMMAND_ID = 'dataExplorer.dataTierWizard';
export const PROFILER_COMMAND_ID = 'dataExplorer.profiler';
export const IMPORT_COMMAND_ID = 'dataExplorer.flatFileImport';
export const SCHEMA_COMPARE_COMMAND_ID = 'dataExplorer.schemaCompare';
export const GENERATE_SCRIPTS_COMMAND_ID = 'dataExplorer.generateScripts';
export const PROPERTIES_COMMAND_ID = 'dataExplorer.properties';
// Data Tier Wizard
CommandsRegistry.registerCommand({
id: DATA_TIER_WIZARD_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand('dacFx.start', connectedContext);
}
});
// Flat File Import
CommandsRegistry.registerCommand({
id: IMPORT_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
let connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand('flatFileImport.start', connectedContext);
}
});
// Schema Compare
CommandsRegistry.registerCommand({
id: SCHEMA_COMPARE_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
let connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand('schemaCompare.start', connectedContext);
}
});
// Profiler
CommandsRegistry.registerCommand({
id: PROFILER_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const oeShimService = accessor.get(IOEShimService);
const objectExplorerContext: azdata.ObjectExplorerContext = {
connectionProfile: args.$treeItem.payload,
isConnectionNode: true,
nodeInfo: oeShimService.getNodeInfoForTreeItem(args.$treeItem)
};
return commandService.executeCommand('profiler.newProfiler', objectExplorerContext);
}
});
// Generate Scripts
CommandsRegistry.registerCommand({
id: GENERATE_SCRIPTS_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const oeShimService = accessor.get(IOEShimService);
const objectExplorerContext: azdata.ObjectExplorerContext = {
connectionProfile: args.$treeItem.payload,
isConnectionNode: true,
nodeInfo: oeShimService.getNodeInfoForTreeItem(args.$treeItem)
};
return commandService.executeCommand('adminToolExtWin.launchSsmsMinGswDialog', objectExplorerContext);
}
});
// Properties
CommandsRegistry.registerCommand({
id: PROPERTIES_COMMAND_ID,
handler: async (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const capabilitiesService = accessor.get(ICapabilitiesService);
const connectionManagementService = accessor.get(IConnectionManagementService);
const oeShimService = accessor.get(IOEShimService);
const profile = new ConnectionProfile(capabilitiesService, args.$treeItem.payload);
await connectionManagementService.connectIfNotConnected(profile);
const objectExplorerContext: azdata.ObjectExplorerContext = {
connectionProfile: args.$treeItem.payload,
isConnectionNode: true,
nodeInfo: oeShimService.getNodeInfoForTreeItem(args.$treeItem)
};
return commandService.executeCommand('adminToolExtWin.launchSsmsMinPropertiesDialog', objectExplorerContext);
}
});

View File

@@ -0,0 +1,111 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
import { DATA_TIER_WIZARD_COMMAND_ID, PROFILER_COMMAND_ID, IMPORT_COMMAND_ID, SCHEMA_COMPARE_COMMAND_ID, GENERATE_SCRIPTS_COMMAND_ID, PROPERTIES_COMMAND_ID } from 'sql/workbench/parts/dataExplorer/common/extensionActions';
import { ContextKeyExpr, ContextKeyRegexExpr } from 'vs/platform/contextkey/common/contextkey';
import { MssqlNodeContext } from 'sql/workbench/parts/dataExplorer/common/mssqlNodeContext';
import { mssqlProviderName } from 'sql/platform/connection/common/constants';
import { NodeType } from 'sql/workbench/parts/objectExplorer/common/nodeType';
import { localize } from 'vs/nls';
// Data-Tier Application Wizard
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'export',
order: 7,
command: {
id: DATA_TIER_WIZARD_COMMAND_ID,
title: localize('dacFx', "Data-tier Application Wizard")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.IsDatabaseOrServer)
});
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'export',
order: 7,
command: {
id: DATA_TIER_WIZARD_COMMAND_ID,
title: localize('dacFx', "Data-tier Application Wizard")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Folder),
MssqlNodeContext.NodeLabel.isEqualTo('Databases'))
});
// Profiler
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'profiler',
order: 8,
command: {
id: PROFILER_COMMAND_ID,
title: localize('profiler', "Launch Profiler")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Server))
});
// Flat File Import
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'import',
order: 10,
command: {
id: IMPORT_COMMAND_ID,
title: localize('flatFileImport', "Import Wizard")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database))
});
// Schema Compare
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'export',
order: 9,
command: {
id: SCHEMA_COMPARE_COMMAND_ID,
title: localize('schemaCompare', "Schema Compare")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database))
});
// Generate Scripts Action
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'z-AdminToolExt@1',
order: 11,
command: {
id: GENERATE_SCRIPTS_COMMAND_ID,
title: localize('generateScripts', "Generate Scripts...")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database),
MssqlNodeContext.IsWindows)
});
// Properties Action
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'z-AdminToolExt@2',
order: 12,
command: {
id: PROPERTIES_COMMAND_ID,
title: localize('properties', "Properties")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Server), ContextKeyExpr.not('isCloud'),
MssqlNodeContext.IsWindows)
});
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'z-AdminToolExt@2',
order: 12,
command: {
id: PROPERTIES_COMMAND_ID,
title: localize('properties', "Properties")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.IsWindows,
ContextKeyRegexExpr.create('nodeType', /^(Database|Table|Column|Index|Statistic|View|ServerLevelLogin|ServerLevelServerRole|ServerLevelCredential|ServerLevelServerAudit|ServerLevelServerAuditSpecification|StoredProcedure|ScalarValuedFunction|TableValuedFunction|AggregateFunction|Synonym|Assembly|UserDefinedDataType|UserDefinedType|UserDefinedTableType|Sequence|User|DatabaseRole|ApplicationRole|Schema|SecurityPolicy|ServerLevelLinkedServer)$/))
});

View File

@@ -7,11 +7,9 @@ import { localize } from 'vs/nls';
import { mssqlProviderName } from 'sql/platform/connection/common/constants';
import { MenuId, MenuRegistry } from 'vs/platform/actions/common/actions';
import {
DISCONNECT_COMMAND_ID, MANAGE_COMMAND_ID, REFRESH_COMMAND_ID,
NEW_NOTEBOOK_COMMAND_ID, SCHEMA_COMPARE_COMMAND_ID, DATA_TIER_WIZARD_COMMAND_ID,
IMPORT_COMMAND_ID, BACKUP_COMMAND_ID, RESTORE_COMMAND_ID, PROFILER_COMMAND_ID, GENERATE_SCRIPTS_COMMAND_ID, PROPERTIES_COMMAND_ID
DISCONNECT_COMMAND_ID, REFRESH_COMMAND_ID
} from './nodeCommands.common';
import { ContextKeyExpr, ContextKeyRegexExpr, ContextKeyNotEqualsExpr } from 'vs/platform/contextkey/common/contextkey';
import { ContextKeyExpr, ContextKeyNotEqualsExpr } from 'vs/platform/contextkey/common/contextkey';
import { NodeContextKey } from 'sql/workbench/parts/dataExplorer/common/nodeContext';
import { MssqlNodeContext } from 'sql/workbench/parts/dataExplorer/common/mssqlNodeContext';
import { NodeType } from 'sql/workbench/parts/objectExplorer/common/nodeType';
@@ -51,140 +49,3 @@ MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
},
when: NodeContextKey.IsConnectable
});
// New Notebook
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'connection',
order: 3,
command: {
id: NEW_NOTEBOOK_COMMAND_ID,
title: localize('newNotebook', "New Notebook")
},
when: ContextKeyExpr.and(NodeContextKey.IsConnectable,
MssqlNodeContext.IsDatabaseOrServer,
MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName))
});
// Data-Tier Application Wizard
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'export',
order: 7,
command: {
id: DATA_TIER_WIZARD_COMMAND_ID,
title: localize('dacFx', "Data-tier Application Wizard")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.IsDatabaseOrServer)
});
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'export',
order: 7,
command: {
id: DATA_TIER_WIZARD_COMMAND_ID,
title: localize('dacFx', "Data-tier Application Wizard")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Folder),
MssqlNodeContext.NodeLabel.isEqualTo('Databases'))
});
// Profiler
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'profiler',
order: 8,
command: {
id: PROFILER_COMMAND_ID,
title: localize('profiler', "Launch Profiler")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Server))
});
// Flat File Import
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'import',
order: 10,
command: {
id: IMPORT_COMMAND_ID,
title: localize('flatFileImport', "Import Wizard")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database))
});
// Schema Compare
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'export',
order: 9,
command: {
id: SCHEMA_COMPARE_COMMAND_ID,
title: localize('schemaCompare', "Schema Compare")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database))
});
// Backup Action
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'connection',
order: 4,
command: {
id: BACKUP_COMMAND_ID,
title: localize('backup', "Backup")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database))
});
// Restore Action
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'connection',
order: 5,
command: {
id: RESTORE_COMMAND_ID,
title: localize('restore', "Restore")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database))
});
// Generate Scripts Action
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'z-AdminToolExt@1',
order: 11,
command: {
id: GENERATE_SCRIPTS_COMMAND_ID,
title: localize('generateScripts', "Generate Scripts...")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Database),
MssqlNodeContext.IsWindows)
});
// Properties Action
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'z-AdminToolExt@2',
order: 12,
command: {
id: PROPERTIES_COMMAND_ID,
title: localize('properties', "Properties")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.NodeType.isEqualTo(NodeType.Server), ContextKeyExpr.not('isCloud'),
MssqlNodeContext.IsWindows)
});
MenuRegistry.appendMenuItem(MenuId.DataExplorerContext, {
group: 'z-AdminToolExt@2',
order: 12,
command: {
id: PROPERTIES_COMMAND_ID,
title: localize('properties', "Properties")
},
when: ContextKeyExpr.and(MssqlNodeContext.NodeProvider.isEqualTo(mssqlProviderName),
MssqlNodeContext.IsWindows,
ContextKeyRegexExpr.create('nodeType', /^(Database|Table|Column|Index|Statistic|View|ServerLevelLogin|ServerLevelServerRole|ServerLevelCredential|ServerLevelServerAudit|ServerLevelServerAuditSpecification|StoredProcedure|ScalarValuedFunction|TableValuedFunction|AggregateFunction|Synonym|Assembly|UserDefinedDataType|UserDefinedType|UserDefinedTableType|Sequence|User|DatabaseRole|ApplicationRole|Schema|SecurityPolicy|ServerLevelLinkedServer)$/))
});

View File

@@ -3,34 +3,15 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import { IOEShimService } from 'sql/workbench/parts/objectExplorer/common/objectExplorerViewTreeShim';
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
import { ConnectionType, IConnectableInput, IConnectionCompletionOptions, IConnectionManagementService } from 'sql/platform/connection/common/connectionManagement';
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
import { generateUri } from 'sql/platform/connection/common/utils';
import { ICustomViewDescriptor, TreeViewItemHandleArg } from 'sql/workbench/common/views';
import { IQueryEditorService } from 'sql/workbench/services/queryEditor/common/queryEditorService';
import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands';
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
import { IViewsRegistry, Extensions } from 'vs/workbench/common/views';
import { IProgressService } from 'vs/platform/progress/common/progress';
import { Registry } from 'vs/platform/registry/common/platform';
import { BackupAction, RestoreAction } from 'sql/workbench/common/actions';
import { NewNotebookAction } from 'sql/workbench/parts/notebook/browser/notebookActions';
export const DISCONNECT_COMMAND_ID = 'dataExplorer.disconnect';
export const MANAGE_COMMAND_ID = 'dataExplorer.manage';
export const NEW_QUERY_COMMAND_ID = 'dataExplorer.newQuery';
export const REFRESH_COMMAND_ID = 'dataExplorer.refresh';
export const NEW_NOTEBOOK_COMMAND_ID = 'dataExplorer.newNotebook';
export const DATA_TIER_WIZARD_COMMAND_ID = 'dataExplorer.dataTierWizard';
export const PROFILER_COMMAND_ID = 'dataExplorer.profiler';
export const IMPORT_COMMAND_ID = 'dataExplorer.flatFileImport';
export const SCHEMA_COMPARE_COMMAND_ID = 'dataExplorer.schemaCompare';
export const BACKUP_COMMAND_ID = 'dataExplorer.backup';
export const RESTORE_COMMAND_ID = 'dataExplorer.restore';
export const GENERATE_SCRIPTS_COMMAND_ID = 'dataExplorer.generateScripts';
export const PROPERTIES_COMMAND_ID = 'dataExplorer.properties';
// Disconnect
CommandsRegistry.registerCommand({
@@ -49,52 +30,6 @@ CommandsRegistry.registerCommand({
}
});
// New Query
CommandsRegistry.registerCommand({
id: NEW_QUERY_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
if (args.$treeItem) {
const queryEditorService = accessor.get(IQueryEditorService);
const connectionService = accessor.get(IConnectionManagementService);
const capabilitiesService = accessor.get(ICapabilitiesService);
return queryEditorService.newSqlEditor().then((owner: IConnectableInput) => {
// Connect our editor to the input connection
let options: IConnectionCompletionOptions = {
params: { connectionType: ConnectionType.editor, input: owner },
saveTheConnection: false,
showDashboard: false,
showConnectionDialogOnError: true,
showFirewallRuleOnError: true
};
return connectionService.connect(new ConnectionProfile(capabilitiesService, args.$treeItem.payload), owner.uri, options);
});
}
return Promise.resolve(true);
}
});
// Manage
CommandsRegistry.registerCommand({
id: MANAGE_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
if (args.$treeItem) {
const connectionService = accessor.get(IConnectionManagementService);
const capabilitiesService = accessor.get(ICapabilitiesService);
let options = {
showDashboard: true,
saveTheConnection: false,
params: undefined,
showConnectionDialogOnError: true,
showFirewallRuleOnError: true
};
let profile = new ConnectionProfile(capabilitiesService, args.$treeItem.payload);
let uri = generateUri(profile, 'dashboard');
return connectionService.connect(new ConnectionProfile(capabilitiesService, args.$treeItem.payload), uri, options);
}
return Promise.resolve(true);
}
});
// Refresh
CommandsRegistry.registerCommand({
id: REFRESH_COMMAND_ID,
@@ -112,115 +47,3 @@ CommandsRegistry.registerCommand({
return Promise.resolve(true);
}
});
// New Notebook
CommandsRegistry.registerCommand({
id: NEW_NOTEBOOK_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const capabilitiesService = accessor.get(ICapabilitiesService);
const commandService = accessor.get(ICommandService);
let profile = new ConnectionProfile(capabilitiesService, args.$treeItem.payload);
const connectedContext: azdata.ConnectedContext = { connectionProfile: profile };
return commandService.executeCommand(NewNotebookAction.ID, connectedContext);
}
});
// Data Tier Wizard
CommandsRegistry.registerCommand({
id: DATA_TIER_WIZARD_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand('dacFx.start', connectedContext);
}
});
// Flat File Import
CommandsRegistry.registerCommand({
id: IMPORT_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
let connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand('flatFileImport.start', connectedContext);
}
});
// Schema Compare
CommandsRegistry.registerCommand({
id: SCHEMA_COMPARE_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
let connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand('schemaCompare.start', connectedContext);
}
});
// Backup
CommandsRegistry.registerCommand({
id: BACKUP_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
let connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand(BackupAction.ID, connectedContext);
}
});
// Restore
CommandsRegistry.registerCommand({
id: RESTORE_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
let connectedContext: azdata.ConnectedContext = { connectionProfile: args.$treeItem.payload };
return commandService.executeCommand(RestoreAction.ID, connectedContext);
}
});
// Profiler
CommandsRegistry.registerCommand({
id: PROFILER_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const oeShimService = accessor.get(IOEShimService);
const objectExplorerContext: azdata.ObjectExplorerContext = {
connectionProfile: args.$treeItem.payload,
isConnectionNode: true,
nodeInfo: oeShimService.getNodeInfoForTreeItem(args.$treeItem)
};
return commandService.executeCommand('profiler.newProfiler', objectExplorerContext);
}
});
// Generate Scripts
CommandsRegistry.registerCommand({
id: GENERATE_SCRIPTS_COMMAND_ID,
handler: (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const oeShimService = accessor.get(IOEShimService);
const objectExplorerContext: azdata.ObjectExplorerContext = {
connectionProfile: args.$treeItem.payload,
isConnectionNode: true,
nodeInfo: oeShimService.getNodeInfoForTreeItem(args.$treeItem)
};
return commandService.executeCommand('adminToolExtWin.launchSsmsMinGswDialog', objectExplorerContext);
}
});
// Properties
CommandsRegistry.registerCommand({
id: PROPERTIES_COMMAND_ID,
handler: async (accessor, args: TreeViewItemHandleArg) => {
const commandService = accessor.get(ICommandService);
const capabilitiesService = accessor.get(ICapabilitiesService);
const connectionManagementService = accessor.get(IConnectionManagementService);
const oeShimService = accessor.get(IOEShimService);
const profile = new ConnectionProfile(capabilitiesService, args.$treeItem.payload);
await connectionManagementService.connectIfNotConnected(profile);
const objectExplorerContext: azdata.ObjectExplorerContext = {
connectionProfile: args.$treeItem.payload,
isConnectionNode: true,
nodeInfo: oeShimService.getNodeInfoForTreeItem(args.$treeItem)
};
return commandService.executeCommand('adminToolExtWin.launchSsmsMinPropertiesDialog', objectExplorerContext);
}
});