This commit is contained in:
Valentin Kipyatkov
2015-08-19 21:04:39 +03:00
parent ba33c834c1
commit 14763a7ffa
9 changed files with 44 additions and 44 deletions
@@ -24,15 +24,15 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.idea.JetBundle
import org.jetbrains.kotlin.resolve.OverrideResolver
public class ImplementMethodsHandler : OverrideImplementMethodsHandler(), IntentionAction {
override fun collectMethodsToGenerate(descriptor: ClassDescriptor, project: Project): Collection<OverrideMemberChooserObject> {
public class ImplementMembersHandler : OverrideImplementMembersHandler(), IntentionAction {
override fun collectMembersToGenerate(descriptor: ClassDescriptor, project: Project): Collection<OverrideMemberChooserObject> {
return OverrideResolver.getMissingImplementations(descriptor)
.map { OverrideMemberChooserObject.create(project, it, it) }
}
override fun getChooserTitle() = "Implement Members"
override fun getNoMethodsFoundHint() = "No methods to implement have been found"
override fun getNoMembersFoundHint() = "No members to implement have been found"
override fun getText() = JetBundle.message("implement.members")
override fun getFamilyName() = JetBundle.message("implement.members")
@@ -37,14 +37,14 @@ import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.renderer.*
import java.util.ArrayList
public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActionHandler {
public abstract class OverrideImplementMembersHandler : LanguageCodeInsightActionHandler {
public fun collectMethodsToGenerate(classOrObject: JetClassOrObject): Collection<OverrideMemberChooserObject> {
public fun collectMembersToGenerate(classOrObject: JetClassOrObject): Collection<OverrideMemberChooserObject> {
val descriptor = classOrObject.resolveToDescriptor() as? ClassDescriptor ?: return emptySet()
return collectMethodsToGenerate(descriptor, classOrObject.project)
return collectMembersToGenerate(descriptor, classOrObject.project)
}
protected abstract fun collectMethodsToGenerate(descriptor: ClassDescriptor, project: Project): Collection<OverrideMemberChooserObject>
protected abstract fun collectMembersToGenerate(descriptor: ClassDescriptor, project: Project): Collection<OverrideMemberChooserObject>
private fun showOverrideImplementChooser(project: Project, members: Array<OverrideMemberChooserObject>): MemberChooser<OverrideMemberChooserObject>? {
val chooser = MemberChooser(members, true, true, project)
@@ -63,15 +63,15 @@ public abstract class OverrideImplementMethodsHandler : LanguageCodeInsightActio
return classOrObject != null
}
protected abstract fun getNoMethodsFoundHint(): String
protected abstract fun getNoMembersFoundHint(): String
public fun invoke(project: Project, editor: Editor, file: PsiFile, implementAll: Boolean) {
val elementAtCaret = file.findElementAt(editor.caretModel.offset)
val classOrObject = elementAtCaret?.getNonStrictParentOfType<JetClassOrObject>()!!
val members = collectMethodsToGenerate(classOrObject)
val members = collectMembersToGenerate(classOrObject)
if (members.isEmpty() && !implementAll) {
HintManager.getInstance().showErrorHint(editor, getNoMethodsFoundHint())
HintManager.getInstance().showErrorHint(editor, getNoMembersFoundHint())
return
}
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.descriptors.*
import java.util.ArrayList
import java.util.LinkedHashMap
public class OverrideMethodsHandler : OverrideImplementMethodsHandler() {
override fun collectMethodsToGenerate(descriptor: ClassDescriptor, project: Project): Collection<OverrideMemberChooserObject> {
public class OverrideMembersHandler : OverrideImplementMembersHandler() {
override fun collectMembersToGenerate(descriptor: ClassDescriptor, project: Project): Collection<OverrideMemberChooserObject> {
val result = ArrayList<OverrideMemberChooserObject>()
for (member in descriptor.unsubstitutedMemberScope.getAllDescriptors()) {
if (member is CallableMemberDescriptor
@@ -74,5 +74,5 @@ public class OverrideMethodsHandler : OverrideImplementMethodsHandler() {
override fun getChooserTitle() = "Override Members"
override fun getNoMethodsFoundHint() = "No methods to override have been found"
override fun getNoMembersFoundHint() = "No members to override have been found"
}