mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Go to class: correctly show location for class from composite Flex SDK
This commit is contained in:
+2
-2
@@ -261,8 +261,8 @@ public class StaticImportMethodFix implements IntentionAction {
|
||||
protected ListCellRenderer getListElementRenderer() {
|
||||
return new MethodCellRenderer(true, PsiFormatUtilBase.SHOW_NAME){
|
||||
@Override
|
||||
protected DefaultListCellRenderer getRightCellRenderer() {
|
||||
final DefaultListCellRenderer moduleRenderer = super.getRightCellRenderer();
|
||||
protected DefaultListCellRenderer getRightCellRenderer(final Object value) {
|
||||
final DefaultListCellRenderer moduleRenderer = super.getRightCellRenderer(value);
|
||||
return new DefaultListCellRenderer(){
|
||||
@Override
|
||||
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
|
||||
|
||||
@@ -125,7 +125,7 @@ public class GotoRelatedFileAction extends AnAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DefaultListCellRenderer getRightCellRenderer() {
|
||||
protected DefaultListCellRenderer getRightCellRenderer(Object value) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package com.intellij.ide.util;
|
||||
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
@@ -24,12 +24,24 @@ import javax.swing.*;
|
||||
* @author yole
|
||||
*/
|
||||
public abstract class ModuleRendererFactory {
|
||||
public static ModuleRendererFactory getInstance() {
|
||||
return ServiceManager.getService(ModuleRendererFactory.class);
|
||||
private static ExtensionPointName<ModuleRendererFactory> EP_NAME = ExtensionPointName.create("com.intellij.moduleRendererFactory");
|
||||
|
||||
public static ModuleRendererFactory findInstance(Object element) {
|
||||
for (ModuleRendererFactory factory : EP_NAME.getExtensions()) {
|
||||
if (factory.handles(element)) {
|
||||
return factory;
|
||||
}
|
||||
}
|
||||
assert false : "No factory found for " + element;
|
||||
return null;
|
||||
}
|
||||
|
||||
protected boolean handles(final Object element) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public abstract DefaultListCellRenderer getModuleRenderer();
|
||||
|
||||
|
||||
public boolean rendersLocationString() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class NavigationItemListCellRenderer extends OpaquePanel implements ListC
|
||||
removeAll();
|
||||
|
||||
final boolean hasRightRenderer = UISettings.getInstance().SHOW_ICONS_IN_QUICK_NAVIGATION;
|
||||
final ModuleRendererFactory factory = ModuleRendererFactory.getInstance();
|
||||
final ModuleRendererFactory factory = ModuleRendererFactory.findInstance(value);
|
||||
|
||||
final LeftRenderer left = new LeftRenderer(!hasRightRenderer || !factory.rendersLocationString(), myMatcher);
|
||||
final Component leftCellRendererComponent = left.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
||||
|
||||
@@ -144,7 +144,7 @@ public abstract class PsiElementListCellRenderer<T extends PsiElement> extends J
|
||||
|
||||
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
|
||||
removeAll();
|
||||
DefaultListCellRenderer rightRenderer = getRightCellRenderer();
|
||||
DefaultListCellRenderer rightRenderer = getRightCellRenderer(value);
|
||||
ListCellRenderer leftRenderer = new LeftRenderer(null, myMatcher);
|
||||
final Component leftCellRendererComponent = leftRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
||||
if (rightRenderer != null) {
|
||||
@@ -176,9 +176,9 @@ public abstract class PsiElementListCellRenderer<T extends PsiElement> extends J
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected DefaultListCellRenderer getRightCellRenderer() {
|
||||
protected DefaultListCellRenderer getRightCellRenderer(final Object value) {
|
||||
if (UISettings.getInstance().SHOW_ICONS_IN_QUICK_NAVIGATION) {
|
||||
final DefaultListCellRenderer renderer = ModuleRendererFactory.getInstance().getModuleRenderer();
|
||||
final DefaultListCellRenderer renderer = ModuleRendererFactory.findInstance(value).getModuleRenderer();
|
||||
if (renderer instanceof PlatformModuleRendererFactory.PlatformModuleRenderer) {
|
||||
// it won't display any new information
|
||||
return null;
|
||||
|
||||
@@ -114,7 +114,7 @@ public class PsiElementModuleRenderer extends DefaultListCellRenderer{
|
||||
setIcon(LIB_ICON);
|
||||
for (OrderEntry order : fileIndex.getOrderEntriesForFile(vFile)) {
|
||||
if (order instanceof LibraryOrderEntry || order instanceof JdkOrderEntry) {
|
||||
myText = order.getPresentableName();
|
||||
myText = getPresentableName(order, vFile);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -125,4 +125,8 @@ public class PsiElementModuleRenderer extends DefaultListCellRenderer{
|
||||
myText += " (" + jar.getName() + ")";
|
||||
}
|
||||
}
|
||||
|
||||
protected String getPresentableName(final OrderEntry order, final VirtualFile vFile) {
|
||||
return order.getPresentableName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,8 +109,8 @@ public class GotoFileCellRenderer extends PsiElementListCellRenderer<PsiFile> {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DefaultListCellRenderer getRightCellRenderer() {
|
||||
final DefaultListCellRenderer rightRenderer = super.getRightCellRenderer();
|
||||
protected DefaultListCellRenderer getRightCellRenderer(final Object value) {
|
||||
final DefaultListCellRenderer rightRenderer = super.getRightCellRenderer(value);
|
||||
if (rightRenderer instanceof PlatformModuleRendererFactory.PlatformModuleRenderer) {
|
||||
// that renderer will display file path, but we're showing it ourselves - no need to show twice
|
||||
return null;
|
||||
|
||||
@@ -532,4 +532,6 @@
|
||||
|
||||
<extensionPoint name="codeBlockProvider"
|
||||
beanClass="com.intellij.lang.LanguageExtensionPoint"/>
|
||||
|
||||
<extensionPoint name="moduleRendererFactory" interface="com.intellij.ide.util.ModuleRendererFactory"/>
|
||||
</extensionPoints>
|
||||
|
||||
@@ -60,8 +60,7 @@
|
||||
<projectService serviceInterface="com.intellij.platform.ProjectBaseDirectory"
|
||||
serviceImplementation="com.intellij.platform.ProjectBaseDirectory"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.ide.util.ModuleRendererFactory"
|
||||
serviceImplementation="com.intellij.ide.util.PlatformModuleRendererFactory"/>
|
||||
<moduleRendererFactory implementation="com.intellij.ide.util.PlatformModuleRendererFactory" order="last"/>
|
||||
<projectService serviceInterface="com.intellij.lang.injection.InjectedLanguageManager"
|
||||
serviceImplementation="com.intellij.psi.impl.source.tree.injected.InjectedLanguageManagerImpl"/>
|
||||
<projectService serviceInterface="com.intellij.openapi.vcs.changes.patch.PatchBaseDirectoryDetector"
|
||||
|
||||
@@ -138,9 +138,6 @@
|
||||
<applicationService serviceInterface="com.intellij.facet.ui.FacetEditorsFactory"
|
||||
serviceImplementation="com.intellij.facet.impl.ui.FacetEditorsFactoryImpl"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.ide.util.ModuleRendererFactory"
|
||||
serviceImplementation="com.intellij.ide.util.DefaultModuleRendererFactory"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.openapi.projectRoots.ProjectJdkTable"
|
||||
serviceImplementation="com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl"/>
|
||||
<exportable serviceInterface="com.intellij.openapi.projectRoots.ProjectJdkTable"/>
|
||||
@@ -349,6 +346,7 @@
|
||||
serviceImplementation="com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureProblemsSettingsImpl"/>
|
||||
<applicationService serviceInterface="com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureProblemsSettings"
|
||||
serviceImplementation="com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.GlobalProjectStructureProblemsSettings"/>
|
||||
<moduleRendererFactory implementation="com.intellij.ide.util.DefaultModuleRendererFactory" order="last"/>
|
||||
</extensions>
|
||||
|
||||
<xi:include href="/META-INF/xdebugger.xml" xpointer="xpointer(/root/*)"/>
|
||||
|
||||
Reference in New Issue
Block a user