mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user