From 4eebed92f87ff5319fd0a5e4d5c8feb30fcc98b6 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 19 Jul 2010 14:08:40 +0400 Subject: [PATCH] don't show file path twice in platform goto file dialog --- .../util/PlatformModuleRendererFactory.java | 58 ++++++++++--------- .../util/gotoByName/GotoFileCellRenderer.java | 12 ++++ 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/util/PlatformModuleRendererFactory.java b/platform/lang-impl/src/com/intellij/ide/util/PlatformModuleRendererFactory.java index 06c1483059e0..c66fe2146a6a 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/PlatformModuleRendererFactory.java +++ b/platform/lang-impl/src/com/intellij/ide/util/PlatformModuleRendererFactory.java @@ -28,38 +28,40 @@ import java.awt.*; */ public class PlatformModuleRendererFactory extends ModuleRendererFactory { public DefaultListCellRenderer getModuleRenderer() { - return new DefaultListCellRenderer() { - public Component getListCellRendererComponent(final JList list, - final Object value, - final int index, - final boolean isSelected, - final boolean cellHasFocus) { - final Component component = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - - String text = ""; - if (value instanceof NavigationItem) { - final ItemPresentation presentation = ((NavigationItem)value).getPresentation(); - if (presentation != null) { - String containerText = presentation.getLocationString(); - if (containerText != null && containerText.length() > 0) { - text = " " + containerText; - } - } - } - - - setText(text); - setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 2)); - setHorizontalTextPosition(SwingConstants.LEFT); - setBackground(isSelected ? UIUtil.getListSelectionBackground() : UIUtil.getListBackground()); - setForeground(isSelected ? UIUtil.getListSelectionForeground() : UIUtil.getInactiveTextColor()); - return component; - } - }; + return new PlatformModuleRenderer(); } @Override public boolean rendersLocationString() { return true; } + + public static class PlatformModuleRenderer extends DefaultListCellRenderer { + public Component getListCellRendererComponent(final JList list, + final Object value, + final int index, + final boolean isSelected, + final boolean cellHasFocus) { + final Component component = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + + String text = ""; + if (value instanceof NavigationItem) { + final ItemPresentation presentation = ((NavigationItem)value).getPresentation(); + if (presentation != null) { + String containerText = presentation.getLocationString(); + if (containerText != null && containerText.length() > 0) { + text = " " + containerText; + } + } + } + + + setText(text); + setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 2)); + setHorizontalTextPosition(SwingConstants.LEFT); + setBackground(isSelected ? UIUtil.getListSelectionBackground() : UIUtil.getListBackground()); + setForeground(isSelected ? UIUtil.getListSelectionForeground() : UIUtil.getInactiveTextColor()); + return component; + } + } } diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileCellRenderer.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileCellRenderer.java index 5a9a5ca63995..f8f1e5de4b4b 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileCellRenderer.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoFileCellRenderer.java @@ -16,6 +16,7 @@ package com.intellij.ide.util.gotoByName; +import com.intellij.ide.util.PlatformModuleRendererFactory; import com.intellij.ide.util.PsiElementListCellRenderer; import com.intellij.openapi.editor.colors.EditorColorsManager; import com.intellij.openapi.editor.colors.EditorColorsScheme; @@ -26,6 +27,7 @@ import com.intellij.psi.PsiFile; import com.intellij.util.ui.FilePathSplittingPolicy; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.awt.*; import java.io.File; @@ -72,6 +74,16 @@ public class GotoFileCellRenderer extends PsiElementListCellRenderer{ return url; } + @Override + protected DefaultListCellRenderer getRightCellRenderer() { + final DefaultListCellRenderer rightRenderer = super.getRightCellRenderer(); + if (rightRenderer instanceof PlatformModuleRendererFactory.PlatformModuleRenderer) { + // that renderer will display file path, but we're showing it ourselves - no need to show twice + return null; + } + return rightRenderer; + } + protected int getIconFlags() { return 0; }