From 417b8fbb52b8e5973ad1437de0a793dfaeca3136 Mon Sep 17 00:00:00 2001 From: Artem Zatsarynnyi Date: Mon, 26 Feb 2018 10:23:57 +0200 Subject: [PATCH] Fix switching parts layout (#8895) Signed-off-by: Artem Zatsarynnyi --- .../toolbar/selector/PanelSelectorPresenter.java | 15 +++------------ .../multipart/EditorMultiPartStackPresenter.java | 5 ++++- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/command/toolbar/selector/PanelSelectorPresenter.java b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/command/toolbar/selector/PanelSelectorPresenter.java index 3ff53d243aa..5a31977354f 100644 --- a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/command/toolbar/selector/PanelSelectorPresenter.java +++ b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/command/toolbar/selector/PanelSelectorPresenter.java @@ -14,35 +14,27 @@ import com.google.gwt.user.client.ui.AcceptsOneWidget; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.web.bindery.event.shared.EventBus; import javax.inject.Singleton; import org.eclipse.che.ide.api.mvp.Presenter; -import org.eclipse.che.ide.api.parts.PartPresenter; import org.eclipse.che.ide.api.parts.PartStack; import org.eclipse.che.ide.api.parts.PartStackStateChangedEvent; import org.eclipse.che.ide.api.parts.PartStackType; import org.eclipse.che.ide.api.parts.Perspective; import org.eclipse.che.ide.api.parts.PerspectiveManager; -import org.eclipse.che.ide.api.parts.WorkspaceAgent; /** Presenter to manage Panel selector widget and perspective layout. */ @Singleton public class PanelSelectorPresenter implements Presenter, PanelSelectorView.ActionDelegate { - private final Provider workspaceAgentProvider; private PanelSelectorView view; private PerspectiveManager perspectiveManager; @Inject public PanelSelectorPresenter( - PanelSelectorView view, - PerspectiveManager perspectiveManager, - EventBus eventBus, - Provider workspaceAgentProvider) { + PanelSelectorView view, PerspectiveManager perspectiveManager, EventBus eventBus) { this.view = view; this.perspectiveManager = perspectiveManager; - this.workspaceAgentProvider = workspaceAgentProvider; view.setDelegate(this); @@ -109,8 +101,6 @@ private void showPanels(boolean left, boolean bottom, boolean right) { return; } - PartPresenter activePart = workspaceAgentProvider.get().getActivePart(); - PartStack editorPartStack = perspective.getPartStack(PartStackType.EDITING); editorPartStack.restore(); @@ -150,7 +140,8 @@ private void showPanels(boolean left, boolean bottom, boolean right) { updateButtonState(); - workspaceAgentProvider.get().setActivePart(activePart); + // set focus to the active editor if it exists + editorPartStack.openPreviousActivePart(); } /** Updates icon for panel selector button displaying the current state of panels. */ diff --git a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/editor/multipart/EditorMultiPartStackPresenter.java b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/editor/multipart/EditorMultiPartStackPresenter.java index 6b00d09228f..12d893e8c41 100644 --- a/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/editor/multipart/EditorMultiPartStackPresenter.java +++ b/ide/che-core-ide-app/src/main/java/org/eclipse/che/ide/part/editor/multipart/EditorMultiPartStackPresenter.java @@ -225,7 +225,10 @@ public void removePartStack(EditorPartStack editorPartStack) { @Override public void openPreviousActivePart() { if (activeEditor != null) { - getPartStackByPart(activeEditor).openPreviousActivePart(); + EditorPartStack partStack = getPartStackByPart(activeEditor); + if (partStack != null) { + partStack.openPreviousActivePart(); + } } }