diff --git a/src/sql/base/browser/ui/designer/designer.ts b/src/sql/workbench/browser/designer/designer.ts similarity index 97% rename from src/sql/base/browser/ui/designer/designer.ts rename to src/sql/workbench/browser/designer/designer.ts index f6d0118baf..df82ee8696 100644 --- a/src/sql/base/browser/ui/designer/designer.ts +++ b/src/sql/workbench/browser/designer/designer.ts @@ -8,14 +8,13 @@ import { DesignerTableComponentRowData, DesignerTableProperties, InputBoxProperties, DropDownProperties, CheckBoxProperties, DesignerComponentTypeName, DesignerEditProcessedEventArgs, DesignerStateChangedEventArgs, DesignerAction, DesignerUIState, DesignerTextEditor, ScriptProperty } - from 'sql/base/browser/ui/designer/interfaces'; + from 'sql/workbench/browser/designer/interfaces'; import { IPanelTab, ITabbedPanelStyles, TabbedPanel } from 'sql/base/browser/ui/panel/panel'; import * as DOM from 'vs/base/browser/dom'; import { Event } from 'vs/base/common/event'; import { Orientation, Sizing, SplitView } from 'vs/base/browser/ui/splitview/splitview'; import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import { IInputBoxStyles, InputBox } from 'sql/base/browser/ui/inputBox/inputBox'; -import { IContextViewProvider } from 'vs/base/browser/ui/contextview/contextview'; import 'vs/css!./media/designer'; import { ITableStyles } from 'sql/base/browser/ui/table/interfaces'; import { IThemable } from 'vs/base/common/styler'; @@ -26,13 +25,16 @@ import { TableDataView } from 'sql/base/browser/ui/table/tableDataView'; import { localize } from 'vs/nls'; import { TableCellEditorFactory } from 'sql/base/browser/ui/table/tableCellEditorFactory'; import { CheckBoxColumn } from 'sql/base/browser/ui/table/plugins/checkboxColumn.plugin'; -import { DesignerTabPanelView } from 'sql/base/browser/ui/designer/designerTabPanelView'; -import { DesignerPropertiesPane, PropertiesPaneObjectContext } from 'sql/base/browser/ui/designer/designerPropertiesPane'; +import { DesignerTabPanelView } from 'sql/workbench/browser/designer/designerTabPanelView'; +import { DesignerPropertiesPane, PropertiesPaneObjectContext } from 'sql/workbench/browser/designer/designerPropertiesPane'; import { Button, IButtonStyles } from 'sql/base/browser/ui/button/button'; import { ButtonColumn } from 'sql/base/browser/ui/table/plugins/buttonColumn.plugin'; import { Codicon } from 'vs/base/common/codicons'; import { Color } from 'vs/base/common/color'; import { LoadingSpinner } from 'sql/base/browser/ui/loadingSpinner/loadingSpinner'; +import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; +import { DesignerScriptEditor } from 'sql/workbench/browser/designer/designerScriptEditor'; export interface IDesignerStyle { tabbedPanelStyles?: ITabbedPanelStyles; @@ -75,8 +77,8 @@ export class Designer extends Disposable implements IThemable { private _textEditor: DesignerTextEditor; constructor(private readonly _container: HTMLElement, - textEditorCreator: (container: HTMLElement) => DesignerTextEditor, - private readonly _contextViewProvider: IContextViewProvider) { + @IInstantiationService private readonly _instantiationService: IInstantiationService, + @IContextViewService private readonly _contextViewProvider: IContextViewService) { super(); this._tableCellEditorFactory = new TableCellEditorFactory( { @@ -125,7 +127,7 @@ export class Designer extends Disposable implements IThemable { maximumSize: Number.POSITIVE_INFINITY, onDidChange: Event.None }, Sizing.Distribute); - this._textEditor = textEditorCreator(this._editorContainer); + this._textEditor = this._instantiationService.createInstance(DesignerScriptEditor, this._editorContainer); this._verticalSplitView.addView({ element: this._editorContainer, layout: size => { @@ -376,7 +378,9 @@ export class Designer extends Disposable implements IThemable { private updateComponentValues(): void { const viewModel = this._input.viewModel; const scriptProperty = viewModel[ScriptProperty] as InputBoxProperties; - this._textEditor.content = scriptProperty.value; + if (scriptProperty) { + this._textEditor.content = scriptProperty.value || ''; + } this._componentMap.forEach((value) => { this.setComponentValue(value.defintion, value.component, viewModel); }); diff --git a/src/sql/base/browser/ui/designer/designerPropertiesPane.ts b/src/sql/workbench/browser/designer/designerPropertiesPane.ts similarity index 96% rename from src/sql/base/browser/ui/designer/designerPropertiesPane.ts rename to src/sql/workbench/browser/designer/designerPropertiesPane.ts index ea40800610..32f081b8db 100644 --- a/src/sql/base/browser/ui/designer/designerPropertiesPane.ts +++ b/src/sql/workbench/browser/designer/designerPropertiesPane.ts @@ -3,8 +3,8 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { CreateComponentsFunc, DesignerUIComponent, SetComponentValueFunc } from 'sql/base/browser/ui/designer/designer'; -import { DesignerViewModel, DesignerDataPropertyInfo } from 'sql/base/browser/ui/designer/interfaces'; +import { CreateComponentsFunc, DesignerUIComponent, SetComponentValueFunc } from 'sql/workbench/browser/designer/designer'; +import { DesignerViewModel, DesignerDataPropertyInfo } from 'sql/workbench/browser/designer/interfaces'; import * as DOM from 'vs/base/browser/dom'; import { equals } from 'vs/base/common/objects'; import { localize } from 'vs/nls'; diff --git a/src/sql/workbench/contrib/tableDesigner/browser/tableDesignerTextEditor.ts b/src/sql/workbench/browser/designer/designerScriptEditor.ts similarity index 91% rename from src/sql/workbench/contrib/tableDesigner/browser/tableDesignerTextEditor.ts rename to src/sql/workbench/browser/designer/designerScriptEditor.ts index 3c969e03f8..7c319cf946 100644 --- a/src/sql/workbench/contrib/tableDesigner/browser/tableDesignerTextEditor.ts +++ b/src/sql/workbench/browser/designer/designerScriptEditor.ts @@ -3,7 +3,7 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { DesignerTextEditor } from 'sql/base/browser/ui/designer/interfaces'; +import { DesignerTextEditor } from 'sql/workbench/browser/designer/interfaces'; import { Event, Emitter } from 'vs/base/common/event'; import { Schemas } from 'vs/base/common/network'; import { URI } from 'vs/base/common/uri'; @@ -30,10 +30,10 @@ import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditorWidget'; import { ITextEditorOptions } from 'vs/platform/editor/common/editor'; import { onUnexpectedError } from 'vs/base/common/errors'; -class TableDesignerCodeEditor extends CodeEditorWidget { +class DesignerCodeEditor extends CodeEditorWidget { } -export class TableDesignerTextEditor extends BaseTextEditor implements DesignerTextEditor { +export class DesignerScriptEditor extends BaseTextEditor implements DesignerTextEditor { private _content: string; private _contentChangeEventEmitter: Emitter = new Emitter(); readonly onDidContentChange: Event = this._contentChangeEventEmitter.event; @@ -54,7 +54,7 @@ export class TableDesignerTextEditor extends BaseTextEditor implements DesignerT @IEditorService editorService: IEditorService, @IEditorGroupsService editorGroupService: IEditorGroupsService ) { - super(TableDesignerTextEditor.ID, telemetryService, instantiationService, storageService, configurationService, themeService, editorService, editorGroupService); + super(DesignerScriptEditor.ID, telemetryService, instantiationService, storageService, configurationService, themeService, editorService, editorGroupService); this.create(this._container); this.setVisible(true); this._untitledTextEditorModel = this.instantiationService.createInstance(UntitledTextEditorModel, URI.from({ scheme: Schemas.untitled }), false, undefined, 'sql', undefined); @@ -66,7 +66,7 @@ export class TableDesignerTextEditor extends BaseTextEditor implements DesignerT } public override createEditorControl(parent: HTMLElement, configuration: IEditorOptions): editorCommon.IEditor { - return this.instantiationService.createInstance(TableDesignerCodeEditor, parent, configuration, {}); + return this.instantiationService.createInstance(DesignerCodeEditor, parent, configuration, {}); } protected override getConfigurationOverrides(): IEditorOptions { diff --git a/src/sql/base/browser/ui/designer/designerTabPanelView.ts b/src/sql/workbench/browser/designer/designerTabPanelView.ts similarity index 91% rename from src/sql/base/browser/ui/designer/designerTabPanelView.ts rename to src/sql/workbench/browser/designer/designerTabPanelView.ts index a7dc44452b..1e4a153689 100644 --- a/src/sql/base/browser/ui/designer/designerTabPanelView.ts +++ b/src/sql/workbench/browser/designer/designerTabPanelView.ts @@ -3,12 +3,12 @@ * Licensed under the Source EULA. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { DesignerTab } from 'sql/base/browser/ui/designer/interfaces'; +import { DesignerTab } from 'sql/workbench/browser/designer/interfaces'; import { IPanelView } from 'sql/base/browser/ui/panel/panel'; import { Table } from 'sql/base/browser/ui/table/table'; import { Disposable } from 'vs/base/common/lifecycle'; import * as DOM from 'vs/base/browser/dom'; -import { CreateComponentsFunc } from 'sql/base/browser/ui/designer/designer'; +import { CreateComponentsFunc } from 'sql/workbench/browser/designer/designer'; const ButtonHeight = 30; const HorizontalPadding = 10; diff --git a/src/sql/base/browser/ui/designer/interfaces.ts b/src/sql/workbench/browser/designer/interfaces.ts similarity index 100% rename from src/sql/base/browser/ui/designer/interfaces.ts rename to src/sql/workbench/browser/designer/interfaces.ts diff --git a/src/sql/base/browser/ui/designer/media/designer.css b/src/sql/workbench/browser/designer/media/designer.css similarity index 100% rename from src/sql/base/browser/ui/designer/media/designer.css rename to src/sql/workbench/browser/designer/media/designer.css diff --git a/src/sql/workbench/contrib/tableDesigner/browser/tableDesignerEditor.ts b/src/sql/workbench/contrib/tableDesigner/browser/tableDesignerEditor.ts index 8423c4756a..20c375f7ec 100644 --- a/src/sql/workbench/contrib/tableDesigner/browser/tableDesignerEditor.ts +++ b/src/sql/workbench/contrib/tableDesigner/browser/tableDesignerEditor.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import 'vs/css!./media/tableDesignerEditor'; -import { Designer } from 'sql/base/browser/ui/designer/designer'; +import { Designer } from 'sql/workbench/browser/designer/designer'; import { attachDesignerStyler } from 'sql/platform/theme/common/styler'; import { TableDesignerInput } from 'sql/workbench/browser/editor/tableDesigner/tableDesignerInput'; import * as DOM from 'vs/base/browser/dom'; @@ -21,13 +21,11 @@ import { SaveTableChangesAction } from 'sql/workbench/contrib/tableDesigner/brow import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IColorTheme, ICssStyleCollector, registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { DesignerPaneSeparator } from 'sql/platform/theme/common/colorRegistry'; -import { TableDesignerTextEditor } from 'sql/workbench/contrib/tableDesigner/browser/tableDesignerTextEditor'; export class TableDesignerEditor extends EditorPane { public static readonly ID: string = 'workbench.editor.tableDesigner'; private _designer: Designer; - private _designerTextEditor: TableDesignerTextEditor; private _saveChangesAction: SaveTableChangesAction; constructor( @@ -62,10 +60,7 @@ export class TableDesignerEditor extends EditorPane { this._saveChangesAction.enabled = false; actionbar.push(this._saveChangesAction, { icon: true, label: false }); - this._designer = new Designer(designerContainer, (editorContainer) => { - this._designerTextEditor = this._instantiationService.createInstance(TableDesignerTextEditor, editorContainer); - return this._designerTextEditor; - }, this._contextViewService); + this._designer = new Designer(designerContainer, this._instantiationService, this._contextViewService); this._register(attachDesignerStyler(this._designer, this.themeService)); this._register(registerThemingParticipant((theme: IColorTheme, collector: ICssStyleCollector) => { const border = theme.getColor(DesignerPaneSeparator); diff --git a/src/sql/workbench/services/tableDesigner/browser/tableDesignerComponentInput.ts b/src/sql/workbench/services/tableDesigner/browser/tableDesignerComponentInput.ts index 7808884800..64d6a144af 100644 --- a/src/sql/workbench/services/tableDesigner/browser/tableDesignerComponentInput.ts +++ b/src/sql/workbench/services/tableDesigner/browser/tableDesignerComponentInput.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as azdata from 'azdata'; -import { DesignerViewModel, DesignerEdit, DesignerComponentInput, DesignerView, DesignerTab, DesignerDataPropertyInfo, DropDownProperties, DesignerTableProperties, DesignerEditProcessedEventArgs, DesignerAction, DesignerStateChangedEventArgs } from 'sql/base/browser/ui/designer/interfaces'; +import { DesignerViewModel, DesignerEdit, DesignerComponentInput, DesignerView, DesignerTab, DesignerDataPropertyInfo, DropDownProperties, DesignerTableProperties, DesignerEditProcessedEventArgs, DesignerAction, DesignerStateChangedEventArgs } from 'sql/workbench/browser/designer/interfaces'; import { TableDesignerProvider } from 'sql/workbench/services/tableDesigner/common/interface'; import { localize } from 'vs/nls'; import { designers } from 'sql/workbench/api/common/sqlExtHostTypes';