package com.intellij.find.actions;
-import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.ui.SimpleColoredComponent;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.speedSearch.SpeedSearchUtil;
-import com.intellij.usageView.UsageTreeColors;
-import com.intellij.usageView.UsageTreeColorsScheme;
import com.intellij.usages.TextChunk;
import com.intellij.usages.Usage;
import com.intellij.usages.UsageGroup;
import com.intellij.util.ui.EmptyIcon;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
panel.setBackground(panelBackground);
panel.setForeground(panelForeground);
- VirtualFile file = getFile(usage);
- VirtualFile prevFile = findPrevFile(list, row, column);
-
if (column == 0) {
- appendGroupText(list, (GroupNode)usageNode.getParent(), panel, fileBgColor, isSelected, Comparing.equal(file, prevFile));
+ appendGroupText(list, (GroupNode)usageNode.getParent(), panel, fileBgColor, isSelected);
return panel;
}
else if (usage != ShowUsagesAction.MORE_USAGES_SEPARATOR && usage != ShowUsagesAction.USAGES_OUTSIDE_SCOPE_SEPARATOR) {
return panel;
}
- @Nullable
- private static VirtualFile findPrevFile(@NotNull JTable table, int row, int column) {
- if (row <= 0) return null;
- Object prev = table.getValueAt(row - 1, column);
- UsageNode usageNode = prev instanceof UsageNode ? (UsageNode)prev : null;
- return getFile(usageNode == null ? null : usageNode.getUsage());
- }
-
@NotNull
public static SimpleTextAttributes getAttributes(boolean isSelected, Color fileBgColor, Color bg, Color fg, TextChunk chunk) {
SimpleTextAttributes background = chunk.getSimpleAttributesIgnoreBackground();
return component;
}
- @NotNull
- private static SimpleTextAttributes deriveAttributesWithColor(@NotNull SimpleTextAttributes attributes, @Nullable Color fileBgColor) {
+ private static SimpleTextAttributes deriveAttributesWithColor(SimpleTextAttributes attributes, Color fileBgColor) {
if (fileBgColor != null) {
attributes = attributes.derive(-1,null, fileBgColor,null);
}
fileBgColor = UIUtil.getListSelectionBackground();
}
else {
- VirtualFile virtualFile = getFile(usage);
+ VirtualFile virtualFile = usage instanceof UsageInFile ? ((UsageInFile)usage).getFile() : null;
if (virtualFile != null) {
Project project = myUsageView.getProject();
PsiFile psiFile = PsiManager.getInstance(project).findFile(virtualFile);
return fileBgColor;
}
- private static VirtualFile getFile(@Nullable Usage usage) {
- return usage instanceof UsageInFile ? ((UsageInFile)usage).getFile() : null;
- }
-
- private void appendGroupText(@NotNull JTable table,
- @Nullable GroupNode node,
- @NotNull JPanel panel,
- @Nullable Color fileBgColor,
- boolean isSelected,
- boolean sameFile) {
+ private void appendGroupText(JTable table, final GroupNode node, JPanel panel, Color fileBgColor, boolean isSelected) {
UsageGroup group = node == null ? null : node.getGroup();
if (group == null) return;
GroupNode parentGroup = (GroupNode)node.getParent();
- appendGroupText(table, parentGroup, panel, fileBgColor, isSelected, sameFile);
+ appendGroupText(table, parentGroup, panel, fileBgColor, isSelected);
if (node.canNavigateToSource()) {
SimpleColoredComponent renderer = new SimpleColoredComponent();
renderer.setIcon(group.getIcon(false));
- TextAttributes attributes = UsageTreeColorsScheme.getInstance().getScheme().getAttributes(UsageTreeColors.USAGE_LOCATION);
- SimpleTextAttributes attr = sameFile && !isSelected
- ? SimpleTextAttributes.fromTextAttributes(attributes)
- : SimpleTextAttributes.REGULAR_ATTRIBUTES;
- renderer.append(group.getText(myUsageView), deriveAttributesWithColor(attr, fileBgColor));
+ SimpleTextAttributes attributes = deriveAttributesWithColor(SimpleTextAttributes.REGULAR_ATTRIBUTES, fileBgColor);
+ renderer.append(group.getText(myUsageView), attributes);
renderer.setBorder(null);
SpeedSearchUtil.applySpeedSearchHighlighting(table, renderer, false, isSelected);
panel.add(renderer);