diff --git a/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatusManager.java b/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatusManager.java index 21af75a25f92..5510069fdf3c 100644 --- a/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatusManager.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/vcs/FileStatusManager.java @@ -6,7 +6,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; -import java.awt.Color; +import java.awt.*; /** * @author mike @@ -16,6 +16,16 @@ public abstract class FileStatusManager { return project.getComponent(FileStatusManager.class); } + /** + * Returns color that is associated with passed file in vcs subsystem. + *
+ * Users are discouraged from comparing returned value with a constant, because it might be vcs-specific (HgChangeProvider#RENAMED)
+ * or affected by other means (ChangelistConflictFileStatusProvider#MODIFIED_OUTSIDE).
+ *
+ * @See com.intellij.openapi.vcs.changes.ChangeListManager#getStatus
+ * @See com.intellij.openapi.vcs.FileStatusFactory
+ * @See com.intellij.openapi.vcs.impl.FileStatusProvider
+ */
public abstract FileStatus getStatus(@NotNull VirtualFile file);
public abstract void fileStatusesChanged();
@@ -30,6 +40,11 @@ public abstract class FileStatusManager {
public abstract Color getNotChangedDirectoryColor(@NotNull VirtualFile file);
+ /**
+ * @See VcsConfiguration#SHOW_DIRTY_RECURSIVELY
+ * @See com.intellij.openapi.vcs.FileStatus#NOT_CHANGED_IMMEDIATE
+ * @See com.intellij.openapi.vcs.FileStatus#NOT_CHANGED_RECURSIVE
+ */
@NotNull
public FileStatus getRecursiveStatus(@NotNull VirtualFile file) {
FileStatus status = getStatus(file);
diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java
index 410d7e712457..8f768235e038 100644
--- a/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java
+++ b/platform/vcs-api/src/com/intellij/openapi/vcs/VcsVFSListener.java
@@ -271,7 +271,7 @@ public abstract class VcsVFSListener implements Disposable {
}
protected void processMovedFile(VirtualFile file, String newParentPath, String newName) {
- final FileStatus status = FileStatusManager.getInstance(myProject).getStatus(file);
+ final FileStatus status = ChangeListManager.getInstance(myProject).getStatus(file);
LOG.debug("Checking moved file ", file, "; status=", status);
if (status == FileStatus.IGNORED) {
if (file.getParent() != null) {
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java
index 0f5055c019f2..3ad5f9c9b474 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateDiffViewerAction.java
@@ -267,7 +267,7 @@ public class AnnotateDiffViewerAction {
final AnnotationProvider annotationProvider = vcs.getAnnotationProvider();
if (annotationProvider == null) return null;
- FileStatus fileStatus = FileStatusManager.getInstance(project).getStatus(file);
+ FileStatus fileStatus = ChangeListManager.getInstance(project).getStatus(file);
if (fileStatus == FileStatus.UNKNOWN || fileStatus == FileStatus.ADDED || fileStatus == FileStatus.IGNORED) {
return null;
}
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateLocalFileAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateLocalFileAction.java
index 27d70ae4e776..fcbc849762e3 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateLocalFileAction.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/AnnotateLocalFileAction.java
@@ -33,6 +33,7 @@ import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vcs.*;
import com.intellij.openapi.vcs.annotate.AnnotationProvider;
import com.intellij.openapi.vcs.annotate.FileAnnotation;
+import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
@@ -58,7 +59,7 @@ public class AnnotateLocalFileAction {
final AnnotationProvider annotationProvider = vcs.getAnnotationProvider();
if (annotationProvider == null) return false;
- final FileStatus fileStatus = FileStatusManager.getInstance(project).getStatus(file);
+ FileStatus fileStatus = ChangeListManager.getInstance(project).getStatus(file);
if (fileStatus == FileStatus.UNKNOWN || fileStatus == FileStatus.ADDED || fileStatus == FileStatus.IGNORED) {
return false;
}
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/CommonCheckinFilesAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/CommonCheckinFilesAction.java
index c38b60b12e7f..5b02211548c1 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/CommonCheckinFilesAction.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/CommonCheckinFilesAction.java
@@ -88,7 +88,7 @@ public class CommonCheckinFilesAction extends AbstractCommonCheckinAction {
@Override
protected boolean approximatelyHasRoots(@NotNull VcsContext dataContext) {
- FileStatusManager manager = FileStatusManager.getInstance(dataContext.getProject());
+ ChangeListManager manager = ChangeListManager.getInstance(dataContext.getProject());
return getRootsStream(dataContext)
.map(FilePath::getVirtualFile)
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/DiffActionExecutor.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/DiffActionExecutor.java
index b61e0630b638..e02073c76e92 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/DiffActionExecutor.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/actions/DiffActionExecutor.java
@@ -40,6 +40,7 @@ import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.vcs.*;
import com.intellij.openapi.vcs.changes.ByteBackedContentRevision;
+import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.openapi.vcs.changes.ContentRevision;
import com.intellij.openapi.vcs.diff.DiffProvider;
import com.intellij.openapi.vcs.diff.ItemLatestState;
@@ -138,9 +139,8 @@ public abstract class DiffActionExecutor {
boolean inverted = false;
String title1;
String title2;
- final FileStatus status = FileStatusManager.getInstance(myProject).getStatus(mySelectedFile);
- if (status == null || FileStatus.NOT_CHANGED.equals(status) || FileStatus.UNKNOWN.equals(status) ||
- FileStatus.IGNORED.equals(status)) {
+ final FileStatus status = ChangeListManager.getInstance(myProject).getStatus(mySelectedFile);
+ if (FileStatus.NOT_CHANGED.equals(status) || FileStatus.UNKNOWN.equals(status) || FileStatus.IGNORED.equals(status)) {
final VcsRevisionNumber currentRevision = myDiffProvider.getCurrentRevision(mySelectedFile);
inverted = revisionNumber.compareTo(currentRevision) > 0;
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/annotate/AnnotationsPreloader.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/annotate/AnnotationsPreloader.java
index 7ca20b862429..d2f25e4a5cec 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/annotate/AnnotationsPreloader.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/annotate/AnnotationsPreloader.java
@@ -22,7 +22,11 @@ import com.intellij.openapi.fileEditor.FileEditorManagerEvent;
import com.intellij.openapi.fileEditor.FileEditorManagerListener;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.registry.Registry;
-import com.intellij.openapi.vcs.*;
+import com.intellij.openapi.vcs.AbstractVcs;
+import com.intellij.openapi.vcs.FileStatus;
+import com.intellij.openapi.vcs.ProjectLevelVcsManager;
+import com.intellij.openapi.vcs.VcsException;
+import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.ui.update.MergingUpdateQueue;
import com.intellij.util.ui.update.Update;
@@ -71,7 +75,7 @@ public class AnnotationsPreloader {
}
if (!FileEditorManager.getInstance(myProject).isFileOpen(file)) return;
- FileStatus fileStatus = FileStatusManager.getInstance(myProject).getStatus(file);
+ FileStatus fileStatus = ChangeListManager.getInstance(myProject).getStatus(file);
if (fileStatus == FileStatus.UNKNOWN || fileStatus == FileStatus.ADDED || fileStatus == FileStatus.IGNORED) {
return;
}
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/SelectInChangesViewTarget.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/SelectInChangesViewTarget.java
index 66d7b1cc5780..da6b7e41e3ce 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/SelectInChangesViewTarget.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/SelectInChangesViewTarget.java
@@ -20,7 +20,6 @@ import com.intellij.ide.SelectInTarget;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.FileStatus;
-import com.intellij.openapi.vcs.FileStatusManager;
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
import com.intellij.openapi.vcs.VcsBundle;
import com.intellij.openapi.vcs.changes.ui.ChangesViewContentManager;
@@ -44,7 +43,7 @@ public class SelectInChangesViewTarget implements SelectInTarget, DumbAware {
@Override
public boolean canSelect(final SelectInContext context) {
final VirtualFile file = context.getVirtualFile();
- FileStatus fileStatus = FileStatusManager.getInstance(myProject).getStatus(file);
+ FileStatus fileStatus = ChangeListManager.getInstance(myProject).getStatus(file);
return ProjectLevelVcsManager.getInstance(myProject).getAllActiveVcss().length != 0 &&
!fileStatus.equals(FileStatus.NOT_CHANGED);
}
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 3cc61225d252..7517c0c0afc7 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
@@ -26,6 +26,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.vcs.*;
import com.intellij.openapi.vcs.changes.Change;
+import com.intellij.openapi.vcs.changes.ChangeListManager;
import com.intellij.openapi.vcs.changes.ChangeListManagerImpl;
import com.intellij.openapi.vcs.changes.LocalChangeList;
import com.intellij.openapi.vcs.changes.ui.ChangesBrowserBase;
@@ -99,22 +100,22 @@ public class ScheduleForAdditionAction extends AnAction implements DumbAware {
@NotNull
private Stream