From ff5c1edc63c87be4e9fe4339a389825a89b15c80 Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 22 Feb 2018 16:14:08 +0100 Subject: [PATCH] compositeBar: addComposite, removeComposite --- .../browser/parts/activitybar/activitybarPart.ts | 10 +--------- .../browser/parts/compositebar/compositeBar.ts | 14 ++++++++++++-- src/vs/workbench/browser/parts/panel/panelPart.ts | 10 +--------- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index 47a3cd1217f..d0018ceac5c 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -96,15 +96,7 @@ export class ActivitybarPart extends Part { if (location === 'sidebar') { this.compositeBar.addComposite(this.viewletService.getViewlet(SEARCH_VIEW_ID)); } else { - let promise: TPromise = TPromise.as(null); - const activeViewlet = this.viewletService.getActiveViewlet(); - if (activeViewlet && activeViewlet.getId() === SEARCH_VIEW_ID) { - promise = this.viewletService.openViewlet(this.viewletService.getDefaultViewletId()); - } - - promise.then(() => { - this.compositeBar.removeComposite(SEARCH_VIEW_ID); - }); + this.compositeBar.removeComposite(SEARCH_VIEW_ID); } } })); diff --git a/src/vs/workbench/browser/parts/compositebar/compositeBar.ts b/src/vs/workbench/browser/parts/compositebar/compositeBar.ts index a3936115982..25234941b8d 100644 --- a/src/vs/workbench/browser/parts/compositebar/compositeBar.ts +++ b/src/vs/workbench/browser/parts/compositebar/compositeBar.ts @@ -82,11 +82,21 @@ export class CompositeBar implements ICompositeBar { } public addComposite(compositeData: { id: string; name: string }): void { - // todo@isidor + if (this.options.composites.filter(c => c.id === compositeData.id).length) { + return; + } + + this.options.composites.push(compositeData); + this.pin(compositeData.id); } public removeComposite(id: string): void { - // todo@isidor + if (this.options.composites.filter(c => c.id === id).length === 0) { + return; + } + + this.options.composites = this.options.composites.filter(c => c.id !== id); + this.unpin(id); } public activateComposite(id: string): void { diff --git a/src/vs/workbench/browser/parts/panel/panelPart.ts b/src/vs/workbench/browser/parts/panel/panelPart.ts index 46a20445157..a8a017a4a10 100644 --- a/src/vs/workbench/browser/parts/panel/panelPart.ts +++ b/src/vs/workbench/browser/parts/panel/panelPart.ts @@ -119,15 +119,7 @@ export class PanelPart extends CompositePart implements IPanelService { if (location === 'panel') { this.compositeBar.addComposite(this.getPanel(SEARCH_VIEW_ID)); } else { - let promise: TPromise = TPromise.as(null); - const activePanel = this.getActivePanel(); - if (activePanel && activePanel.getId() === SEARCH_VIEW_ID) { - promise = this.openPanel(Registry.as(PanelExtensions.Panels).getDefaultPanelId()); - } - - promise.then(() => { - this.compositeBar.removeComposite(SEARCH_VIEW_ID); - }); + this.compositeBar.removeComposite(SEARCH_VIEW_ID); } } })); -- GitLab