diff options
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java')
-rw-r--r-- | java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java index 09b83e2a489f..abe9368374e8 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java @@ -119,7 +119,8 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { protected abstract PsiElement getElement(); private void chooseTargetClass(List<PsiClass> classes, final Editor editor) { - final Project project = classes.get(0).getProject(); + final PsiClass firstClass = classes.get(0); + final Project project = firstClass.getProject(); final JList list = new JBList(classes); PsiElementListCellRenderer renderer = new PsiClassListCellRenderer(); @@ -128,12 +129,18 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { final PopupChooserBuilder builder = new PopupChooserBuilder(list); renderer.installSpeedSearch(builder); + final PsiClass preselection = AnonymousTargetClassPreselectionUtil.getPreselection(classes, firstClass); + if (preselection != null) { + list.setSelectedValue(preselection, true); + } + Runnable runnable = new Runnable() { @Override public void run() { int index = list.getSelectedIndex(); if (index < 0) return; final PsiClass aClass = (PsiClass) list.getSelectedValue(); + AnonymousTargetClassPreselectionUtil.rememberSelection(aClass, firstClass); CommandProcessor.getInstance().executeCommand(project, new Runnable() { @Override public void run() { |