diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java index c8747fdc82fa..f1d440c11b2a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/MarkerType.java @@ -333,7 +333,7 @@ public class MarkerType { return null; } - Comparator comparator = new PsiClassListCellRenderer().getComparator(); + Comparator comparator = PsiClassListCellRenderer.INSTANCE.getComparator(); Arrays.sort(subclasses, comparator); String start = aClass.isInterface() 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 5531d26b1999..ced50080700f 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 @@ -120,7 +120,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction { final Project project = firstClass.getProject(); final JList list = new JBList(classes); - PsiElementListCellRenderer renderer = new PsiClassListCellRenderer(); + PsiElementListCellRenderer renderer = PsiClassListCellRenderer.INSTANCE; list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setCellRenderer(renderer); final PopupChooserBuilder builder = new PopupChooserBuilder(list); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java index 7373756a2fad..3de712103c66 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromUsageFix.java @@ -103,7 +103,7 @@ public class CreateInnerClassFromUsageFix extends CreateClassFromUsageBaseFix { final Project project = classes[0].getProject(); final JList list = new JBList(classes); - PsiElementListCellRenderer renderer = new PsiClassListCellRenderer(); + PsiElementListCellRenderer renderer = PsiClassListCellRenderer.INSTANCE; list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setCellRenderer(renderer); final PopupChooserBuilder builder = new PopupChooserBuilder(list); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java index f079ffa1dc2d..8630e94a1f41 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/PullAsAbstractUpFix.java @@ -99,7 +99,7 @@ public class PullAsAbstractUpFix extends LocalQuickFixAndIntentionActionOnPsiEle pullUp(method, containingClass, classesToPullUp.iterator().next()); } else if (editor != null) { - NavigationUtil.getPsiElementPopup(classesToPullUp.toArray(new PsiClass[classesToPullUp.size()]), new PsiClassListCellRenderer(), + NavigationUtil.getPsiElementPopup(classesToPullUp.toArray(new PsiClass[classesToPullUp.size()]), PsiClassListCellRenderer.INSTANCE, "Choose super class", new PsiElementProcessor() { @Override diff --git a/java/java-impl/src/com/intellij/codeInsight/highlighting/ChooseClassAndDoHighlightRunnable.java b/java/java-impl/src/com/intellij/codeInsight/highlighting/ChooseClassAndDoHighlightRunnable.java index fbf34384abde..fd70c98dd457 100644 --- a/java/java-impl/src/com/intellij/codeInsight/highlighting/ChooseClassAndDoHighlightRunnable.java +++ b/java/java-impl/src/com/intellij/codeInsight/highlighting/ChooseClassAndDoHighlightRunnable.java @@ -44,6 +44,6 @@ public abstract class ChooseClassAndDoHighlightRunnable extends ChooseOneOrAllRu @Override protected PsiElementListCellRenderer createRenderer() { - return new PsiClassListCellRenderer(); + return PsiClassListCellRenderer.INSTANCE; } } diff --git a/java/java-impl/src/com/intellij/codeInsight/hint/actions/ShowSiblingsAction.java b/java/java-impl/src/com/intellij/codeInsight/hint/actions/ShowSiblingsAction.java index 2993d34ed5a6..937a27572eeb 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hint/actions/ShowSiblingsAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/hint/actions/ShowSiblingsAction.java @@ -28,7 +28,6 @@ import com.intellij.psi.*; import com.intellij.psi.impl.FindSuperElementsHelper; import com.intellij.psi.presentation.java.SymbolPresentationUtil; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.util.Consumer; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; @@ -63,7 +62,7 @@ public class ShowSiblingsAction extends ShowImplementationsAction { final boolean isMethod = superElements[0] instanceof PsiMethod; NavigatablePsiElement[] navigatablePsiElements = ContainerUtil.findAllAsArray(superElements, NavigatablePsiElement.class); final JBPopup popup = PsiElementListNavigator.navigateOrCreatePopup(navigatablePsiElements, "Choose super " + (isMethod ? "method" : "class or interface"), "Super " + (isMethod ? "methods" : "classes/interfaces"), - isMethod ? new MethodCellRenderer(false) : new PsiClassListCellRenderer(), null, + isMethod ? new MethodCellRenderer(false) : PsiClassListCellRenderer.INSTANCE, null, objects -> showSiblings(invokedByShortcut, project, editor, file, editor != null, (PsiElement)objects[0])); if (popup != null) { if (editor != null) { diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ImplementAbstractMethodHandler.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ImplementAbstractMethodHandler.java index 0086d270d826..8ca355eed586 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ImplementAbstractMethodHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ImplementAbstractMethodHandler.java @@ -178,14 +178,9 @@ public class ImplementAbstractMethodHandler { } private static class MyPsiElementListCellRenderer extends PsiElementListCellRenderer { - private final PsiClassListCellRenderer myRenderer; - - public MyPsiElementListCellRenderer() { - myRenderer = new PsiClassListCellRenderer(); - } void sort(PsiElement[] result) { - final Comparator comparator = myRenderer.getComparator(); + final Comparator comparator = PsiClassListCellRenderer.INSTANCE.getComparator(); Arrays.sort(result, (o1, o2) -> { if (o1 instanceof PsiEnumConstant && o2 instanceof PsiEnumConstant) { return ((PsiEnumConstant)o1).getName().compareTo(((PsiEnumConstant)o2).getName()); @@ -198,7 +193,7 @@ public class ImplementAbstractMethodHandler { @Override public String getElementText(PsiElement element) { - return element instanceof PsiClass ? myRenderer.getElementText((PsiClass)element) + return element instanceof PsiClass ? PsiClassListCellRenderer.INSTANCE.getElementText((PsiClass)element) : ((PsiEnumConstant)element).getName(); } diff --git a/java/java-impl/src/com/intellij/codeInsight/navigation/JavaGotoTargetRendererProvider.java b/java/java-impl/src/com/intellij/codeInsight/navigation/JavaGotoTargetRendererProvider.java index d8c3edac662d..8c963ffcd71e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/navigation/JavaGotoTargetRendererProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/navigation/JavaGotoTargetRendererProvider.java @@ -33,7 +33,7 @@ public class JavaGotoTargetRendererProvider implements GotoTargetRendererProvide return new MethodCellRenderer(gotoData.hasDifferentNames()); } else if (element instanceof PsiClass) { - return new PsiClassListCellRenderer(); + return PsiClassListCellRenderer.INSTANCE; } return null; } diff --git a/java/java-impl/src/com/intellij/ide/util/MethodCellRenderer.java b/java/java-impl/src/com/intellij/ide/util/MethodCellRenderer.java index 72fcbda6979c..10a140bec5a4 100644 --- a/java/java-impl/src/com/intellij/ide/util/MethodCellRenderer.java +++ b/java/java-impl/src/com/intellij/ide/util/MethodCellRenderer.java @@ -23,7 +23,6 @@ import javax.swing.*; public class MethodCellRenderer extends PsiElementListCellRenderer{ private final boolean myShowMethodNames; - private final PsiClassListCellRenderer myClassListCellRenderer = new PsiClassListCellRenderer(); @PsiFormatUtil.FormatMethodOptions private final int myOptions; @@ -37,7 +36,7 @@ public class MethodCellRenderer extends PsiElementListCellRenderer{ public String getElementText(PsiMethod element) { final PsiNamedElement container = fetchContainer(element); - String text = container instanceof PsiClass ? myClassListCellRenderer.getElementText((PsiClass)container) : container.getName(); + String text = container instanceof PsiClass ? PsiClassListCellRenderer.INSTANCE.getElementText((PsiClass)container) : container.getName(); if (myShowMethodNames) { text += "."+PsiFormatUtil.formatMethod(element, PsiSubstitutor.EMPTY, myOptions, PsiFormatUtilBase.SHOW_TYPE); } @@ -58,6 +57,6 @@ public class MethodCellRenderer extends PsiElementListCellRenderer{ } public int getIconFlags() { - return myClassListCellRenderer.getIconFlags(); + return PsiClassListCellRenderer.INSTANCE.getIconFlags(); } } diff --git a/java/java-impl/src/com/intellij/ide/util/MethodOrFunctionalExpressionCellRenderer.java b/java/java-impl/src/com/intellij/ide/util/MethodOrFunctionalExpressionCellRenderer.java index 9d682af37f6a..2a4bb5aaea92 100644 --- a/java/java-impl/src/com/intellij/ide/util/MethodOrFunctionalExpressionCellRenderer.java +++ b/java/java-impl/src/com/intellij/ide/util/MethodOrFunctionalExpressionCellRenderer.java @@ -23,7 +23,7 @@ import com.intellij.psi.util.PsiFormatUtilBase; import javax.swing.*; public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCellRenderer { - private final PsiClassListCellRenderer myClassListCellRenderer = new PsiClassListCellRenderer(); + private final PsiClassListCellRenderer myClassListCellRenderer = PsiClassListCellRenderer.INSTANCE; private final MethodCellRenderer myMethodCellRenderer; public MethodOrFunctionalExpressionCellRenderer(boolean showMethodNames) { @@ -48,6 +48,6 @@ public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCell } public int getIconFlags() { - return myClassListCellRenderer.getIconFlags(); + return PsiClassListCellRenderer.INSTANCE.getIconFlags(); } } diff --git a/java/java-impl/src/com/intellij/ide/util/PsiClassListCellRenderer.java b/java/java-impl/src/com/intellij/ide/util/PsiClassListCellRenderer.java index 53e239fd91b2..76260aefe4f6 100644 --- a/java/java-impl/src/com/intellij/ide/util/PsiClassListCellRenderer.java +++ b/java/java-impl/src/com/intellij/ide/util/PsiClassListCellRenderer.java @@ -20,6 +20,8 @@ import com.intellij.psi.presentation.java.ClassPresentationUtil; import org.jetbrains.annotations.Nullable; public class PsiClassListCellRenderer extends PsiElementListCellRenderer { + public static final PsiClassListCellRenderer INSTANCE = new PsiClassListCellRenderer(); + @Override public String getElementText(PsiClass element) { return ClassPresentationUtil.getNameForClass(element, false); diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java index b595c3e67d34..93f319d43a81 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java @@ -1519,7 +1519,7 @@ public class ExtractMethodProcessor implements MatchProvider { if (classes.size() > 1) { final PsiClass[] psiClasses = classes.keySet().toArray(new PsiClass[classes.size()]); final PsiClass preselection = AnonymousTargetClassPreselectionUtil.getPreselection(classes.keySet(), psiClasses[0]); - NavigationUtil.getPsiElementPopup(psiClasses, new PsiClassListCellRenderer(), "Choose Destination Class", processor, preselection) + NavigationUtil.getPsiElementPopup(psiClasses, PsiClassListCellRenderer.INSTANCE, "Choose Destination Class", processor, preselection) .showInBestPositionFor(myEditor); return true; } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java index 018e61ae48c6..00f5bf79ee4d 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/BaseExpressionToFieldHandler.java @@ -134,7 +134,7 @@ public abstract class BaseExpressionToFieldHandler extends IntroduceHandlerBase } else { PsiClass selection = AnonymousTargetClassPreselectionUtil.getPreselection(classes, myParentClass); - NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), new PsiClassListCellRenderer(), + NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), PsiClassListCellRenderer.INSTANCE, "Choose class to introduce " + (myIsConstant ? "constant" : "field"), new PsiElementProcessor() { @Override diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java index b8884ecdf437..5d5f0f012f18 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/LocalToFieldHandler.java @@ -94,7 +94,7 @@ public abstract class LocalToFieldHandler { final boolean isStatic = tempIsStatic; final PsiClass firstClass = classes.get(0); final PsiClass preselection = AnonymousTargetClassPreselectionUtil.getPreselection(classes, firstClass); - NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), new PsiClassListCellRenderer(), "Choose class to introduce " + (myIsConstant ? "constant" : "field"), new PsiElementProcessor() { + NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), PsiClassListCellRenderer.INSTANCE, "Choose class to introduce " + (myIsConstant ? "constant" : "field"), new PsiElementProcessor() { @Override public boolean execute(@NotNull PsiClass aClass) { AnonymousTargetClassPreselectionUtil.rememberSelection(aClass, aClass); diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index fb3da83bb7be..139369de5c65 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -580,7 +580,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { final PsiType returnType = emptyMethod.getReturnType(); LOG.assertTrue(returnType != null); final String title = "Choose Applicable Functional Interface: " + methodSignature + " -> " + returnType.getPresentableText(); - NavigationUtil.getPsiElementPopup(psiClasses, new PsiClassListCellRenderer(), title, + NavigationUtil.getPsiElementPopup(psiClasses, PsiClassListCellRenderer.INSTANCE, title, new PsiElementProcessor() { @Override public boolean execute(@NotNull PsiClass psiClass) { diff --git a/java/java-impl/src/com/intellij/testIntegration/createTest/GenerateMissedTestsAction.java b/java/java-impl/src/com/intellij/testIntegration/createTest/GenerateMissedTestsAction.java index d64b6ec8c3a8..4b73db746123 100644 --- a/java/java-impl/src/com/intellij/testIntegration/createTest/GenerateMissedTestsAction.java +++ b/java/java-impl/src/com/intellij/testIntegration/createTest/GenerateMissedTestsAction.java @@ -85,7 +85,7 @@ public class GenerateMissedTestsAction extends PsiElementBaseIntentionAction { } final JBList list = new JBList(testClasses); - list.setCellRenderer(new PsiClassListCellRenderer()); + list.setCellRenderer(PsiClassListCellRenderer.INSTANCE); JBPopupFactory.getInstance().createListPopupBuilder(list) .setItemChoosenCallback(() -> generateMissedTests((PsiClass)list.getSelectedValue(), srcClass, editor)) .setTitle("Choose Test") diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java index a85e20e61491..97cd0cca2ecf 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/GrCreateFromUsageBaseFix.java @@ -102,7 +102,7 @@ public abstract class GrCreateFromUsageBaseFix extends Intention { final Project project = classes.get(0).getProject(); final JList list = new JBList(classes); - PsiElementListCellRenderer renderer = new PsiClassListCellRenderer(); + PsiElementListCellRenderer renderer = PsiClassListCellRenderer.INSTANCE; list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); list.setCellRenderer(renderer); final PopupChooserBuilder builder = new PopupChooserBuilder(list); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/GrIntroduceFieldHandlerBase.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/GrIntroduceFieldHandlerBase.java index 4ecd9e053649..f7d8a0447cf6 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/GrIntroduceFieldHandlerBase.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/GrIntroduceFieldHandlerBase.java @@ -67,7 +67,7 @@ public abstract class GrIntroduceFieldHandlerBase