add logic to hide and add grid panel based on size (#2481)

This commit is contained in:
Anthony Dresser
2018-09-10 21:16:54 -07:00
committed by Karl Burtram
parent 709ef4e39f
commit 80c7f9e855

View File

@@ -26,6 +26,7 @@ class ResultsView implements IPanelView {
private messagePanel: MessagePanel; private messagePanel: MessagePanel;
private container = document.createElement('div'); private container = document.createElement('div');
private currentDimension: DOM.Dimension; private currentDimension: DOM.Dimension;
private isGridRendered = false;
constructor(instantiationService: IInstantiationService) { constructor(instantiationService: IInstantiationService) {
this.panelViewlet = instantiationService.createInstance(PanelViewlet, 'resultsView', { showHeaderInTitleWhenSingleView: false }); this.panelViewlet = instantiationService.createInstance(PanelViewlet, 'resultsView', { showHeaderInTitleWhenSingleView: false });
@@ -35,10 +36,27 @@ class ResultsView implements IPanelView {
this.messagePanel.render(); this.messagePanel.render();
this.panelViewlet.create(this.container).then(() => { this.panelViewlet.create(this.container).then(() => {
this.panelViewlet.addPanels([ this.panelViewlet.addPanels([
{ panel: this.gridPanel, size: 1000, index: 0 },
{ panel: this.messagePanel, size: this.messagePanel.minimumSize, index: 1 } { 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 => { let gridResizeList = this.gridPanel.onDidChange(e => {
this.panelViewlet.resizePanel(this.gridPanel, this.gridPanel.maximumSize); this.panelViewlet.resizePanel(this.gridPanel, this.gridPanel.maximumSize);
}); });