From 80c7f9e8556c7674fee037603900e09a4a2d4cfe Mon Sep 17 00:00:00 2001 From: Anthony Dresser Date: Mon, 10 Sep 2018 21:16:54 -0700 Subject: [PATCH] add logic to hide and add grid panel based on size (#2481) --- .../parts/query/editor/queryResultsView.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/sql/parts/query/editor/queryResultsView.ts b/src/sql/parts/query/editor/queryResultsView.ts index c5dbc38d8d..53b5b2bd21 100644 --- a/src/sql/parts/query/editor/queryResultsView.ts +++ b/src/sql/parts/query/editor/queryResultsView.ts @@ -26,6 +26,7 @@ class ResultsView implements IPanelView { private messagePanel: MessagePanel; private container = document.createElement('div'); private currentDimension: DOM.Dimension; + private isGridRendered = false; constructor(instantiationService: IInstantiationService) { this.panelViewlet = instantiationService.createInstance(PanelViewlet, 'resultsView', { showHeaderInTitleWhenSingleView: false }); @@ -35,10 +36,27 @@ class ResultsView implements IPanelView { this.messagePanel.render(); this.panelViewlet.create(this.container).then(() => { this.panelViewlet.addPanels([ - { panel: this.gridPanel, size: 1000, index: 0 }, { panel: this.messagePanel, size: this.messagePanel.minimumSize, index: 1 } ]); }); + this.gridPanel.onDidChange(e => { + let size = this.gridPanel.maximumBodySize; + if (this.isGridRendered) { + if (size < 1) { + this.panelViewlet.removePanels([this.gridPanel]); + // tell the panel is has been removed. + this.gridPanel.layout(0); + this.isGridRendered = false; + } + } else { + if (size > 0) { + this.panelViewlet.addPanels([ + { panel: this.gridPanel, index: 0, size: this.gridPanel.maximumSize } + ]); + this.isGridRendered = true; + } + } + }); let gridResizeList = this.gridPanel.onDidChange(e => { this.panelViewlet.resizePanel(this.gridPanel, this.gridPanel.maximumSize); });