From 7371d580fa7f6ed0c2de288fd58a5c9bbe485372 Mon Sep 17 00:00:00 2001 From: irengrig Date: Mon, 16 Nov 2009 10:52:56 +0300 Subject: [PATCH] - cyclic dependency - vcs-impl from lang-impl. sorry --- .../changes/patch/PsiPatchBaseDirectoryDetector.java | 7 +++++++ .../openapi/vcs/actions/VcsQuickListPopupAction.java | 2 +- .../changes/actions/ScheduleForAdditionAction.java | 4 ++-- .../patch/ApplyPatchDifferentiatedDialog.java | 12 ++---------- .../changes/patch/PatchBaseDirectoryDetector.java | 5 +++++ platform/vcs-impl/vcs-impl.iml | 1 - 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/patch/PsiPatchBaseDirectoryDetector.java b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/patch/PsiPatchBaseDirectoryDetector.java index 4fd27cd9b507..5910887431b7 100644 --- a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/patch/PsiPatchBaseDirectoryDetector.java +++ b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/patch/PsiPatchBaseDirectoryDetector.java @@ -17,12 +17,15 @@ package com.intellij.openapi.vcs.changes.patch; import com.intellij.openapi.project.Project; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; import org.jetbrains.annotations.Nullable; +import java.util.Collection; + /** * @author yole */ @@ -54,4 +57,8 @@ public class PsiPatchBaseDirectoryDetector extends PatchBaseDirectoryDetector { } return null; } + + public Collection findFiles(final String fileName) { + return FilenameIndex.getVirtualFilesByName(myProject, fileName, GlobalSearchScope.projectScope(myProject)); + } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickListPopupAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickListPopupAction.java index 781c28f93db7..b35fc8f8634d 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickListPopupAction.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/VcsQuickListPopupAction.java @@ -155,7 +155,7 @@ public class VcsQuickListPopupAction extends QuickSwitchSchemeAction implements } // by current file - final VirtualFile file = dataContext != null ? LangDataKeys.VIRTUAL_FILE.getData(dataContext) : null; + final VirtualFile file = dataContext != null ? PlatformDataKeys.VIRTUAL_FILE.getData(dataContext) : null; if (file != null) { final AbstractVcs vscForFile = ProjectLevelVcsManager.getInstance(project).getVcsFor(file); if (vscForFile != null) { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java index beeb12d5d8cc..a3857bb1ab78 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java @@ -73,8 +73,8 @@ public class ScheduleForAdditionAction extends AnAction implements DumbAware { if (dataContext == null) { return null; } - final Project project = LangDataKeys.PROJECT.getData(dataContext); - final VirtualFile file = project == null ? null : LangDataKeys.VIRTUAL_FILE.getData(dataContext); + final Project project = PlatformDataKeys.PROJECT.getData(dataContext); + final VirtualFile file = project == null ? null : PlatformDataKeys.VIRTUAL_FILE.getData(dataContext); if (file != null && FileStatusManager.getInstance(project).getStatus(file) == FileStatus.UNKNOWN) { return file; } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/ApplyPatchDifferentiatedDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/ApplyPatchDifferentiatedDialog.java index d1b2a9a86e98..1aa93977480d 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/ApplyPatchDifferentiatedDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/ApplyPatchDifferentiatedDialog.java @@ -17,8 +17,6 @@ package com.intellij.openapi.vcs.changes.patch; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.diff.DiffRequestFactory; -import com.intellij.openapi.diff.MergeRequest; import com.intellij.openapi.diff.impl.patch.FilePatch; import com.intellij.openapi.diff.impl.patch.PatchReader; import com.intellij.openapi.diff.impl.patch.PatchSyntaxException; @@ -45,21 +43,15 @@ import com.intellij.openapi.vcs.ZipperUpdater; import com.intellij.openapi.vcs.changes.Change; import com.intellij.openapi.vcs.changes.ChangeListManager; import com.intellij.openapi.vcs.changes.LocalChangeList; -import com.intellij.openapi.vcs.changes.actions.ChangeDiffRequestPresentable; -import com.intellij.openapi.vcs.changes.actions.DiffPresentationReturnValue; import com.intellij.openapi.vcs.changes.actions.DiffRequestPresentable; import com.intellij.openapi.vcs.changes.actions.ShowDiffAction; import com.intellij.openapi.vcs.changes.ui.*; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.search.FilenameIndex; -import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.search.ProjectScope; import com.intellij.ui.DocumentAdapter; import com.intellij.ui.SimpleColoredComponent; import com.intellij.ui.SimpleTextAttributes; import com.intellij.util.Consumer; -import com.intellij.util.Icons; import com.intellij.util.containers.Convertor; import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.NonNls; @@ -205,7 +197,6 @@ public class ApplyPatchDifferentiatedDialog extends DialogWrapper { final VirtualFile baseDir = myProject.getBaseDir(); final List result = new ArrayList(list.size()); - final GlobalSearchScope scope = ProjectScope.getProjectScope(myProject); final List creations = new LinkedList(); final MultiMap foldersDecisions = new MultiMap() { @Override @@ -218,6 +209,7 @@ public class ApplyPatchDifferentiatedDialog extends DialogWrapper { } }; + final PatchBaseDirectoryDetector directoryDetector = PatchBaseDirectoryDetector.getInstance(myProject); for (TextFilePatch patch : list) { if (patch.isNewFile() || (patch.getBeforeName() == null)) { creations.add(patch); @@ -226,7 +218,7 @@ public class ApplyPatchDifferentiatedDialog extends DialogWrapper { final String fileName = patch.getBeforeFileName(); final Collection files = ApplicationManager.getApplication().runReadAction(new Computable>() { public Collection compute() { - return FilenameIndex.getVirtualFilesByName(myProject, fileName, scope); + return directoryDetector.findFiles(fileName); } }); final Collection variants = filterVariants(patch, files); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/PatchBaseDirectoryDetector.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/PatchBaseDirectoryDetector.java index ff155c70cbb5..54b7f4fb8f1d 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/PatchBaseDirectoryDetector.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/patch/PatchBaseDirectoryDetector.java @@ -17,8 +17,11 @@ package com.intellij.openapi.vcs.changes.patch; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.Nullable; +import java.util.Collection; + /** * @author yole */ @@ -30,6 +33,8 @@ public abstract class PatchBaseDirectoryDetector { @Nullable public abstract Result detectBaseDirectory(String name); + public abstract Collection findFiles(String fileName); + public static class Result { public String baseDir; public int stripDirs; diff --git a/platform/vcs-impl/vcs-impl.iml b/platform/vcs-impl/vcs-impl.iml index 2c00db69ea37..871014a7c4f5 100644 --- a/platform/vcs-impl/vcs-impl.iml +++ b/platform/vcs-impl/vcs-impl.iml @@ -10,7 +10,6 @@ -