mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java: generate toString() cleanup
GitOrigin-RevId: da87fecbd3d725a02f6a5b54fb5ec61f55550f48
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fd88b53a61
commit
cf1b240751
+20
-17
@@ -22,6 +22,7 @@ import com.intellij.codeInsight.hint.HintManager;
|
||||
import com.intellij.ide.util.MemberChooser;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -94,7 +95,7 @@ public class GenerateToStringActionHandlerImpl implements GenerateToStringAction
|
||||
LOG.debug("Current project " + project.getName());
|
||||
}
|
||||
|
||||
final PsiElementClassMember[] dialogMembers = buildMembersToShow(clazz);
|
||||
final PsiElementClassMember<?>[] dialogMembers = buildMembersToShow(clazz);
|
||||
|
||||
final MemberChooserHeaderPanel header = new MemberChooserHeaderPanel(clazz);
|
||||
LOG.debug("Displaying member chooser dialog");
|
||||
@@ -163,19 +164,19 @@ public class GenerateToStringActionHandlerImpl implements GenerateToStringAction
|
||||
: ContainerUtil.filter(dialogMembers, selectedElements::contains);
|
||||
}
|
||||
|
||||
private static PsiElementClassMember[] getPreselection(@NotNull PsiClass clazz, PsiElementClassMember[] dialogMembers) {
|
||||
private static PsiElementClassMember<?>[] getPreselection(@NotNull PsiClass clazz, PsiElementClassMember<?>[] dialogMembers) {
|
||||
return Arrays.stream(dialogMembers)
|
||||
.filter(member -> member.getElement().getContainingClass() == clazz)
|
||||
.toArray(PsiElementClassMember[]::new);
|
||||
}
|
||||
|
||||
public static void updateDialog(PsiClass clazz, MemberChooser<? super PsiElementClassMember> dialog) {
|
||||
final PsiElementClassMember[] members = buildMembersToShow(clazz);
|
||||
public static void updateDialog(PsiClass clazz, MemberChooser<? super PsiElementClassMember<?>> dialog) {
|
||||
final PsiElementClassMember<?>[] members = buildMembersToShow(clazz);
|
||||
dialog.resetElements(members);
|
||||
dialog.selectElements(getPreselection(clazz, members));
|
||||
}
|
||||
|
||||
public static PsiElementClassMember[] buildMembersToShow(PsiClass clazz) {
|
||||
public static PsiElementClassMember<?>[] buildMembersToShow(PsiClass clazz) {
|
||||
Config config = GenerateToStringContext.getConfig();
|
||||
PsiField[] filteredFields = GenerateToStringUtils.filterAvailableFields(clazz, true, config.getFilterPattern());
|
||||
if (LOG.isDebugEnabled()) LOG.debug("Number of fields after filtering: " + filteredFields.length);
|
||||
@@ -213,10 +214,10 @@ public class GenerateToStringActionHandlerImpl implements GenerateToStringAction
|
||||
}
|
||||
|
||||
public static class MemberChooserHeaderPanel extends JPanel {
|
||||
private MemberChooser<PsiElementClassMember> chooser;
|
||||
private MemberChooser<PsiElementClassMember<?>> chooser;
|
||||
private final JComboBox<TemplateResource> comboBox;
|
||||
|
||||
public void setChooser(MemberChooser chooser) {
|
||||
public void setChooser(MemberChooser<PsiElementClassMember<?>> chooser) {
|
||||
this.chooser = chooser;
|
||||
}
|
||||
|
||||
@@ -230,20 +231,22 @@ public class GenerateToStringActionHandlerImpl implements GenerateToStringAction
|
||||
settingsButton.setMnemonic(KeyEvent.VK_S);
|
||||
|
||||
comboBox = new ComboBox<>(all);
|
||||
Set<String> inaccessibleTemplates = new HashSet<>();
|
||||
final Set<String> inaccessibleTemplates = new HashSet<>();
|
||||
final JavaPsiFacade instance = JavaPsiFacade.getInstance(clazz.getProject());
|
||||
final GlobalSearchScope resolveScope = clazz.getResolveScope();
|
||||
ReadAction.nonBlocking(() -> {
|
||||
for (TemplateResource template : templates) {
|
||||
String className = template.getClassName();
|
||||
if (className != null && instance.findClass(className, resolveScope) == null) {
|
||||
inaccessibleTemplates.add(className);
|
||||
for (TemplateResource template : templates) {
|
||||
String className = template.getClassName();
|
||||
if (className != null && instance.findClass(className, resolveScope) == null) {
|
||||
inaccessibleTemplates.add(className);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!inaccessibleTemplates.isEmpty()) {
|
||||
SwingUtilities.invokeLater(comboBox::repaint);
|
||||
}
|
||||
}).submit(AppExecutorUtil.getAppExecutorService());
|
||||
return inaccessibleTemplates;
|
||||
})
|
||||
.finishOnUiThread(ModalityState.current(), ts -> {
|
||||
if (!ts.isEmpty()) SwingUtilities.invokeLater(comboBox::repaint);
|
||||
})
|
||||
.submit(AppExecutorUtil.getAppExecutorService());;
|
||||
final ListCellRenderer<TemplateResource> renderer =
|
||||
SimpleListCellRenderer.create((label, value, index) -> {
|
||||
label.setText(value.getName());
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.java.generate;
|
||||
|
||||
import com.intellij.CommonBundle;
|
||||
@@ -76,8 +76,8 @@ public final class GenerationUtil {
|
||||
* @param filteredMethods methods to be included in the dialog
|
||||
* @return the combined list
|
||||
*/
|
||||
public static PsiElementClassMember[] combineToClassMemberList(PsiField[] filteredFields, PsiMethod[] filteredMethods) {
|
||||
PsiElementClassMember[] members = new PsiElementClassMember[filteredFields.length + filteredMethods.length];
|
||||
public static PsiElementClassMember<?>[] combineToClassMemberList(PsiField[] filteredFields, PsiMethod[] filteredMethods) {
|
||||
PsiElementClassMember<?>[] members = new PsiElementClassMember[filteredFields.length + filteredMethods.length];
|
||||
|
||||
// first add fields
|
||||
for (int i = 0; i < filteredFields.length; i++) {
|
||||
@@ -98,13 +98,13 @@ public final class GenerationUtil {
|
||||
* @param classMemberList list of {@link PsiElementClassMember}
|
||||
* @return a list of {PsiMember} objects.
|
||||
*/
|
||||
public static List<PsiMember> convertClassMembersToPsiMembers(@Nullable List<? extends PsiElementClassMember> classMemberList) {
|
||||
public static List<PsiMember> convertClassMembersToPsiMembers(@Nullable List<? extends PsiElementClassMember<?>> classMemberList) {
|
||||
if (classMemberList == null || classMemberList.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<PsiMember> psiMemberList = new ArrayList<>();
|
||||
|
||||
for (PsiElementClassMember classMember : classMemberList) {
|
||||
for (PsiElementClassMember<?> classMember : classMemberList) {
|
||||
psiMemberList.add(classMember.getElement());
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.jetbrains.java.generate.view;
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.ComboBox;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.ui.LanguageTextField;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
@@ -57,7 +58,7 @@ public class ConfigUI extends JPanel {
|
||||
private final LanguageTextField filterFieldType;
|
||||
private final LanguageTextField filterMethodName;
|
||||
private final LanguageTextField filterMethodType;
|
||||
private final JComboBox sortElementsComboBox = new JComboBox();
|
||||
private final JComboBox<String> sortElementsComboBox = new ComboBox<>();
|
||||
private final JCheckBox sortElements = new JCheckBox(JavaBundle.message("generate.tostring.sort.checkbox"));
|
||||
|
||||
/**
|
||||
@@ -264,7 +265,7 @@ public class ConfigUI extends JPanel {
|
||||
|
||||
@Nullable
|
||||
private static String emptyToNull(final String s) {
|
||||
if (s != null && s.length() == 0) return null;
|
||||
if (s != null && s.isEmpty()) return null;
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user