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);
+ }
+ }
}