diff --git a/extensions/query-store/src/common/utils.ts b/extensions/query-store/src/common/utils.ts index 72632c774a..9454a3bd1a 100644 --- a/extensions/query-store/src/common/utils.ts +++ b/extensions/query-store/src/common/utils.ts @@ -57,21 +57,19 @@ export function createTwoComponentFlexContainer(view: azdata.ModelView, firstCom /** * Creates a vertical splitview * @param view - * @param topComponent - * @param bottomComponent - * @param splitViewHeight + * @param firstComponent + * @param secondComponent + * @param orientation orientation of the split view - horizontal or vertical * @returns Vertical SplitViewContainer with the top and bottom components */ -export function createVerticalSplitView(view: azdata.ModelView, topComponent: azdata.Component, bottomComponent: azdata.Component, splitViewHeight: number): azdata.SplitViewContainer { - // TODO: figure out why the horizontal spliview isn't working - +export function createSplitView(view: azdata.ModelView, firstComponent: azdata.Component, secondComponent: azdata.Component, orientation: string): azdata.SplitViewContainer { const splitview = view.modelBuilder.splitViewContainer().component(); - splitview.addItem(topComponent); - splitview.addItem(bottomComponent); + splitview.addItem(firstComponent); + splitview.addItem(secondComponent); splitview.setLayout({ - orientation: 'vertical', - splitViewHeight: splitViewHeight + orientation: orientation, + splitViewSize: undefined // setting this to undefined will default the splitview size to use the model view container's size }); return splitview; diff --git a/extensions/query-store/src/reports/baseQueryStoreReport.ts b/extensions/query-store/src/reports/baseQueryStoreReport.ts index 9dbb8d1da9..160ef8ae74 100644 --- a/extensions/query-store/src/reports/baseQueryStoreReport.ts +++ b/extensions/query-store/src/reports/baseQueryStoreReport.ts @@ -59,19 +59,17 @@ export abstract class BaseQueryStoreReport { break; } case 2: { - // TODO: replace 800 to have the number be based on how big the window is // one container on top, one on the bottom - mainContainer = this.resizeable ? utils.createVerticalSplitView(view, containers[0], containers[1], 800) : utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'column'); + mainContainer = this.resizeable ? utils.createSplitView(view, containers[0], containers[1], 'vertical') : utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'column'); break; } case 3: { // 2 containers on top, one on the bottom - // TODO: support portrait and landscape view. Right now it's landscape view only - mainContainer = this.resizeable ? utils.createVerticalSplitView(view, utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'row'), containers[2], 800) + mainContainer = this.resizeable ? utils.createSplitView(view, utils.createSplitView(view, containers[0], containers[1], 'horizontal'), containers[2], 'vertical') : utils.createTwoComponentFlexContainer(view, utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'row'), containers[2], 'column'); break; } case 4: { // 2 containers on top, 2 on the bottom - mainContainer = this.resizeable ? utils.createVerticalSplitView(view, utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'row'), utils.createTwoComponentFlexContainer(view, containers[2], containers[3], 'row'), 800) + mainContainer = this.resizeable ? utils.createSplitView(view, utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'row'), utils.createTwoComponentFlexContainer(view, containers[2], containers[3], 'row'), 'vertical') : utils.createTwoComponentFlexContainer(view, utils.createTwoComponentFlexContainer(view, containers[0], containers[1], 'row'), utils.createTwoComponentFlexContainer(view, containers[2], containers[3], 'row'), 'column'); break; } default: { diff --git a/extensions/query-store/src/test/utils.test.ts b/extensions/query-store/src/test/utils.test.ts index 90bf775fa1..58fe7ee801 100644 --- a/extensions/query-store/src/test/utils.test.ts +++ b/extensions/query-store/src/test/utils.test.ts @@ -5,7 +5,7 @@ import * as azdata from 'azdata'; import * as should from 'should'; -import { createOneComponentFlexContainer, createTwoComponentFlexContainer, createVerticalSplitView } from '../common/utils'; +import { createOneComponentFlexContainer, createTwoComponentFlexContainer, createSplitView } from '../common/utils'; import { TestContext, createViewContext } from './testUtils'; let testContext: TestContext; @@ -29,8 +29,8 @@ describe('Test to verify flex container creation util function', () => { should(flexContainer.valid).be.true(); }); - it('Should create a component as expected with createVerticalSplitView', () => { - let splitViewContainer: azdata.SplitViewContainer = createVerticalSplitView(testContext.view, testContext.component, testContext.component, 100); + it('Should create a component as expected with createSplitView', () => { + let splitViewContainer: azdata.SplitViewContainer = createSplitView(testContext.view, testContext.component, testContext.component, 'vertical'); should(splitViewContainer.valid).be.true(); }); }); diff --git a/extensions/schema-compare/src/schemaCompareMainWindow.ts b/extensions/schema-compare/src/schemaCompareMainWindow.ts index 7fa0270010..09eba9cdb4 100644 --- a/extensions/schema-compare/src/schemaCompareMainWindow.ts +++ b/extensions/schema-compare/src/schemaCompareMainWindow.ts @@ -451,7 +451,7 @@ export class SchemaCompareMainWindow { this.splitView.addItem(this.diffEditor); this.splitView.setLayout({ orientation: 'vertical', - splitViewHeight: 800 + splitViewSize: 800 }); // create a map of the differences to row numbers diff --git a/src/sql/azdata.d.ts b/src/sql/azdata.d.ts index cf9426ed7d..4126859f8f 100644 --- a/src/sql/azdata.d.ts +++ b/src/sql/azdata.d.ts @@ -3387,8 +3387,9 @@ declare module 'azdata' { /** * SplitView height + * @deprecated use splitViewSize instead */ - splitViewHeight: number | string; + splitViewHeight?: number | string; } export interface FlexItemLayout { diff --git a/src/sql/azdata.proposed.d.ts b/src/sql/azdata.proposed.d.ts index c683cad71e..cdfd12cd7a 100644 --- a/src/sql/azdata.proposed.d.ts +++ b/src/sql/azdata.proposed.d.ts @@ -2037,4 +2037,12 @@ declare module 'azdata' { RemoteSession = 0, LocalFile = 1 } + + export interface SplitViewLayout extends FlexLayout { + /** + * SplitView size. Height if the orientation is vertical, width if the orientation is horizontal + * If undefined, the size of the model view container is used + */ + splitViewSize?: number | string | undefined; + } } diff --git a/src/sql/workbench/browser/modelComponents/splitviewContainer.component.ts b/src/sql/workbench/browser/modelComponents/splitviewContainer.component.ts index 15d7ea1ee4..dd55e7be32 100644 --- a/src/sql/workbench/browser/modelComponents/splitviewContainer.component.ts +++ b/src/sql/workbench/browser/modelComponents/splitviewContainer.component.ts @@ -59,7 +59,7 @@ export default class SplitViewContainerImpl extends ContainerBase ChangeDetectorRef)) changeRef: ChangeDetectorRef, @@ -103,8 +103,27 @@ export default class SplitViewContainerImpl extends ContainerBase { @@ -120,7 +139,8 @@ export default class SplitViewContainerImpl extends ContainerBase