Fix compilation on JDK 1.6 and stay compatible with JDK 1.7
Move ClassCandidateListCellRenderer back to Java because JList. JList has one type parameter in 1.7 and no parameters in 1.6. Kotlin unlike Java can't support both cases without modifications in code.
This commit is contained in:
@@ -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 <code>ClassCandidate</code>.
|
||||
*/
|
||||
private class ClassCandidateListCellRenderer : PsiElementListCellRenderer<JetClass>() {
|
||||
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<out Any?>, 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)
|
||||
|
||||
@@ -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<JetClass> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user