diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/CreateFunctionFromUsageFix.kt b/idea/src/org/jetbrains/jet/plugin/quickfix/CreateFunctionFromUsageFix.kt index a2c63d32e13..8a2b4526729 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/CreateFunctionFromUsageFix.kt +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/CreateFunctionFromUsageFix.kt @@ -25,7 +25,6 @@ import com.intellij.codeInsight.template.impl.TemplateImpl import com.intellij.codeInsight.template.impl.Variable import com.intellij.ide.fileTemplates.FileTemplate import com.intellij.ide.fileTemplates.FileTemplateManager -import com.intellij.ide.util.PsiElementListCellRenderer import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.editor.Editor @@ -56,10 +55,8 @@ import org.jetbrains.jet.lang.types.* import org.jetbrains.jet.lang.types.checker.JetTypeChecker import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns import org.jetbrains.jet.plugin.JetBundle -import org.jetbrains.jet.plugin.caches.resolve import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil import org.jetbrains.jet.plugin.codeInsight.ShortenReferences -import org.jetbrains.jet.plugin.presentation.JetClassPresenter import org.jetbrains.jet.plugin.refactoring.JetNameSuggester import org.jetbrains.jet.plugin.refactoring.JetNameValidator import org.jetbrains.jet.plugin.references.JetSimpleNameReference @@ -71,7 +68,6 @@ import java.util.Collections import java.util.HashSet import java.util.HashMap import java.util.ArrayList -import java.awt.Component import java.util.Properties import org.jetbrains.jet.plugin.caches.resolve.getAnalysisResults import org.jetbrains.jet.plugin.caches.resolve.getBindingContext @@ -120,23 +116,6 @@ private class ClassCandidate(public val typeCandidate: TypeCandidate, file: JetF ) as JetClass } -/** - * Renders a ClassCandidate. - */ -private class ClassCandidateListCellRenderer : PsiElementListCellRenderer() { - private val presenter: JetClassPresenter = JetClassPresenter(); - - override fun getElementText(element: JetClass?) = presenter.getPresentation(element!!)?.getPresentableText() - - override fun getContainerText(element: JetClass?, name: String?) = presenter.getPresentation(element!!)?.getLocationString() - - override fun getIconFlags() = 0 - - override fun getListCellRendererComponent(list: JList, value: Any?, index: Int, isSelected: Boolean, cellHasFocus: Boolean): Component? { - return super.getListCellRendererComponent(list, (value as ClassCandidate).jetClass, index, isSelected, cellHasFocus) - } -} - /** * Represents a concrete type or a set of types yet to be inferred from an expression. */ @@ -570,7 +549,7 @@ public class CreateFunctionFromUsageFix internal ( else { // class selection val list = JBList(ownerTypeCandidates.map { ClassCandidate(it, currentFile, currentFileContext) }) - val renderer = ClassCandidateListCellRenderer() + val renderer = QuickFixUtil.ClassCandidateListCellRenderer() list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) list.setCellRenderer(renderer) val builder = PopupChooserBuilder(list) diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java index e4856bcd64d..e6143cafcad 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/QuickFixUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * Copyright 2010-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package org.jetbrains.jet.plugin.quickfix; import com.google.common.collect.Sets; import com.intellij.extapi.psi.ASTDelegatePsiElement; +import com.intellij.ide.util.PsiElementListCellRenderer; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiWhiteSpace; @@ -37,8 +38,11 @@ import org.jetbrains.jet.lang.types.DeferredType; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage; +import org.jetbrains.jet.plugin.presentation.JetClassPresenter; import org.jetbrains.jet.plugin.references.BuiltInsReferenceResolver; +import javax.swing.*; +import java.awt.*; import java.util.List; import java.util.Set; @@ -233,4 +237,29 @@ public class QuickFixUtil { return usedParameters; } + + static class ClassCandidateListCellRenderer extends PsiElementListCellRenderer { + private final JetClassPresenter presenter = new JetClassPresenter(); + + @Override + public String getElementText(JetClass element) { + return presenter.getPresentation(element).getPresentableText(); + } + + @Nullable + @Override + protected String getContainerText(JetClass element, String name) { + return presenter.getPresentation(element).getLocationString(); + } + + @Override + protected int getIconFlags() { + return 0; + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + return super.getListCellRendererComponent(list, ((ClassCandidate) value).getJetClass(), index, isSelected, cellHasFocus); + } + } }