diff --git a/plugins/svn4idea/src/META-INF/plugin.xml b/plugins/svn4idea/src/META-INF/plugin.xml index c0bdd3457557..735d93561401 100644 --- a/plugins/svn4idea/src/META-INF/plugin.xml +++ b/plugins/svn4idea/src/META-INF/plugin.xml @@ -144,6 +144,9 @@ + + { private ChangeProvider myChangeProvider; private MergeProvider myMergeProvider; - private final WorkingCopiesContent myWorkingCopiesContent; private final SvnChangelistListener myChangeListListener; @@ -193,8 +192,6 @@ public class SvnVcs extends AbstractVcs { myFrameStateListener = project.isDefault() ? null : new MyFrameStateListener(ChangeListManager.getInstance(project), VcsDirtyScopeManager.getInstance(project)); - myWorkingCopiesContent = new WorkingCopiesContent(this); - myChecker = new SvnExecutableChecker(this); Application app = ApplicationManager.getApplication(); @@ -216,8 +213,6 @@ public class SvnVcs extends AbstractVcs { else { invokeRefreshSvnRoots(); } - - myWorkingCopiesContent.activate(); } /** @@ -433,7 +428,6 @@ public class SvnVcs extends AbstractVcs { mySvnBranchPointsCalculator.deactivate(); mySvnBranchPointsCalculator = null; - myWorkingCopiesContent.deactivate(); myLoadedBranchesStorage.deactivate(); } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/WorkingCopiesContent.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/WorkingCopiesContent.java index 9debc02cbd56..4b6e32f28052 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/WorkingCopiesContent.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/WorkingCopiesContent.java @@ -16,44 +16,36 @@ package org.jetbrains.idea.svn; import com.intellij.openapi.project.Project; -import com.intellij.openapi.vcs.changes.ui.ChangesViewContentI; +import com.intellij.openapi.vcs.ProjectLevelVcsManager; import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager; +import com.intellij.openapi.vcs.changes.ui.ChangesViewContentProvider; import com.intellij.openapi.wm.ToolWindow; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.ui.content.Content; -import com.intellij.ui.content.ContentFactory; import com.intellij.ui.content.ContentManager; +import com.intellij.util.NotNullFunction; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.svn.dialogs.CopiesPanel; -public class WorkingCopiesContent { +import javax.swing.*; + +public class WorkingCopiesContent implements ChangesViewContentProvider { public static final String TAB_NAME = SvnBundle.message("dialog.show.svn.map.title"); - private final SvnVcs myVcs; - private Content myShownContent; + @NotNull private final Project myProject; - public WorkingCopiesContent(SvnVcs vcs) { - myVcs = vcs; + public WorkingCopiesContent(@NotNull Project project) { + myProject = project; } - public void activate() { - final ChangesViewContentI cvcm = ChangesViewContentManager.getInstance(myVcs.getProject()); - final ContentFactory contentFactory = ContentFactory.SERVICE.getInstance(); - - final CopiesPanel copiesPanel = new CopiesPanel(myVcs.getProject()); - myShownContent = contentFactory.createContent(copiesPanel.getComponent(), TAB_NAME, true); - myShownContent.setCloseable(false); - cvcm.addContent(myShownContent); - myShownContent.setPreferredFocusableComponent(copiesPanel.getPreferredFocusedComponent()); + @Override + public JComponent initContent() { + return new CopiesPanel(myProject).getComponent(); } - public void deactivate() { - if (myShownContent != null) { - final ChangesViewContentI cvcm = ChangesViewContentManager.getInstance(myVcs.getProject()); - cvcm.removeContent(myShownContent); - myShownContent = null; - } + @Override + public void disposeContent() { } public static void show(@NotNull Project project) { @@ -70,4 +62,13 @@ public class WorkingCopiesContent { } } } + + public static class VisibilityPredicate implements NotNullFunction { + + @NotNull + @Override + public Boolean fun(@NotNull Project project) { + return ProjectLevelVcsManager.getInstance(project).checkVcsIsActive(SvnVcs.VCS_NAME); + } + } }