IDEADEV-11587: Light green background for files open in editors now visible in Ctrl[Shift]+N, class hierarchy browser etc.

This commit is contained in:
Maxim Shafirov
2009-11-20 18:20:49 +03:00
parent bd0af5a0c4
commit d7744737dc
7 changed files with 52 additions and 32 deletions
@@ -18,6 +18,7 @@ package com.intellij.ui;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -53,4 +54,10 @@ public abstract class FileColorManager {
public abstract boolean isShared(@NotNull final String scopeName);
public abstract boolean isColored(@NotNull String scopeName, final boolean shared);
@Nullable
public abstract Color getRendererBackground(VirtualFile file);
@Nullable
public abstract Color getRendererBackground(PsiFile file);
}
@@ -123,11 +123,8 @@ class ShowUsagesTableCellRenderer implements TableCellRenderer {
Project project = myUsageView.getProject();
PsiFile psiFile = PsiManager.getInstance(project).findFile(virtualFile);
if (psiFile != null && psiFile.isValid()) {
final FileColorManager colorManager = FileColorManager.getInstance(project);
if (colorManager.isEnabled()) {
final Color color = colorManager.getFileColor(psiFile);
if (color != null) fileBgColor = color;
}
final Color color = FileColorManager.getInstance(project).getRendererBackground(psiFile);
if (color != null) fileBgColor = color;
}
}
}
@@ -151,4 +148,4 @@ class ShowUsagesTableCellRenderer implements TableCellRenderer {
panel.add(renderer);
}
}
}
}
@@ -30,7 +30,6 @@ import com.intellij.openapi.editor.highlighter.EditorHighlighterFactory;
import com.intellij.openapi.editor.markup.EffectType;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.InputValidator;
@@ -48,7 +47,10 @@ import com.intellij.openapi.wm.ToolWindowManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.ui.*;
import com.intellij.ui.ColoredListCellRenderer;
import com.intellij.ui.FileColorManager;
import com.intellij.ui.ListUtil;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.speedSearch.FilteringListModel;
import com.intellij.util.Alarm;
import com.intellij.util.Function;
@@ -310,17 +312,12 @@ public class BookmarksAction extends AnAction implements DumbAware {
if (!selected) {
FileColorManager colorManager = FileColorManager.getInstance(project);
if (colorManager.isEnabled()) {
if (fileOrDir instanceof PsiFile) {
Color color = colorManager.getFileColor((PsiFile)fileOrDir);
if (color != null) {
renderer.setBackground(color);
}
if (fileOrDir instanceof PsiFile) {
Color color = colorManager.getRendererBackground((PsiFile)fileOrDir);
if (color != null) {
renderer.setBackground(color);
}
}
else if (FileEditorManager.getInstance(project).isFileOpen(file)) {
renderer.setBackground(LightColors.SLIGHTLY_GREEN);
}
}
String description = myBookmark.getDescription();
@@ -55,9 +55,7 @@ public final class HierarchyNodeRenderer extends ColoredTreeCellRenderer {
final PsiFile psiFile = descriptor.getContainingFile();
if (psiFile != null && psiFile.isValid()) {
final FileColorManager colorManager = FileColorManager.getInstance(descriptor.getProject());
if (colorManager.isEnabled()) {
return colorManager.getFileColor(psiFile);
}
return colorManager.getRendererBackground(psiFile);
}
return null;
}
@@ -21,20 +21,19 @@ import com.intellij.navigation.ItemPresentation;
import com.intellij.navigation.NavigationItem;
import com.intellij.openapi.actionSystem.DataConstants;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.editor.colors.EditorColorsManager;
import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.editor.markup.EffectType;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vcs.FileStatus;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.project.Project;
import com.intellij.problems.WolfTheProblemSolver;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiUtilBase;
import com.intellij.ui.ColoredListCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.FileColorManager;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.IconUtil;
import com.intellij.util.ui.UIUtil;
@@ -107,11 +106,9 @@ public class NavigationItemListCellRenderer extends JPanel implements ListCellRe
isProblemFile = WolfTheProblemSolver.getInstance(project).isProblemFile(virtualFile);
final FileColorManager fileColorManager = FileColorManager.getInstance(project);
if (virtualFile != null && fileColorManager.isEnabled()) {
final Color fileColor = fileColorManager.getFileColor(psiElement.getContainingFile());
if (fileColor != null) {
bgColor = fileColor;
}
final Color fileColor = fileColorManager.getRendererBackground(psiElement.getContainingFile());
if (fileColor != null) {
bgColor = fileColor;
}
}
}
@@ -81,10 +81,8 @@ public abstract class PsiElementListCellRenderer<T extends PsiElement> extends J
final FileColorManager colorManager = FileColorManager.getInstance(psiFile.getProject());
if (colorManager.isEnabled()) {
if (psiFile.isValid()) {
final Color fileBgColor = colorManager.getFileColor(psiFile);
bgColor = fileBgColor == null ? bgColor : fileBgColor;
}
final Color fileBgColor = colorManager.getRendererBackground(psiFile);
bgColor = fileBgColor == null ? bgColor : fileBgColor;
}
}
}
@@ -20,9 +20,13 @@ import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.ui.FileColorManager;
import com.intellij.ui.LightColors;
import com.intellij.util.containers.hash.LinkedHashMap;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
@@ -154,6 +158,28 @@ public class FileColorManagerImpl extends FileColorManager implements Persistent
return myModel.isColored(scopeName, shared);
}
@Nullable
@Override
public Color getRendererBackground(VirtualFile file) {
return getRendererBackground(PsiManager.getInstance(myProject).findFile(file));
}
@Nullable
@Override
public Color getRendererBackground(PsiFile file) {
if (file == null) return null;
if (isEnabled()) {
final Color fileColor = getFileColor(file);
if (fileColor != null) return fileColor;
}
final VirtualFile vFile = file.getVirtualFile();
if (vFile == null) return null;
return FileEditorManager.getInstance(myProject).isFileOpen(vFile) ? LightColors.SLIGHTLY_GREEN : null;
}
@Nullable
public Color getFileColor(@NotNull final PsiFile file) {
final String colorName = myModel.getColor(file);