diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index e8dc2c1e0f..b27131fe78 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -107,10 +107,8 @@ const vscodeResources = [ 'out-build/sql/workbench/parts/dashboard/**/*.html', 'out-build/sql/parts/disasterRecovery/**/*.html', 'out-build/sql/parts/common/modal/media/**', - 'out-build/sql/parts/grid/load/lib/**', - 'out-build/sql/parts/grid/load/loadJquery.js', - 'out-build/sql/parts/grid/media/**', - 'out-build/sql/parts/grid/views/**/*.html', + 'out-build/sql/workbench/parts/grid/media/**', + 'out-build/sql/workbench/parts/grid/views/**/*.html', 'out-build/sql/parts/tasks/**/*.html', 'out-build/sql/parts/taskHistory/viewlet/media/**', 'out-build/sql/parts/jobManagement/common/media/*.svg', diff --git a/src/sql/parts/grid/services/sharedServices.ts b/src/sql/base/browser/ui/table/formatters.ts similarity index 100% rename from src/sql/parts/grid/services/sharedServices.ts rename to src/sql/base/browser/ui/table/formatters.ts diff --git a/src/sql/parts/grid/media/slick.grid.css b/src/sql/base/browser/ui/table/media/slick.grid.css similarity index 98% rename from src/sql/parts/grid/media/slick.grid.css rename to src/sql/base/browser/ui/table/media/slick.grid.css index d299a872cb..8daf25d409 100644 --- a/src/sql/parts/grid/media/slick.grid.css +++ b/src/sql/base/browser/ui/table/media/slick.grid.css @@ -20,7 +20,6 @@ classes should alter those! .slick-header-column.ui-state-default { position: relative; - display: inline-block; /*box-sizing: content-box !important; use this for Firefox! */ overflow: hidden; -o-text-overflow: ellipsis; @@ -47,7 +46,6 @@ classes should alter those! } .slick-sort-indicator { - display: inline-block; width: 8px; height: 5px; margin-left: 4px; @@ -116,9 +114,6 @@ classes should alter those! border-top-color: silver; } -.slick-group { -} - .slick-group-toggle { display: inline-block; } diff --git a/src/sql/parts/grid/media/slickColorTheme.css b/src/sql/base/browser/ui/table/media/slickColorTheme.css similarity index 100% rename from src/sql/parts/grid/media/slickColorTheme.css rename to src/sql/base/browser/ui/table/media/slickColorTheme.css diff --git a/src/sql/parts/grid/media/slickGrid.css b/src/sql/base/browser/ui/table/media/slickGrid.css similarity index 100% rename from src/sql/parts/grid/media/slickGrid.css rename to src/sql/base/browser/ui/table/media/slickGrid.css diff --git a/src/sql/base/browser/ui/table/table.ts b/src/sql/base/browser/ui/table/table.ts index 7b4ba63a25..e7761c4f95 100644 --- a/src/sql/base/browser/ui/table/table.ts +++ b/src/sql/base/browser/ui/table/table.ts @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ import 'vs/css!./media/table'; +import 'vs/css!./media/slick.grid'; +import 'vs/css!./media/slickColorTheme'; +import 'vs/css!./media/slickGrid'; + import { TableDataView } from './tableDataView'; import { IDisposableDataProvider, ITableSorter, ITableMouseEvent, ITableConfiguration, ITableStyles } from 'sql/base/browser/ui/table/interfaces'; diff --git a/src/sql/parts/editData/editor/editDataResultsEditor.ts b/src/sql/parts/editData/editor/editDataResultsEditor.ts index 1d19ad6692..49bbf96c9d 100644 --- a/src/sql/parts/editData/editor/editDataResultsEditor.ts +++ b/src/sql/parts/editData/editor/editDataResultsEditor.ts @@ -18,8 +18,8 @@ import { IQueryModelService } from 'sql/platform/query/common/queryModel'; import { bootstrapAngular } from 'sql/platform/bootstrap/node/bootstrapService'; import { BareResultsGridInfo } from 'sql/parts/query/editor/queryResultsEditor'; import { IEditDataComponentParams } from 'sql/platform/bootstrap/node/bootstrapParams'; -import { EditDataModule } from 'sql/parts/grid/views/editData/editData.module'; -import { EDITDATA_SELECTOR } from 'sql/parts/grid/views/editData/editData.component'; +import { EditDataModule } from 'sql/workbench/parts/grid/views/editData/editData.module'; +import { EDITDATA_SELECTOR } from 'sql/workbench/parts/grid/views/editData/editData.component'; import { EditDataResultsInput } from 'sql/parts/editData/common/editDataResultsInput'; import { CancellationToken } from 'vs/base/common/cancellation'; import { IStorageService } from 'vs/platform/storage/common/storage'; diff --git a/src/sql/parts/grid/common/gridContentEvents.ts b/src/sql/parts/grid/common/gridContentEvents.ts deleted file mode 100644 index 265cc4f2e9..0000000000 --- a/src/sql/parts/grid/common/gridContentEvents.ts +++ /dev/null @@ -1,23 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the Source EULA. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -'use strict'; - -export let ResizeContents = 'ResizeContents'; -export let RefreshContents = 'RefreshContents'; -export let ToggleResultPane = 'ToggleResultPane'; -export let ToggleMessagePane = 'ToggleMessagePane'; -export let CopySelection = 'CopySelection'; -export let CopyWithHeaders = 'CopyWithHeaders'; -export let CopyMessagesSelection = 'CopyMessagesSelection'; -export let SelectAll = 'SelectAll'; -export let SelectAllMessages = 'SelectAllMessages'; -export let SaveAsCsv = 'SaveAsCSV'; -export let SaveAsJSON = 'SaveAsJSON'; -export let SaveAsExcel = 'SaveAsExcel'; -export let SaveAsXML = 'SaveAsXML'; -export let ViewAsChart = 'ViewAsChart'; -export let GoToNextQueryOutputTab = 'GoToNextQueryOutputTab'; -export let GoToNextGrid = 'GoToNextGrid'; diff --git a/src/sql/parts/grid/load/loadJquery.js b/src/sql/parts/grid/load/loadJquery.js deleted file mode 100644 index 1bb48957a0..0000000000 --- a/src/sql/parts/grid/load/loadJquery.js +++ /dev/null @@ -1,2 +0,0 @@ -const jQuery = require('jquery'); -const $ = jQuery; \ No newline at end of file diff --git a/src/sql/parts/jobManagement/views/alertsView.component.ts b/src/sql/parts/jobManagement/views/alertsView.component.ts index 7abfd48795..6e75a6e310 100644 --- a/src/sql/parts/jobManagement/views/alertsView.component.ts +++ b/src/sql/parts/jobManagement/views/alertsView.component.ts @@ -3,14 +3,10 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import 'vs/css!sql/parts/grid/media/slickColorTheme'; -import 'vs/css!sql/parts/grid/media/flexbox'; -import 'vs/css!sql/parts/grid/media/styles'; -import 'vs/css!sql/parts/grid/media/slick.grid'; -import 'vs/css!sql/parts/grid/media/slickGrid'; +import 'vs/css!sql/workbench/parts/grid/media/flexbox'; +import 'vs/css!sql/workbench/parts/grid/media/styles'; import 'vs/css!../common/media/jobs'; import 'vs/css!sql/media/icons/common-icons'; -import 'vs/css!sql/base/browser/ui/table/media/table'; import * as dom from 'vs/base/browser/dom'; import * as nls from 'vs/nls'; diff --git a/src/sql/parts/jobManagement/views/jobsView.component.ts b/src/sql/parts/jobManagement/views/jobsView.component.ts index 54a3cf19ed..c0981e4b35 100644 --- a/src/sql/parts/jobManagement/views/jobsView.component.ts +++ b/src/sql/parts/jobManagement/views/jobsView.component.ts @@ -3,14 +3,10 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import 'vs/css!sql/parts/grid/media/slickColorTheme'; -import 'vs/css!sql/parts/grid/media/flexbox'; -import 'vs/css!sql/parts/grid/media/styles'; -import 'vs/css!sql/parts/grid/media/slick.grid'; -import 'vs/css!sql/parts/grid/media/slickGrid'; +import 'vs/css!sql/workbench/parts/grid/media/flexbox'; +import 'vs/css!sql/workbench/parts/grid/media/styles'; import 'vs/css!../common/media/jobs'; import 'vs/css!sql/media/icons/common-icons'; -import 'vs/css!sql/base/browser/ui/table/media/table'; import * as azdata from 'azdata'; import * as nls from 'vs/nls'; diff --git a/src/sql/parts/jobManagement/views/operatorsView.component.ts b/src/sql/parts/jobManagement/views/operatorsView.component.ts index 2c75cf2586..37653563a6 100644 --- a/src/sql/parts/jobManagement/views/operatorsView.component.ts +++ b/src/sql/parts/jobManagement/views/operatorsView.component.ts @@ -3,14 +3,10 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import 'vs/css!sql/parts/grid/media/slickColorTheme'; -import 'vs/css!sql/parts/grid/media/flexbox'; -import 'vs/css!sql/parts/grid/media/styles'; -import 'vs/css!sql/parts/grid/media/slick.grid'; -import 'vs/css!sql/parts/grid/media/slickGrid'; +import 'vs/css!sql/workbench/parts/grid/media/flexbox'; +import 'vs/css!sql/workbench/parts/grid/media/styles'; import 'vs/css!../common/media/jobs'; import 'vs/css!sql/media/icons/common-icons'; -import 'vs/css!sql/base/browser/ui/table/media/table'; import * as dom from 'vs/base/browser/dom'; import * as nls from 'vs/nls'; diff --git a/src/sql/parts/jobManagement/views/proxiesView.component.ts b/src/sql/parts/jobManagement/views/proxiesView.component.ts index e967078459..1c434a2107 100644 --- a/src/sql/parts/jobManagement/views/proxiesView.component.ts +++ b/src/sql/parts/jobManagement/views/proxiesView.component.ts @@ -3,14 +3,10 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import 'vs/css!sql/parts/grid/media/slickColorTheme'; -import 'vs/css!sql/parts/grid/media/flexbox'; -import 'vs/css!sql/parts/grid/media/styles'; -import 'vs/css!sql/parts/grid/media/slick.grid'; -import 'vs/css!sql/parts/grid/media/slickGrid'; +import 'vs/css!sql/workbench/parts/grid/media/flexbox'; +import 'vs/css!sql/workbench/parts/grid/media/styles'; import 'vs/css!../common/media/jobs'; import 'vs/css!sql/media/icons/common-icons'; -import 'vs/css!sql/base/browser/ui/table/media/table'; import * as dom from 'vs/base/browser/dom'; import * as azdata from 'azdata'; diff --git a/src/sql/parts/profiler/editor/controller/profilerTableEditor.ts b/src/sql/parts/profiler/editor/controller/profilerTableEditor.ts index 5408e3160b..4e5bf3d8fc 100644 --- a/src/sql/parts/profiler/editor/controller/profilerTableEditor.ts +++ b/src/sql/parts/profiler/editor/controller/profilerTableEditor.ts @@ -25,10 +25,10 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { Event, Emitter } from 'vs/base/common/event'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { Dimension } from 'vs/base/browser/dom'; -import { textFormatter, slickGridDataItemColumnValueExtractor } from 'sql/parts/grid/services/sharedServices'; +import { textFormatter, slickGridDataItemColumnValueExtractor } from 'sql/base/browser/ui/table/formatters'; import { PROFILER_MAX_MATCHES } from 'sql/parts/profiler/editor/controller/profilerFindWidget'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { IStatusbarService, StatusbarAlignment, IStatusbarEntry } from 'vs/platform/statusbar/common/statusbar'; +import { IStatusbarService, StatusbarAlignment } from 'vs/platform/statusbar/common/statusbar'; import { localize } from 'vs/nls'; export interface ProfilerTableViewState { diff --git a/src/sql/parts/profiler/editor/profilerEditor.ts b/src/sql/parts/profiler/editor/profilerEditor.ts index 30763e3217..4d69dc0f06 100644 --- a/src/sql/parts/profiler/editor/profilerEditor.ts +++ b/src/sql/parts/profiler/editor/profilerEditor.ts @@ -15,7 +15,7 @@ import { ProfilerTableEditor, ProfilerTableViewState } from './controller/profil import * as Actions from 'sql/parts/profiler/contrib/profilerActions'; import { CONTEXT_PROFILER_EDITOR, PROFILER_TABLE_COMMAND_SEARCH } from './interfaces'; import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox'; -import { textFormatter, slickGridDataItemColumnValueExtractor } from 'sql/parts/grid/services/sharedServices'; +import { textFormatter, slickGridDataItemColumnValueExtractor } from 'sql/base/browser/ui/table/formatters'; import { ProfilerResourceEditor } from './profilerResourceEditor'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { ITextModel } from 'vs/editor/common/model'; diff --git a/src/sql/parts/query/common/query.contribution.ts b/src/sql/parts/query/common/query.contribution.ts index 2e11230f8e..337cf00d1b 100644 --- a/src/sql/parts/query/common/query.contribution.ts +++ b/src/sql/parts/query/common/query.contribution.ts @@ -3,7 +3,6 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; import 'vs/css!sql/media/overwriteVsIcons'; import { Registry } from 'vs/platform/registry/common/platform'; import { EditorDescriptor, IEditorRegistry, Extensions as EditorExtensions } from 'vs/workbench/browser/editor'; @@ -28,8 +27,8 @@ import { RunQueryKeyboardAction, RunCurrentQueryKeyboardAction, CancelQueryKeyboardAction, RefreshIntellisenseKeyboardAction, ToggleQueryResultsKeyboardAction, RunQueryShortcutAction, RunCurrentQueryWithActualPlanKeyboardAction, FocusOnCurrentQueryKeyboardAction, ParseSyntaxAction } from 'sql/parts/query/execution/keyboardQueryActions'; -import * as gridActions from 'sql/parts/grid/views/gridActions'; -import * as gridCommands from 'sql/parts/grid/views/gridCommands'; +import * as gridActions from 'sql/workbench/parts/grid/views/gridActions'; +import * as gridCommands from 'sql/workbench/parts/grid/views/gridCommands'; import { QueryPlanEditor } from 'sql/parts/queryPlan/queryPlanEditor'; import { QueryPlanInput } from 'sql/parts/queryPlan/queryPlanInput'; import * as Constants from 'sql/parts/query/common/constants'; diff --git a/src/sql/parts/query/editor/actions.ts b/src/sql/parts/query/editor/actions.ts index ac3633f7fc..a41ef11d80 100644 --- a/src/sql/parts/query/editor/actions.ts +++ b/src/sql/parts/query/editor/actions.ts @@ -13,7 +13,7 @@ import { ITree } from 'vs/base/parts/tree/browser/tree'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import QueryRunner from 'sql/platform/query/common/queryRunner'; -import { SaveFormat } from 'sql/parts/grid/common/interfaces'; +import { SaveFormat } from 'sql/workbench/parts/grid/common/interfaces'; import { Table } from 'sql/base/browser/ui/table/table'; import { GridTableState } from 'sql/parts/query/editor/gridPanel'; import { QueryEditor } from './queryEditor'; diff --git a/src/sql/parts/query/editor/gridPanel.ts b/src/sql/parts/query/editor/gridPanel.ts index 88c9d29ede..e49682904b 100644 --- a/src/sql/parts/query/editor/gridPanel.ts +++ b/src/sql/parts/query/editor/gridPanel.ts @@ -12,12 +12,12 @@ import { Table } from 'sql/base/browser/ui/table/table'; import { ScrollableSplitView, IView } from 'sql/base/browser/ui/scrollableSplitview/scrollableSplitview'; import { MouseWheelSupport } from 'sql/base/browser/ui/table/plugins/mousewheelTableScroll.plugin'; import { AutoColumnSize } from 'sql/base/browser/ui/table/plugins/autoSizeColumns.plugin'; -import { SaveFormat } from 'sql/parts/grid/common/interfaces'; +import { SaveFormat } from 'sql/workbench/parts/grid/common/interfaces'; import { IGridActionContext, SaveResultAction, CopyResultAction, SelectAllGridAction, MaximizeTableAction, RestoreTableAction, ChartDataAction } from 'sql/parts/query/editor/actions'; import { CellSelectionModel } from 'sql/base/browser/ui/table/plugins/cellSelectionModel.plugin'; import { RowNumberColumn } from 'sql/base/browser/ui/table/plugins/rowNumberColumn.plugin'; import { escape } from 'sql/base/common/strings'; -import { hyperLinkFormatter, textFormatter } from 'sql/parts/grid/services/sharedServices'; +import { hyperLinkFormatter, textFormatter } from 'sql/base/browser/ui/table/formatters'; import { CopyKeybind } from 'sql/base/browser/ui/table/plugins/copyKeybind.plugin'; import { AdditionalKeyBindings } from 'sql/base/browser/ui/table/plugins/additionalKeyBindings.plugin'; import { ITableStyles, ITableMouseEvent } from 'sql/base/browser/ui/table/interfaces'; diff --git a/src/sql/parts/grid/load/css/qp.css b/src/sql/parts/queryPlan/media/qp.css similarity index 100% rename from src/sql/parts/grid/load/css/qp.css rename to src/sql/parts/queryPlan/media/qp.css diff --git a/src/sql/parts/grid/load/css/qp_icons.png b/src/sql/parts/queryPlan/media/qp_icons.png similarity index 100% rename from src/sql/parts/grid/load/css/qp_icons.png rename to src/sql/parts/queryPlan/media/qp_icons.png diff --git a/src/sql/parts/queryPlan/planXmlParser.ts b/src/sql/parts/queryPlan/planXmlParser.ts index 08f095496a..c575fe87fc 100644 --- a/src/sql/parts/queryPlan/planXmlParser.ts +++ b/src/sql/parts/queryPlan/planXmlParser.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -export class RunTimeInformation { +class RunTimeInformation { runtimePerThreads: RuntimePerThread[]; public get actualRows(): number { let total = 0; @@ -27,14 +27,14 @@ export class RunTimeInformation { } } -export class RuntimePerThread { +class RuntimePerThread { threadId: number; actualRow: number; actualExecutionMode: string; actualExecutions: number; } -export class IndexObject { +class IndexObject { database: string; schema: string; table: string; @@ -53,7 +53,7 @@ export class IndexObject { } } -export class PlanNode { +class PlanNode { root: PlanNode; subtreeCost: number; private childrenNodes: PlanNode[]; diff --git a/src/sql/parts/queryPlan/queryPlan.component.ts b/src/sql/parts/queryPlan/queryPlan.component.ts index 1f4bf0e15d..99358c89bb 100644 --- a/src/sql/parts/queryPlan/queryPlan.component.ts +++ b/src/sql/parts/queryPlan/queryPlan.component.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import 'vs/css!sql/parts/grid/load/css/qp'; +import 'vs/css!./media/qp'; import { ElementRef, Component, Inject, forwardRef, OnDestroy, OnInit, ViewChild } from '@angular/core'; import * as QP from 'html-query-plan'; diff --git a/src/sql/parts/queryPlan/topOperations.component.ts b/src/sql/parts/queryPlan/topOperations.component.ts deleted file mode 100644 index 66b03ee8bb..0000000000 --- a/src/sql/parts/queryPlan/topOperations.component.ts +++ /dev/null @@ -1,123 +0,0 @@ -/*--------------------------------------------------------------------------------------------- -* Copyright (c) Microsoft Corporation. All rights reserved. -* Licensed under the Source EULA. See License.txt in the project root for license information. -*--------------------------------------------------------------------------------------------*/ - -import { ElementRef, Component, Inject, forwardRef, OnDestroy, Input, OnInit } from '@angular/core'; -import { Subscription, Subject } from 'rxjs/Rx'; - -import { PlanXmlParser, PlanNode } from 'sql/parts/queryPlan/planXmlParser'; -import { TabChild } from 'sql/base/browser/ui/panel/tab.component'; -import { Table } from 'sql/base/browser/ui/table/table'; -import { attachTableStyler } from 'sql/platform/theme/common/styler'; -import { IQueryComponentParams } from 'sql/platform/bootstrap/node/bootstrapParams'; -import * as GridContentEvents from 'sql/parts/grid/common/gridContentEvents'; -import { DataService } from 'sql/parts/grid/services/dataService'; -import { toDisposableSubscription } from 'sql/base/node/rxjsUtils'; - -import { localize } from 'vs/nls'; -import { IDisposable, dispose } from 'vs/base/common/lifecycle'; -import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; - -export const TOP_OPERATIONS_SELECTOR: string = 'top-operations-component'; - -@Component({ - selector: TOP_OPERATIONS_SELECTOR, - template: '', - providers: [{ provide: TabChild, useExisting: forwardRef(() => TopOperationsComponent) }] -}) -export class TopOperationsComponent extends TabChild implements OnDestroy, OnInit { - - private _operations: Array = []; - private _table: Table; - private _dataService: DataService; - private _columns: Array> = [ - { name: localize('topOperations.operation', 'Operation'), field: 'operation' }, - { name: localize('topOperations.object', 'Object'), field: 'object' }, - { name: localize('topOperations.estCost', 'Est Cost'), field: 'estCost' }, - { name: localize('topOperations.estSubtreeCost', 'Est Subtree Cost'), field: 'estSubtreeCost' }, - { name: localize('topOperations.actualRows', 'Actual Rows'), field: 'actualRows' }, - { name: localize('topOperations.estRows', 'Est Rows'), field: 'estRows' }, - { name: localize('topOperations.actualExecutions', 'Actual Executions'), field: 'actualExecutions' }, - { name: localize('topOperations.estCPUCost', 'Est CPU Cost'), field: 'estCPUCost' }, - { name: localize('topOperations.estIOCost', 'Est IO Cost'), field: 'estIOCost' }, - { name: localize('topOperations.parallel', 'Parallel'), field: 'parallel' }, - { name: localize('topOperations.actualRebinds', 'Actual Rebinds'), field: 'actualRebinds' }, - { name: localize('topOperations.estRebinds', 'Est Rebinds'), field: 'estRebinds' }, - { name: localize('topOperations.actualRewinds', 'Actual Rewinds'), field: 'actualRewinds' }, - { name: localize('topOperations.estRewinds', 'Est Rewinds'), field: 'estRewinds' }, - { name: localize('topOperations.partitioned', 'Partitioned'), field: 'partitioned' } - ]; - - @Input() public queryParameters: IQueryComponentParams; - - private _disposables: Array = []; - - constructor( - @Inject(forwardRef(() => ElementRef)) private _el: ElementRef, - @Inject(IWorkbenchThemeService) private themeService: IWorkbenchThemeService - ) { - super(); - } - - ngOnInit() { - this._dataService = this.queryParameters.dataService; - this.subscribeWithDispose(this._dataService.gridContentObserver, (type) => { - switch (type) { - case GridContentEvents.ResizeContents: - this.layout(); - break; - } - }); - } - - ngOnDestroy() { - dispose(this._disposables); - } - - public set planXml(val: string) { - let parser: PlanXmlParser = new PlanXmlParser(val); - this._operations = parser.topOperations; - let data = this._operations.map(i => { - return { - operation: i.title, - object: i.indexObject.title, - estCost: i.estimatedOperatorCost, - estSubtreeCost: i.subtreeCost, - actualRows: i.runtimeInfo.actualRows, - estRows: i.estimateRows, - actualExecutions: i.runtimeInfo.actualExecutions, - estCPUCost: i.estimateCpu, - estIOCost: i.estimateIo, - parallel: i.parallel, - actualRebinds: '', - estRebinds: i.estimateRebinds, - actualRewinds: '', - estRewinds: i.estimateRewinds, - partitioned: i.partitioned - }; - }); - if (!this._table) { - let columns = this._columns.map((column) => { - column.rerenderOnResize = true; - return column; - }); - this._table = new Table(this._el.nativeElement, { dataProvider: data, columns }); - this._disposables.push(attachTableStyler(this._table, this.themeService)); - } - } - - public layout(): void { - if (this._table) { - setTimeout(() => { - this._table.resizeCanvas(); - this._table.autosizeColumns(); - }); - } - } - - protected subscribeWithDispose(subject: Subject, event: (value: any) => void): void { - let sub: Subscription = subject.subscribe(event); - this.toDispose.push(toDisposableSubscription(sub)); - } -} diff --git a/src/sql/platform/bootstrap/node/bootstrapParams.ts b/src/sql/platform/bootstrap/node/bootstrapParams.ts index 2cee7e7469..084673ef75 100644 --- a/src/sql/platform/bootstrap/node/bootstrapParams.ts +++ b/src/sql/platform/bootstrap/node/bootstrapParams.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { DataService } from 'sql/parts/grid/services/dataService'; +import { DataService } from 'sql/workbench/parts/grid/services/dataService'; import { IConnectionProfile } from 'sql/platform/connection/common/interfaces'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { ConnectionContextKey } from 'sql/workbench/parts/connection/common/connectionContextKey'; diff --git a/src/sql/platform/node/resultSerializer.ts b/src/sql/platform/node/resultSerializer.ts index 11b52fcf01..d85803bda9 100644 --- a/src/sql/platform/node/resultSerializer.ts +++ b/src/sql/platform/node/resultSerializer.ts @@ -9,7 +9,7 @@ import * as LocalizedConstants from 'sql/parts/query/common/localizedConstants'; import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils'; import { SaveResultsRequestParams } from 'azdata'; import { IQueryManagementService } from 'sql/platform/query/common/queryManagement'; -import { ISaveRequest, SaveFormat } from 'sql/parts/grid/common/interfaces'; +import { ISaveRequest, SaveFormat } from 'sql/workbench/parts/grid/common/interfaces'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; diff --git a/src/sql/platform/query/common/queryModel.ts b/src/sql/platform/query/common/queryModel.ts index 35e8ef81fd..dbf9c9f4d5 100644 --- a/src/sql/platform/query/common/queryModel.ts +++ b/src/sql/platform/query/common/queryModel.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import QueryRunner from 'sql/platform/query/common/queryRunner'; -import { DataService } from 'sql/parts/grid/services/dataService'; +import { DataService } from 'sql/workbench/parts/grid/services/dataService'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { Event } from 'vs/base/common/event'; import { QueryInput } from 'sql/parts/query/common/queryInput'; diff --git a/src/sql/platform/query/common/queryModelService.ts b/src/sql/platform/query/common/queryModelService.ts index bf623767cf..3ecd7f0f83 100644 --- a/src/sql/platform/query/common/queryModelService.ts +++ b/src/sql/platform/query/common/queryModelService.ts @@ -5,11 +5,11 @@ 'use strict'; -import * as GridContentEvents from 'sql/parts/grid/common/gridContentEvents'; +import * as GridContentEvents from 'sql/workbench/parts/grid/common/gridContentEvents'; import * as LocalizedConstants from 'sql/parts/query/common/localizedConstants'; import QueryRunner, { EventType as QREvents } from 'sql/platform/query/common/queryRunner'; -import { DataService } from 'sql/parts/grid/services/dataService'; -import { IQueryModelService, IQueryPlanInfo, IQueryEvent } from 'sql/platform/query/common/queryModel'; +import { DataService } from 'sql/workbench/parts/grid/services/dataService'; +import { IQueryModelService, IQueryEvent } from 'sql/platform/query/common/queryModel'; import { QueryInput } from 'sql/parts/query/common/queryInput'; import { QueryStatusbarItem } from 'sql/parts/query/execution/queryStatus'; import { SqlFlavorStatusbarItem } from 'sql/parts/query/common/flavorStatus'; diff --git a/src/sql/platform/query/common/queryRunner.ts b/src/sql/platform/query/common/queryRunner.ts index 23c1021e7f..3af182a764 100644 --- a/src/sql/platform/query/common/queryRunner.ts +++ b/src/sql/platform/query/common/queryRunner.ts @@ -3,15 +3,13 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - import * as azdata from 'azdata'; import * as Constants from 'sql/parts/query/common/constants'; import * as WorkbenchUtils from 'sql/workbench/common/sqlWorkbenchUtils'; import { IQueryManagementService } from 'sql/platform/query/common/queryManagement'; import * as Utils from 'sql/platform/connection/common/utils'; -import { SaveFormat } from 'sql/parts/grid/common/interfaces'; +import { SaveFormat } from 'sql/workbench/parts/grid/common/interfaces'; import { Deferred } from 'sql/base/common/promise'; import Severity from 'vs/base/common/severity'; diff --git a/src/sql/workbench/parts/grid/common/gridContentEvents.ts b/src/sql/workbench/parts/grid/common/gridContentEvents.ts new file mode 100644 index 0000000000..74aa5e9ada --- /dev/null +++ b/src/sql/workbench/parts/grid/common/gridContentEvents.ts @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export const ResizeContents = 'ResizeContents'; +export const RefreshContents = 'RefreshContents'; +export const ToggleResultPane = 'ToggleResultPane'; +export const ToggleMessagePane = 'ToggleMessagePane'; +export const CopySelection = 'CopySelection'; +export const CopyWithHeaders = 'CopyWithHeaders'; +export const CopyMessagesSelection = 'CopyMessagesSelection'; +export const SelectAll = 'SelectAll'; +export const SelectAllMessages = 'SelectAllMessages'; +export const SaveAsCsv = 'SaveAsCSV'; +export const SaveAsJSON = 'SaveAsJSON'; +export const SaveAsExcel = 'SaveAsExcel'; +export const SaveAsXML = 'SaveAsXML'; +export const ViewAsChart = 'ViewAsChart'; +export const GoToNextQueryOutputTab = 'GoToNextQueryOutputTab'; +export const GoToNextGrid = 'GoToNextGrid'; diff --git a/src/sql/parts/grid/common/interfaces.ts b/src/sql/workbench/parts/grid/common/interfaces.ts similarity index 65% rename from src/sql/parts/grid/common/interfaces.ts rename to src/sql/workbench/parts/grid/common/interfaces.ts index 9830eaaa6b..f2a4f6f2f6 100644 --- a/src/sql/parts/grid/common/interfaces.ts +++ b/src/sql/workbench/parts/grid/common/interfaces.ts @@ -6,33 +6,6 @@ import { ISlickColumn, VirtualizedCollection } from 'angular2-slickgrid'; -export interface IGridIcon { - showCondition: () => boolean; - icon: () => string; - hoverText: () => string; - functionality: (batchId: number, resultId: number, index: number) => void; -} - -export interface IMessageLink { - uri: string; - text: string; -} - -export interface IMessage { - batchId?: number; - time: string; - message: string; - isError: boolean; - link?: IMessageLink; -} - -export interface IGridIcon { - showCondition: () => boolean; - icon: () => string; - hoverText: () => string; - functionality: (batchId: number, resultId: number, index: number) => void; -} - export interface IGridDataSet { dataRows: VirtualizedCollection<{}>; columnDefinitions: ISlickColumn[]; @@ -63,4 +36,4 @@ export interface ISaveRequest { batchIndex: number; resultSetNumber: number; selection: Slick.Range[]; -} \ No newline at end of file +} diff --git a/src/sql/parts/grid/media/collapsedArrow.svg b/src/sql/workbench/parts/grid/media/collapsedArrow.svg similarity index 100% rename from src/sql/parts/grid/media/collapsedArrow.svg rename to src/sql/workbench/parts/grid/media/collapsedArrow.svg diff --git a/src/sql/parts/grid/media/collapsedArrow_inverse.svg b/src/sql/workbench/parts/grid/media/collapsedArrow_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/collapsedArrow_inverse.svg rename to src/sql/workbench/parts/grid/media/collapsedArrow_inverse.svg diff --git a/src/sql/parts/grid/media/exitFullScreen.svg b/src/sql/workbench/parts/grid/media/exitFullScreen.svg similarity index 100% rename from src/sql/parts/grid/media/exitFullScreen.svg rename to src/sql/workbench/parts/grid/media/exitFullScreen.svg diff --git a/src/sql/parts/grid/media/exitFullScreen_inverse.svg b/src/sql/workbench/parts/grid/media/exitFullScreen_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/exitFullScreen_inverse.svg rename to src/sql/workbench/parts/grid/media/exitFullScreen_inverse.svg diff --git a/src/sql/parts/grid/media/extendFullScreen.svg b/src/sql/workbench/parts/grid/media/extendFullScreen.svg similarity index 100% rename from src/sql/parts/grid/media/extendFullScreen.svg rename to src/sql/workbench/parts/grid/media/extendFullScreen.svg diff --git a/src/sql/parts/grid/media/extendFullScreen_inverse.svg b/src/sql/workbench/parts/grid/media/extendFullScreen_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/extendFullScreen_inverse.svg rename to src/sql/workbench/parts/grid/media/extendFullScreen_inverse.svg diff --git a/src/sql/parts/grid/media/flexbox.css b/src/sql/workbench/parts/grid/media/flexbox.css similarity index 100% rename from src/sql/parts/grid/media/flexbox.css rename to src/sql/workbench/parts/grid/media/flexbox.css diff --git a/src/sql/parts/grid/media/saveCsv.svg b/src/sql/workbench/parts/grid/media/saveCsv.svg similarity index 100% rename from src/sql/parts/grid/media/saveCsv.svg rename to src/sql/workbench/parts/grid/media/saveCsv.svg diff --git a/src/sql/parts/grid/media/saveCsv_inverse.svg b/src/sql/workbench/parts/grid/media/saveCsv_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/saveCsv_inverse.svg rename to src/sql/workbench/parts/grid/media/saveCsv_inverse.svg diff --git a/src/sql/parts/grid/media/saveExcel.svg b/src/sql/workbench/parts/grid/media/saveExcel.svg similarity index 100% rename from src/sql/parts/grid/media/saveExcel.svg rename to src/sql/workbench/parts/grid/media/saveExcel.svg diff --git a/src/sql/parts/grid/media/saveExcel_inverse.svg b/src/sql/workbench/parts/grid/media/saveExcel_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/saveExcel_inverse.svg rename to src/sql/workbench/parts/grid/media/saveExcel_inverse.svg diff --git a/src/sql/parts/grid/media/saveJson.svg b/src/sql/workbench/parts/grid/media/saveJson.svg similarity index 100% rename from src/sql/parts/grid/media/saveJson.svg rename to src/sql/workbench/parts/grid/media/saveJson.svg diff --git a/src/sql/parts/grid/media/saveJson_inverse.svg b/src/sql/workbench/parts/grid/media/saveJson_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/saveJson_inverse.svg rename to src/sql/workbench/parts/grid/media/saveJson_inverse.svg diff --git a/src/sql/parts/grid/media/saveXml.svg b/src/sql/workbench/parts/grid/media/saveXml.svg similarity index 100% rename from src/sql/parts/grid/media/saveXml.svg rename to src/sql/workbench/parts/grid/media/saveXml.svg diff --git a/src/sql/parts/grid/media/saveXml_inverse.svg b/src/sql/workbench/parts/grid/media/saveXml_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/saveXml_inverse.svg rename to src/sql/workbench/parts/grid/media/saveXml_inverse.svg diff --git a/src/sql/parts/grid/media/styles.css b/src/sql/workbench/parts/grid/media/styles.css similarity index 100% rename from src/sql/parts/grid/media/styles.css rename to src/sql/workbench/parts/grid/media/styles.css diff --git a/src/sql/parts/grid/media/uncollapsedArrow.svg b/src/sql/workbench/parts/grid/media/uncollapsedArrow.svg similarity index 100% rename from src/sql/parts/grid/media/uncollapsedArrow.svg rename to src/sql/workbench/parts/grid/media/uncollapsedArrow.svg diff --git a/src/sql/parts/grid/media/uncollapsedArrow_inverse.svg b/src/sql/workbench/parts/grid/media/uncollapsedArrow_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/uncollapsedArrow_inverse.svg rename to src/sql/workbench/parts/grid/media/uncollapsedArrow_inverse.svg diff --git a/src/sql/parts/grid/media/viewChart.svg b/src/sql/workbench/parts/grid/media/viewChart.svg similarity index 100% rename from src/sql/parts/grid/media/viewChart.svg rename to src/sql/workbench/parts/grid/media/viewChart.svg diff --git a/src/sql/parts/grid/media/viewChart_inverse.svg b/src/sql/workbench/parts/grid/media/viewChart_inverse.svg similarity index 100% rename from src/sql/parts/grid/media/viewChart_inverse.svg rename to src/sql/workbench/parts/grid/media/viewChart_inverse.svg diff --git a/src/sql/parts/grid/services/dataService.ts b/src/sql/workbench/parts/grid/services/dataService.ts similarity index 79% rename from src/sql/parts/grid/services/dataService.ts rename to src/sql/workbench/parts/grid/services/dataService.ts index cd679a544e..e18da8f8e3 100644 --- a/src/sql/parts/grid/services/dataService.ts +++ b/src/sql/workbench/parts/grid/services/dataService.ts @@ -3,19 +3,16 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { Observer } from 'rxjs/Observer'; -import { ResultSetSubset, EditUpdateCellResult, EditSubsetResult, EditCreateRowResult } from 'azdata'; +import { EditUpdateCellResult, EditSubsetResult, EditCreateRowResult } from 'azdata'; import { IQueryModelService } from 'sql/platform/query/common/queryModel'; import { ResultSerializer } from 'sql/platform/node/resultSerializer'; -import { ISaveRequest } from 'sql/parts/grid/common/interfaces'; +import { ISaveRequest } from 'sql/workbench/parts/grid/common/interfaces'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { IQueryEditorService } from 'sql/workbench/services/queryEditor/common/queryEditorService'; /** * DataService handles the interactions between QueryModel and app.component. Thus, it handles @@ -30,31 +27,13 @@ export class DataService { constructor( private _uri: string, @IInstantiationService private _instantiationService: IInstantiationService, - @IQueryModelService private _queryModel: IQueryModelService, - @IQueryEditorService private _queryEditorService: IQueryEditorService + @IQueryModelService private _queryModel: IQueryModelService ) { this.queryEventObserver = new Subject(); this.gridContentObserver = new Subject(); this.editQueue = Promise.resolve(); } - /** - * Get a specified number of rows starting at a specified row for - * the current results set. Used for query results only. - * @param start The starting row or the requested rows - * @param numberOfRows The amount of rows to return - * @param batchId The batch id of the batch you are querying - * @param resultId The id of the result you want to get the rows for - */ - getQueryRows(rowStart: number, numberOfRows: number, batchId: number, resultId: number): Observable { - const self = this; - return Observable.create(function (observer: Observer) { - self._queryModel.getQueryRows(self._uri, rowStart, numberOfRows, batchId, resultId).then(results => { - observer.next(results); - }); - }); - } - /** * Get a specified number of rows starting at a specified row. Should only * be used for edit sessions. @@ -187,23 +166,6 @@ export class DataService { this._queryModel.copyResults(this._uri, selection, batchId, resultId, includeHeaders); } - /** - * Sends a request to set the selection in the QueryEditor. - */ - setEditorSelection(index: number) { - this._queryModel.setEditorSelection(this._uri, index); - } - - showWarning(message: string): void { - } - - showError(message: string): void { - } - - get config(): Promise<{ [key: string]: any }> { - return undefined; - } - onAngularLoaded(): void { this._queryModel.onAngularLoaded(this._uri); } diff --git a/src/sql/parts/grid/views/editData/editData.component.html b/src/sql/workbench/parts/grid/views/editData/editData.component.html similarity index 100% rename from src/sql/parts/grid/views/editData/editData.component.html rename to src/sql/workbench/parts/grid/views/editData/editData.component.html diff --git a/src/sql/parts/grid/views/editData/editData.component.ts b/src/sql/workbench/parts/grid/views/editData/editData.component.ts similarity index 96% rename from src/sql/parts/grid/views/editData/editData.component.ts rename to src/sql/workbench/parts/grid/views/editData/editData.component.ts index 3d5c2fd453..37e26ea8b7 100644 --- a/src/sql/parts/grid/views/editData/editData.component.ts +++ b/src/sql/workbench/parts/grid/views/editData/editData.component.ts @@ -3,25 +3,20 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import 'vs/css!sql/parts/grid/media/slickColorTheme'; -import 'vs/css!sql/parts/grid/media/flexbox'; -import 'vs/css!sql/parts/grid/media/styles'; -import 'vs/css!sql/parts/grid/media/slick.grid'; -import 'vs/css!sql/parts/grid/media/slickGrid'; +import 'vs/css!sql/workbench/parts/grid/media/flexbox'; +import 'vs/css!sql/workbench/parts/grid/media/styles'; import 'vs/css!./media/editData'; import { ElementRef, ChangeDetectorRef, OnInit, OnDestroy, Component, Inject, forwardRef, EventEmitter } from '@angular/core'; -import { VirtualizedCollection, OnRangeRenderCompletedEventArgs } from 'angular2-slickgrid'; +import { VirtualizedCollection } from 'angular2-slickgrid'; -import { IGridDataSet } from 'sql/parts/grid/common/interfaces'; -import * as Services from 'sql/parts/grid/services/sharedServices'; +import { IGridDataSet } from 'sql/workbench/parts/grid/common/interfaces'; +import * as Services from 'sql/base/browser/ui/table/formatters'; import { IEditDataComponentParams } from 'sql/platform/bootstrap/node/bootstrapParams'; -import { GridParentComponent } from 'sql/parts/grid/views/gridParentComponent'; -import { EditDataGridActionProvider } from 'sql/parts/grid/views/editData/editDataGridActions'; +import { GridParentComponent } from 'sql/workbench/parts/grid/views/gridParentComponent'; +import { EditDataGridActionProvider } from 'sql/workbench/parts/grid/views/editData/editDataGridActions'; import { error } from 'sql/base/common/log'; -import { clone, mixin } from 'sql/base/common/objects'; +import { clone } from 'sql/base/common/objects'; import { IQueryEditorService } from 'sql/workbench/services/queryEditor/common/queryEditorService'; import { IBootstrapParams } from 'sql/platform/bootstrap/node/bootstrapService'; import { RowNumberColumn } from 'sql/base/browser/ui/table/plugins/rowNumberColumn.plugin'; @@ -45,9 +40,8 @@ export const EDITDATA_SELECTOR: string = 'editdata-component'; @Component({ selector: EDITDATA_SELECTOR, host: { '(window:keydown)': 'keyEvent($event)', '(window:gridnav)': 'keyEvent($event)' }, - templateUrl: decodeURI(require.toUrl('sql/parts/grid/views/editData/editData.component.html')) + templateUrl: decodeURI(require.toUrl('sql/workbench/parts/grid/views/editData/editData.component.html')) }) - export class EditDataComponent extends GridParentComponent implements OnInit, OnDestroy { // The time(in milliseconds) we wait before refreshing the grid. // We use clearTimeout and setTimeout pair to avoid unnecessary refreshes. @@ -96,7 +90,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On @Inject(forwardRef(() => ChangeDetectorRef)) cd: ChangeDetectorRef, @Inject(IBootstrapParams) params: IEditDataComponentParams, @Inject(IInstantiationService) private instantiationService: IInstantiationService, - @Inject(INotificationService) notificationService: INotificationService, + @Inject(INotificationService) private notificationService: INotificationService, @Inject(IContextMenuService) contextMenuService: IContextMenuService, @Inject(IKeybindingService) keybindingService: IKeybindingService, @Inject(IContextKeyService) contextKeyService: IContextKeyService, @@ -104,7 +98,7 @@ export class EditDataComponent extends GridParentComponent implements OnInit, On @Inject(IClipboardService) clipboardService: IClipboardService, @Inject(IQueryEditorService) queryEditorService: IQueryEditorService ) { - super(el, cd, contextMenuService, keybindingService, contextKeyService, configurationService, clipboardService, queryEditorService, notificationService); + super(el, cd, contextMenuService, keybindingService, contextKeyService, configurationService, clipboardService, queryEditorService); this._el.nativeElement.className = 'slickgridContainer'; this.dataService = params.dataService; this.actionProvider = this.instantiationService.createInstance(EditDataGridActionProvider, this.dataService, this.onGridSelectAll(), this.onDeleteRow(), this.onRevertRow()); diff --git a/src/sql/parts/grid/views/editData/editData.module.ts b/src/sql/workbench/parts/grid/views/editData/editData.module.ts similarity index 94% rename from src/sql/parts/grid/views/editData/editData.module.ts rename to src/sql/workbench/parts/grid/views/editData/editData.module.ts index bb705d185f..8bce49e88d 100644 --- a/src/sql/parts/grid/views/editData/editData.module.ts +++ b/src/sql/workbench/parts/grid/views/editData/editData.module.ts @@ -9,7 +9,7 @@ import { CommonModule } from '@angular/common'; import { BrowserModule } from '@angular/platform-browser'; import { SlickGrid } from 'angular2-slickgrid'; -import { EditDataComponent } from 'sql/parts/grid/views/editData/editData.component'; +import { EditDataComponent } from 'sql/workbench/parts/grid/views/editData/editData.component'; import { IBootstrapParams, ISelector, providerIterator } from 'sql/platform/bootstrap/node/bootstrapService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; diff --git a/src/sql/parts/grid/views/editData/editDataGridActions.ts b/src/sql/workbench/parts/grid/views/editData/editDataGridActions.ts similarity index 78% rename from src/sql/parts/grid/views/editData/editDataGridActions.ts rename to src/sql/workbench/parts/grid/views/editData/editDataGridActions.ts index 9486a87f39..6c55c5a69d 100644 --- a/src/sql/parts/grid/views/editData/editDataGridActions.ts +++ b/src/sql/workbench/parts/grid/views/editData/editDataGridActions.ts @@ -3,14 +3,11 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import { IGridInfo } from 'sql/parts/grid/common/interfaces'; -import { DataService } from 'sql/parts/grid/services/dataService'; -import { GridActionProvider } from 'sql/parts/grid/views/gridActions'; +import { IGridInfo } from 'sql/workbench/parts/grid/common/interfaces'; +import { DataService } from 'sql/workbench/parts/grid/services/dataService'; +import { GridActionProvider } from 'sql/workbench/parts/grid/views/gridActions'; import { localize } from 'vs/nls'; import { IAction, Action } from 'vs/base/common/actions'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; export class EditDataGridActionProvider extends GridActionProvider { @@ -18,10 +15,9 @@ export class EditDataGridActionProvider extends GridActionProvider { dataService: DataService, selectAllCallback: (index: number) => void, private _deleteRowCallback: (index: number) => void, - private _revertRowCallback: () => void, - @IInstantiationService instantiationService: IInstantiationService + private _revertRowCallback: () => void ) { - super(dataService, selectAllCallback, instantiationService); + super(dataService, selectAllCallback); } /** * Return actions given a click on an edit data grid diff --git a/src/sql/parts/grid/views/editData/media/editData.css b/src/sql/workbench/parts/grid/views/editData/media/editData.css similarity index 100% rename from src/sql/parts/grid/views/editData/media/editData.css rename to src/sql/workbench/parts/grid/views/editData/media/editData.css diff --git a/src/sql/parts/grid/views/gridActions.ts b/src/sql/workbench/parts/grid/views/gridActions.ts similarity index 61% rename from src/sql/parts/grid/views/gridActions.ts rename to src/sql/workbench/parts/grid/views/gridActions.ts index 7371a2722b..9b6aa2589c 100644 --- a/src/sql/parts/grid/views/gridActions.ts +++ b/src/sql/workbench/parts/grid/views/gridActions.ts @@ -3,15 +3,11 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import { IGridInfo, SaveFormat } from 'sql/parts/grid/common/interfaces'; -import { DataService } from 'sql/parts/grid/services/dataService'; +import { IGridInfo, SaveFormat } from 'sql/workbench/parts/grid/common/interfaces'; +import { DataService } from 'sql/workbench/parts/grid/services/dataService'; import { localize } from 'vs/nls'; import { IAction, Action } from 'vs/base/common/actions'; -import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; export const GRID_SAVECSV_ID = 'grid.saveAsCsv'; export const GRID_SAVEJSON_ID = 'grid.saveAsJson'; @@ -32,8 +28,7 @@ export class GridActionProvider { constructor( protected _dataService: DataService, - protected _selectAllCallback: (index: number) => void, - @IInstantiationService private _instantiationService: IInstantiationService + protected _selectAllCallback: (index: number) => void ) { } @@ -42,7 +37,7 @@ export class GridActionProvider { * Return actions given a click on a grid */ public getGridActions(): IAction[] { - let actions: IAction[] = []; + const actions: IAction[] = []; actions.push(new SaveResultAction(SaveResultAction.SAVECSV_ID, SaveResultAction.SAVECSV_LABEL, SaveFormat.CSV, this._dataService)); actions.push(new SaveResultAction(SaveResultAction.SAVEJSON_ID, SaveResultAction.SAVEJSON_LABEL, SaveFormat.JSON, this._dataService)); actions.push(new SaveResultAction(SaveResultAction.SAVEEXCEL_ID, SaveResultAction.SAVEEXCEL_LABEL, SaveFormat.EXCEL, this._dataService)); @@ -53,30 +48,20 @@ export class GridActionProvider { return actions; } - - /** - * Return actions given a click on a messages pane - */ - public getMessagesActions(dataService: DataService, selectAllCallback: () => void): IAction[] { - let actions: IAction[] = []; - actions.push(this._instantiationService.createInstance(CopyMessagesAction, CopyMessagesAction.ID, CopyMessagesAction.LABEL)); - actions.push(new SelectAllMessagesAction(SelectAllMessagesAction.ID, SelectAllMessagesAction.LABEL, selectAllCallback)); - return actions; - } } -export class SaveResultAction extends Action { +class SaveResultAction extends Action { public static SAVECSV_ID = GRID_SAVECSV_ID; - public static SAVECSV_LABEL = localize('saveAsCsv', 'Save As CSV'); + public static SAVECSV_LABEL = localize('saveAsCsv', "Save As CSV"); public static SAVEJSON_ID = GRID_SAVEJSON_ID; - public static SAVEJSON_LABEL = localize('saveAsJson', 'Save As JSON'); + public static SAVEJSON_LABEL = localize('saveAsJson', "Save As JSON"); public static SAVEEXCEL_ID = GRID_SAVEEXCEL_ID; - public static SAVEEXCEL_LABEL = localize('saveAsExcel', 'Save As Excel'); + public static SAVEEXCEL_LABEL = localize('saveAsExcel', "Save As Excel"); public static SAVEXML_ID = GRID_SAVEXML_ID; - public static SAVEXML_LABEL = localize('saveAsXml', 'Save As XML'); + public static SAVEXML_LABEL = localize('saveAsXml', "Save As XML"); constructor( id: string, @@ -98,12 +83,12 @@ export class SaveResultAction extends Action { } } -export class CopyResultAction extends Action { +class CopyResultAction extends Action { public static COPY_ID = GRID_COPY_ID; - public static COPY_LABEL = localize('copySelection', 'Copy'); + public static COPY_LABEL = localize('copySelection', "Copy"); public static COPYWITHHEADERS_ID = GRID_COPYWITHHEADERS_ID; - public static COPYWITHHEADERS_LABEL = localize('copyWithHeaders', 'Copy With Headers'); + public static COPYWITHHEADERS_LABEL = localize('copyWithHeaders', "Copy With Headers"); constructor( id: string, @@ -120,9 +105,9 @@ export class CopyResultAction extends Action { } } -export class SelectAllGridAction extends Action { +class SelectAllGridAction extends Action { public static ID = GRID_SELECTALL_ID; - public static LABEL = localize('selectAll', 'Select All'); + public static LABEL = localize('selectAll', "Select All"); constructor( id: string, @@ -137,39 +122,3 @@ export class SelectAllGridAction extends Action { return Promise.resolve(true); } } - -export class SelectAllMessagesAction extends Action { - public static ID = MESSAGES_SELECTALL_ID; - public static LABEL = localize('selectAll', 'Select All'); - - constructor( - id: string, - label: string, - private selectAllCallback: () => void - ) { - super(id, label); - } - - public run(): Promise { - this.selectAllCallback(); - return Promise.resolve(true); - } -} - -export class CopyMessagesAction extends Action { - public static ID = MESSAGES_COPY_ID; - public static LABEL = localize('copyMessages', 'Copy'); - - constructor( - id: string, - label: string, - @IClipboardService private clipboardService: IClipboardService - ) { - super(id, label); - } - - public run(selectedRange: Selection): Promise { - this.clipboardService.writeText(selectedRange.toString()); - return Promise.resolve(true); - } -} diff --git a/src/sql/parts/grid/views/gridCommands.ts b/src/sql/workbench/parts/grid/views/gridCommands.ts similarity index 97% rename from src/sql/parts/grid/views/gridCommands.ts rename to src/sql/workbench/parts/grid/views/gridCommands.ts index f895ae4efb..4eb13e9318 100644 --- a/src/sql/parts/grid/views/gridCommands.ts +++ b/src/sql/workbench/parts/grid/views/gridCommands.ts @@ -3,9 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import * as GridContentEvents from 'sql/parts/grid/common/gridContentEvents'; +import * as GridContentEvents from 'sql/workbench/parts/grid/common/gridContentEvents'; import { IQueryModelService } from 'sql/platform/query/common/queryModel'; import { QueryEditor } from 'sql/parts/query/editor/queryEditor'; import { EditDataEditor } from 'sql/parts/editData/editor/editDataEditor'; @@ -88,4 +86,3 @@ export const viewAsChart = (accessor: ServicesAccessor) => { export const goToNextGrid = (accessor: ServicesAccessor) => { runActionOnActiveResultsEditor(accessor, GridContentEvents.GoToNextGrid); }; - diff --git a/src/sql/parts/grid/views/gridParentComponent.ts b/src/sql/workbench/parts/grid/views/gridParentComponent.ts similarity index 95% rename from src/sql/parts/grid/views/gridParentComponent.ts rename to src/sql/workbench/parts/grid/views/gridParentComponent.ts index 5daf9c8e73..2cfdc4d92c 100644 --- a/src/sql/parts/grid/views/gridParentComponent.ts +++ b/src/sql/workbench/parts/grid/views/gridParentComponent.ts @@ -3,13 +3,8 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import 'vs/css!sql/parts/grid/media/slickColorTheme'; -import 'vs/css!sql/parts/grid/media/flexbox'; -import 'vs/css!sql/parts/grid/media/styles'; -import 'vs/css!sql/parts/grid/media/slick.grid'; -import 'vs/css!sql/parts/grid/media/slickGrid'; +import 'vs/css!sql/workbench/parts/grid/media/flexbox'; +import 'vs/css!sql/workbench/parts/grid/media/styles'; import { Subscription, Subject } from 'rxjs/Rx'; import { ElementRef, QueryList, ChangeDetectorRef, ViewChildren } from '@angular/core'; @@ -17,12 +12,12 @@ import { SlickGrid } from 'angular2-slickgrid'; import { toDisposableSubscription } from 'sql/base/node/rxjsUtils'; import * as Constants from 'sql/parts/query/common/constants'; import * as LocalizedConstants from 'sql/parts/query/common/localizedConstants'; -import { IGridInfo, IGridDataSet, SaveFormat } from 'sql/parts/grid/common/interfaces'; +import { IGridInfo, IGridDataSet, SaveFormat } from 'sql/workbench/parts/grid/common/interfaces'; import * as Utils from 'sql/platform/connection/common/utils'; -import { DataService } from 'sql/parts/grid/services/dataService'; -import * as actions from 'sql/parts/grid/views/gridActions'; -import * as Services from 'sql/parts/grid/services/sharedServices'; -import * as GridContentEvents from 'sql/parts/grid/common/gridContentEvents'; +import { DataService } from 'sql/workbench/parts/grid/services/dataService'; +import * as actions from 'sql/workbench/parts/grid/views/gridActions'; +import * as Services from 'sql/base/browser/ui/table/formatters'; +import * as GridContentEvents from 'sql/workbench/parts/grid/common/gridContentEvents'; import { ResultsVisibleContext, ResultsGridFocussedContext, ResultsMessagesFocussedContext, QueryEditorVisibleContext } from 'sql/parts/query/common/queryContext'; import { error } from 'sql/base/common/log'; import { IQueryEditorService } from 'sql/workbench/services/queryEditor/common/queryEditorService'; @@ -37,7 +32,6 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; -import { INotificationService } from 'vs/platform/notification/common/notification'; export abstract class GridParentComponent { // CONSTANTS @@ -101,8 +95,7 @@ export abstract class GridParentComponent { protected contextKeyService: IContextKeyService, protected configurationService: IConfigurationService, protected clipboardService: IClipboardService, - protected queryEditorService: IQueryEditorService, - protected notificationService: INotificationService + protected queryEditorService: IQueryEditorService ) { this.toDispose = []; } diff --git a/src/sql/workbench/parts/notebook/outputs/tableRenderers.ts b/src/sql/workbench/parts/notebook/outputs/tableRenderers.ts index 58857d3fc3..bae400523e 100644 --- a/src/sql/workbench/parts/notebook/outputs/tableRenderers.ts +++ b/src/sql/workbench/parts/notebook/outputs/tableRenderers.ts @@ -5,7 +5,7 @@ import { TableDataView } from 'sql/base/browser/ui/table/tableDataView'; import { Table } from 'sql/base/browser/ui/table/table'; -import { textFormatter } from 'sql/parts/grid/services/sharedServices'; +import { textFormatter } from 'sql/base/browser/ui/table/formatters'; import { RowNumberColumn } from 'sql/base/browser/ui/table/plugins/rowNumberColumn.plugin'; import { escape } from 'sql/base/common/strings'; import { IDataResource } from 'sql/workbench/services/notebook/sql/sqlSessionManager'; @@ -86,30 +86,30 @@ export function renderDataResource( // SlickGrid requires columns and data to be in a very specific format; this code was adapted from tableInsight.component.ts function transformData(rows: any[], columns: Slick.Column[]): { [key: string]: string }[] { - return rows.map(row => { - let dataWithSchema = {}; - Object.keys(row).forEach((val, index) => { + return rows.map(row => { + let dataWithSchema = {}; + Object.keys(row).forEach((val, index) => { let displayValue = String(Object.values(row)[index]); // Since the columns[0] represents the row number, start at 1 - dataWithSchema[columns[index + 1].field] = { - displayValue: displayValue, - ariaLabel: escape(displayValue), - isNull: false - }; - }); - return dataWithSchema; - }); + dataWithSchema[columns[index + 1].field] = { + displayValue: displayValue, + ariaLabel: escape(displayValue), + isNull: false + }; + }); + return dataWithSchema; + }); } function transformColumns(columns: string[]): Slick.Column[] { - return columns.map((col, index) => { - return >{ - name: col, - id: col, - field: index.toString(), - formatter: textFormatter - }; - }); + return columns.map((col, index) => { + return >{ + name: col, + id: col, + field: index.toString(), + formatter: textFormatter + }; + }); } /** diff --git a/src/sqltest/parts/grid/services/sharedServices.test.ts b/src/sqltest/parts/grid/services/sharedServices.test.ts index 675c0357fa..80f32dcfe5 100644 --- a/src/sqltest/parts/grid/services/sharedServices.test.ts +++ b/src/sqltest/parts/grid/services/sharedServices.test.ts @@ -3,10 +3,8 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -'use strict'; -import * as azdata from 'azdata'; import * as assert from 'assert'; -import * as SharedServices from 'sql/parts/grid/services/sharedServices'; +import * as SharedServices from 'sql/base/browser/ui/table/formatters'; const testText = '
test text
'; @@ -41,4 +39,4 @@ function verifyFormattedHtml(formattedHtml: string, expectedText: string): void // Verify that the span element's text, not its innerHTML, matches the expected text assert.equal(spanElement.textContent, testText); assert.notEqual(spanElement.innerHTML, testText); -} \ No newline at end of file +} diff --git a/src/vs/code/electron-browser/workbench/workbench.html b/src/vs/code/electron-browser/workbench/workbench.html index 35c39d3aca..d51e9b21f9 100644 --- a/src/vs/code/electron-browser/workbench/workbench.html +++ b/src/vs/code/electron-browser/workbench/workbench.html @@ -10,10 +10,6 @@ - - - - - \ No newline at end of file + diff --git a/src/vs/code/electron-browser/workbench/workbench.js b/src/vs/code/electron-browser/workbench/workbench.js index b92d36c696..8e06bc1362 100644 --- a/src/vs/code/electron-browser/workbench/workbench.js +++ b/src/vs/code/electron-browser/workbench/workbench.js @@ -19,6 +19,10 @@ process['lazyEnv'] = getLazyEnv(); /* eslint-disable */ // SQL global imports +const jQuery = require('jquery'); +const $ = jQuery; +require('slickgrid/lib/jquery.event.drag-2.3.0'); +require('slickgrid/lib/jquery-ui-1.9.2'); const _ = require('underscore')._; require('slickgrid/slick.core'); const Slick = window.Slick;