From bccaf6b34022c89961fe533a5b38f484f417a6e5 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 27 Jul 2015 17:10:15 +0300 Subject: [PATCH] Moved and renamed DescriptorClassMember --- .../OverrideMemberChooserObject.kt | 28 +++++++++++++++++++ .../DescriptorMemberChooserObject.kt} | 19 ++++--------- .../dialog/AddFieldBreakpointDialog.java | 8 +++--- .../dialog/fieldBreakpointDialogUtil.kt | 10 +++---- 4 files changed, 42 insertions(+), 23 deletions(-) create mode 100644 idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMemberChooserObject.kt rename idea/idea-core/src/org/jetbrains/kotlin/idea/core/{overrideImplement/DescriptorClassMember.kt => util/DescriptorMemberChooserObject.kt} (82%) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMemberChooserObject.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMemberChooserObject.kt new file mode 100644 index 00000000000..9a3a06b2509 --- /dev/null +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/OverrideMemberChooserObject.kt @@ -0,0 +1,28 @@ +/* + * Copyright 2010-2015 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.idea.core.overrideImplement + +import com.intellij.openapi.project.Project +import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor +import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde +import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject + +class OverrideMemberChooserObject( + project: Project, + val member: CallableMemberDescriptor, + val immediateSuper: CallableMemberDescriptor +) : DescriptorMemberChooserObject(DescriptorToSourceUtilsIde.getAnyDeclaration(project, member)!!, member) \ No newline at end of file diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/DescriptorClassMember.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/util/DescriptorMemberChooserObject.kt similarity index 82% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/DescriptorClassMember.kt rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/util/DescriptorMemberChooserObject.kt index 4a3dfec3833..ea89d44159b 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/overrideImplement/DescriptorClassMember.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/util/DescriptorMemberChooserObject.kt @@ -14,22 +14,19 @@ * limitations under the License. */ -package org.jetbrains.kotlin.idea.core.overrideImplement +package org.jetbrains.kotlin.idea.core.util import com.intellij.codeInsight.generation.ClassMemberWithElement import com.intellij.codeInsight.generation.MemberChooserObject import com.intellij.codeInsight.generation.PsiElementMemberChooserObject -import com.intellij.openapi.project.Project import com.intellij.openapi.util.Iconable import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement import com.intellij.psi.PsiMember import com.intellij.psi.util.PsiTreeUtil -import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.idea.JetDescriptorIconProvider -import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.psi.JetClass import org.jetbrains.kotlin.psi.JetDeclaration import org.jetbrains.kotlin.psi.JetFile @@ -41,16 +38,10 @@ import org.jetbrains.kotlin.renderer.render import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import javax.swing.Icon -class OverrideMemberChooserObject( - project: Project, - val member: CallableMemberDescriptor, - val immediateSuper: CallableMemberDescriptor -) : DescriptorClassMember(DescriptorToSourceUtilsIde.getAnyDeclaration(project, member)!!, member) - -public open class DescriptorClassMember( +public open class DescriptorMemberChooserObject( psiElement: PsiElement, public val descriptor: DeclarationDescriptor -) : PsiElementMemberChooserObject(psiElement, DescriptorClassMember.getText(descriptor), DescriptorClassMember.getIcon(psiElement, descriptor)), ClassMemberWithElement { +) : PsiElementMemberChooserObject(psiElement, DescriptorMemberChooserObject.getText(descriptor), DescriptorMemberChooserObject.getIcon(psiElement, descriptor)), ClassMemberWithElement { override fun getParentNodeDelegate(): MemberChooserObject { val parent = descriptor.containingDeclaration ?: error("No parent for $descriptor") @@ -65,11 +56,11 @@ public open class DescriptorClassMember( return when (declaration) { is JetFile -> PsiElementMemberChooserObject(declaration, declaration.name) - else -> DescriptorClassMember(declaration, parent) + else -> DescriptorMemberChooserObject(declaration, parent) } } - override fun equals(other: Any?) = this === other || other is DescriptorClassMember && descriptor == other.descriptor + override fun equals(other: Any?) = this === other || other is DescriptorMemberChooserObject && descriptor == other.descriptor override fun hashCode() = descriptor.hashCode() diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java index f1fc31a46b3..7e4766c41ab 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/AddFieldBreakpointDialog.java @@ -27,7 +27,7 @@ import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.ui.DocumentAdapter; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.idea.core.overrideImplement.DescriptorClassMember; +import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject; import org.jetbrains.kotlin.psi.JetProperty; import javax.swing.*; @@ -85,12 +85,12 @@ public abstract class AddFieldBreakpointDialog extends DialogWrapper { @Override public void actionPerformed(@NotNull ActionEvent e) { PsiClass selectedClass = getSelectedClass(); - DescriptorClassMember[] properties = DialogPackage.collectProperties(selectedClass); - MemberChooser chooser = new MemberChooser(properties, false, false, myProject); + DescriptorMemberChooserObject[] properties = DialogPackage.collectProperties(selectedClass); + MemberChooser chooser = new MemberChooser(properties, false, false, myProject); chooser.setTitle(DebuggerBundle.message("add.field.breakpoint.dialog.field.chooser.title", properties.length)); chooser.setCopyJavadocVisible(false); chooser.show(); - List selectedElements = chooser.getSelectedElements(); + List selectedElements = chooser.getSelectedElements(); if (selectedElements != null && selectedElements.size() == 1) { JetProperty field = (JetProperty) selectedElements.get(0).getElement(); myFieldChooser.setText(field.getName()); diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt index 13a594d4ed9..55dc0fa8f35 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/breakpoints/dialog/fieldBreakpointDialogUtil.kt @@ -20,15 +20,15 @@ import com.intellij.psi.PsiClass import org.jetbrains.kotlin.asJava.KotlinLightClass import org.jetbrains.kotlin.asJava.KotlinLightClassForPackage import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor -import org.jetbrains.kotlin.idea.core.overrideImplement.DescriptorClassMember +import org.jetbrains.kotlin.idea.core.util.DescriptorMemberChooserObject import org.jetbrains.kotlin.psi.JetProperty -fun PsiClass.collectProperties(): Array { +fun PsiClass.collectProperties(): Array { if (this is KotlinLightClassForPackage) { - val result = arrayListOf() + val result = arrayListOf() this.files.forEach { it.getDeclarations().filterIsInstance().forEach { - result.add(DescriptorClassMember(it, it.resolveToDescriptor())) + result.add(DescriptorMemberChooserObject(it, it.resolveToDescriptor())) } } return result.toTypedArray() @@ -37,7 +37,7 @@ fun PsiClass.collectProperties(): Array { val origin = this.getOrigin() if (origin != null) { return origin.getDeclarations().filterIsInstance().map { - DescriptorClassMember(it, it.resolveToDescriptor()) + DescriptorMemberChooserObject(it, it.resolveToDescriptor()) }.toTypedArray() } }