diff options
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java')
-rw-r--r-- | java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java index 68c3684ff662..53630f602ef1 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/OverrideImplementUtil.java @@ -435,17 +435,6 @@ public class OverrideImplementUtil extends OverrideImplementExploreUtil { Collection<CandidateInfo> secondary = toImplement || aClass.isInterface() ? ContainerUtil.<CandidateInfo>newArrayList() : getMethodsToOverrideImplement(aClass, true); - if (toImplement && PsiUtil.isLanguageLevel8OrHigher(aClass)) { - for (Iterator<CandidateInfo> iterator = candidates.iterator(); iterator.hasNext(); ) { - CandidateInfo candidate = iterator.next(); - PsiElement element = candidate.getElement(); - if (element instanceof PsiMethod && ((PsiMethod)element).hasModifierProperty(PsiModifier.DEFAULT)) { - iterator.remove(); - secondary.add(candidate); - } - } - } - final MemberChooser<PsiMethodMember> chooser = showOverrideImplementChooser(editor, aClass, toImplement, candidates, secondary); if (chooser == null) return; @@ -461,6 +450,9 @@ public class OverrideImplementUtil extends OverrideImplementExploreUtil { }.execute(); } + /** + * @param candidates, secondary should allow modifications + */ @Nullable public static MemberChooser<PsiMethodMember> showOverrideImplementChooser(Editor editor, final PsiElement aClass, @@ -468,6 +460,17 @@ public class OverrideImplementUtil extends OverrideImplementExploreUtil { final Collection<CandidateInfo> candidates, Collection<CandidateInfo> secondary) { + if (toImplement && PsiUtil.isLanguageLevel8OrHigher(aClass)) { + for (Iterator<CandidateInfo> iterator = candidates.iterator(); iterator.hasNext(); ) { + CandidateInfo candidate = iterator.next(); + PsiElement element = candidate.getElement(); + if (element instanceof PsiMethod && ((PsiMethod)element).hasModifierProperty(PsiModifier.DEFAULT)) { + iterator.remove(); + secondary.add(candidate); + } + } + } + final JavaOverrideImplementMemberChooser chooser = JavaOverrideImplementMemberChooser.create(aClass, toImplement, candidates, secondary); if (chooser == null) { @@ -612,7 +615,7 @@ public class OverrideImplementUtil extends OverrideImplementExploreUtil { finally { PsiFile psiFile = psiClass.getContainingFile(); - Editor editor = fileEditorManager.openTextEditor(new OpenFileDescriptor(psiFile.getProject(), psiFile.getVirtualFile()), false); + Editor editor = fileEditorManager.openTextEditor(new OpenFileDescriptor(psiFile.getProject(), psiFile.getVirtualFile()), true); if (editor != null && !results.isEmpty()) { results.get(0).positionCaret(editor, true); editor.getScrollingModel().scrollToCaret(ScrollType.CENTER); |