mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
reuse PsiClassListCellRenderer instance
This commit is contained in:
@@ -333,7 +333,7 @@ public class MarkerType {
|
||||
return null;
|
||||
}
|
||||
|
||||
Comparator<PsiClass> comparator = new PsiClassListCellRenderer().getComparator();
|
||||
Comparator<PsiClass> comparator = PsiClassListCellRenderer.INSTANCE.getComparator();
|
||||
Arrays.sort(subclasses, comparator);
|
||||
|
||||
String start = aClass.isInterface()
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+1
-1
@@ -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<PsiClass>() {
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -44,6 +44,6 @@ public abstract class ChooseClassAndDoHighlightRunnable extends ChooseOneOrAllRu
|
||||
|
||||
@Override
|
||||
protected PsiElementListCellRenderer<PsiClass> createRenderer() {
|
||||
return new PsiClassListCellRenderer();
|
||||
return PsiClassListCellRenderer.INSTANCE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
+2
-7
@@ -178,14 +178,9 @@ public class ImplementAbstractMethodHandler {
|
||||
}
|
||||
|
||||
private static class MyPsiElementListCellRenderer extends PsiElementListCellRenderer<PsiElement> {
|
||||
private final PsiClassListCellRenderer myRenderer;
|
||||
|
||||
public MyPsiElementListCellRenderer() {
|
||||
myRenderer = new PsiClassListCellRenderer();
|
||||
}
|
||||
|
||||
void sort(PsiElement[] result) {
|
||||
final Comparator<PsiClass> comparator = myRenderer.getComparator();
|
||||
final Comparator<PsiClass> 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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import javax.swing.*;
|
||||
|
||||
public class MethodCellRenderer extends PsiElementListCellRenderer<PsiMethod>{
|
||||
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<PsiMethod>{
|
||||
|
||||
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<PsiMethod>{
|
||||
}
|
||||
|
||||
public int getIconFlags() {
|
||||
return myClassListCellRenderer.getIconFlags();
|
||||
return PsiClassListCellRenderer.INSTANCE.getIconFlags();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import com.intellij.psi.util.PsiFormatUtilBase;
|
||||
import javax.swing.*;
|
||||
|
||||
public class MethodOrFunctionalExpressionCellRenderer extends PsiElementListCellRenderer<NavigatablePsiElement> {
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ import com.intellij.psi.presentation.java.ClassPresentationUtil;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class PsiClassListCellRenderer extends PsiElementListCellRenderer<PsiClass> {
|
||||
public static final PsiClassListCellRenderer INSTANCE = new PsiClassListCellRenderer();
|
||||
|
||||
@Override
|
||||
public String getElementText(PsiClass element) {
|
||||
return ClassPresentationUtil.getNameForClass(element, false);
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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<PsiClass>() {
|
||||
@Override
|
||||
|
||||
@@ -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<PsiClass>() {
|
||||
NavigationUtil.getPsiElementPopup(classes.toArray(new PsiClass[classes.size()]), PsiClassListCellRenderer.INSTANCE, "Choose class to introduce " + (myIsConstant ? "constant" : "field"), new PsiElementProcessor<PsiClass>() {
|
||||
@Override
|
||||
public boolean execute(@NotNull PsiClass aClass) {
|
||||
AnonymousTargetClassPreselectionUtil.rememberSelection(aClass, aClass);
|
||||
|
||||
+1
-1
@@ -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<PsiClass>() {
|
||||
@Override
|
||||
public boolean execute(@NotNull PsiClass psiClass) {
|
||||
|
||||
+1
-1
@@ -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")
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ public abstract class GrIntroduceFieldHandlerBase<Settings extends GrIntroduceSe
|
||||
}
|
||||
};
|
||||
|
||||
NavigationUtil.getPsiElementPopup(scopes, new PsiClassListCellRenderer(), "Choose class to introduce field", processor).showInBestPositionFor(editor);
|
||||
NavigationUtil.getPsiElementPopup(scopes, PsiClassListCellRenderer.INSTANCE, "Choose class to introduce field", processor).showInBestPositionFor(editor);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user