From 07955116258ce2afa4c619fa32dd8adc102b3d2b Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Fri, 9 Jun 2017 01:36:13 +0300 Subject: [PATCH] [vcs-log] move log ui creation to VcsLogContentProvider When addLogUi is called, we already know that log manager exists, so it can be passed to the method as a parameter. This way we are getting rid of getValue call that creates a new log manager when it does not exist. --- .../vcs/log/impl/VcsLogContentProvider.java | 16 ++++++++++------ .../com/intellij/vcs/log/impl/VcsProjectLog.java | 8 ++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentProvider.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentProvider.java index 1a7a4f9b99c2..e326d07f9276 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentProvider.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogContentProvider.java @@ -33,6 +33,7 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.messages.MessageBusConnection; import com.intellij.vcs.log.ui.AbstractVcsLogUi; import com.intellij.vcs.log.ui.VcsLogPanel; +import com.intellij.vcs.log.ui.VcsLogUiImpl; import org.jetbrains.annotations.CalledInAwt; import org.jetbrains.annotations.NotNull; @@ -61,7 +62,7 @@ public class VcsLogContentProvider implements ChangesViewContentProvider { connection.subscribe(VcsProjectLog.VCS_PROJECT_LOG_CHANGED, new VcsProjectLog.ProjectLogListener() { @Override public void logCreated(@NotNull VcsLogManager logManager) { - addLogUi(); + addLogUi(logManager); } @Override @@ -71,14 +72,17 @@ public class VcsLogContentProvider implements ChangesViewContentProvider { } }); - if (myProjectLog.getLogManager() != null) { - addLogUi(); + VcsLogManager manager = myProjectLog.getLogManager(); + if (manager != null) { + addLogUi(manager); } } @CalledInAwt - private void addLogUi() { - myContainer.add(myProjectLog.initMainLog(TAB_NAME), BorderLayout.CENTER); + private void addLogUi(@NotNull VcsLogManager logManager) { + VcsLogUiImpl ui = logManager.createLogUi(VcsLogTabsProperties.MAIN_LOG_ID, TAB_NAME); + myProjectLog.setMainUi(ui); + myContainer.add(new VcsLogPanel(logManager, ui), BorderLayout.CENTER); } @Override @@ -90,7 +94,7 @@ public class VcsLogContentProvider implements ChangesViewContentProvider { @Override public void disposeContent() { myContainer.removeAll(); - + VcsLogManager logManager = myProjectLog.getLogManager(); if (logManager != null) { closeLogTabs(logManager); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java index aaa35371ce8f..c42273def331 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsProjectLog.java @@ -32,14 +32,12 @@ import com.intellij.util.messages.MessageBus; import com.intellij.util.messages.MessageBusConnection; import com.intellij.util.messages.Topic; import com.intellij.vcs.log.data.VcsLogData; -import com.intellij.vcs.log.ui.VcsLogPanel; import com.intellij.vcs.log.ui.VcsLogUiImpl; import org.jetbrains.annotations.CalledInAny; import org.jetbrains.annotations.CalledInAwt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import javax.swing.*; import java.util.Arrays; import java.util.Collection; @@ -77,10 +75,8 @@ public class VcsProjectLog implements Disposable { return Arrays.asList(ProjectLevelVcsManager.getInstance(myProject).getAllVcsRoots()); } - @NotNull - public JComponent initMainLog(@NotNull String contentTabName) { - myUi = myLogManager.getValue().createLogUi(VcsLogTabsProperties.MAIN_LOG_ID, contentTabName); - return new VcsLogPanel(myLogManager.getValue(), myUi); + void setMainUi(@NotNull VcsLogUiImpl ui) { + myUi = ui; } /**