[spring] IDEA-352691 Add menu item to create Spring bean in the New menu group

GitOrigin-RevId: 75cb33497ff44f3bde9117321c956c98159f18dd
This commit is contained in:
Evgenii Zakharchenko
2024-12-21 12:47:02 +00:00
committed by intellij-monorepo-bot
parent 20adc794cc
commit 49bca52ac5
2 changed files with 26 additions and 22 deletions
@@ -142,9 +142,6 @@ public class CreateFileFromTemplateDialog extends DialogWrapper {
@NotNull FileCreator<T> fileCreator,
Consumer<? super T> elementConsumer) {
CreateWithTemplatesDialogPanel contentPanel = new CreateWithTemplatesDialogPanel(selectedItem, myTemplatesList);
if (myKindSelector != null) {
contentPanel.setTemplateSelectorMatcher(myKindSelector);
}
ElementCreator elementCreator = new ElementCreator(myProject, errorTitle) {
@Override
@@ -171,6 +168,10 @@ public class CreateFileFromTemplateDialog extends DialogWrapper {
textField.selectAll();
}
if (myKindSelector != null) {
contentPanel.setTemplateSelectorMatcher(myKindSelector);
}
contentPanel.setApplyAction(e -> {
String newElementName = contentPanel.getEnteredName();
if (StringUtil.isEmptyOrSpaces(newElementName)) return;
@@ -8,7 +8,6 @@ import com.intellij.ui.SimpleListCellRenderer;
import com.intellij.ui.components.JBLabel;
import com.intellij.ui.components.fields.ExtendableTextComponent;
import com.intellij.ui.scale.JBUIScale;
import com.intellij.util.text.NameUtilCore;
import com.intellij.util.ui.JBUI;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
@@ -20,7 +19,6 @@ import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.List;
import java.util.function.BiFunction;
import java.util.function.Function;
import static com.intellij.ide.actions.newclass.TemplateListCellRendererKt.createTemplateListCellRenderer;
@@ -75,33 +73,38 @@ public class CreateWithTemplatesDialogPanel extends NewItemWithTemplatesPopupPan
}
public void setTemplateSelectorMatcher(BiFunction<? super String, ? super TemplatePresentation, Boolean> templateMatcher) {
selectTemplate(templateMatcher);
myTemplatesList.addListSelectionListener(ListSelectionEvent -> {
templateExplicitlySelected = true;
});
myTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if (templateExplicitlySelected) {
return;
}
String newElementName = getEnteredName();
JList<TemplatePresentation> list = myTemplatesList;
TemplatePresentation matchedElement = null;
for (int i = 0; i < list.getModel().getSize(); i++) {
TemplatePresentation presentation = list.getModel().getElementAt(i);
if (templateMatcher.apply(newElementName, presentation)) {
matchedElement = presentation;
break;
}
}
if (matchedElement != null) {
list.setSelectedValue(matchedElement, true);
templateExplicitlySelected = false;
}
selectTemplate(templateMatcher);
}
});
}
private void selectTemplate(BiFunction<? super String, ? super TemplatePresentation, Boolean> templateMatcher) {
if (templateExplicitlySelected) {
return;
}
String newElementName = getEnteredName();
JList<TemplatePresentation> list = myTemplatesList;
TemplatePresentation matchedElement = null;
for (int i = 0; i < list.getModel().getSize(); i++) {
TemplatePresentation presentation = list.getModel().getElementAt(i);
if (templateMatcher.apply(newElementName, presentation)) {
matchedElement = presentation;
break;
}
}
if (matchedElement != null) {
list.setSelectedValue(matchedElement, true);
templateExplicitlySelected = false;
}
}
private static final class TemplateListCellRenderer implements ListCellRenderer<TemplatePresentation> {
private final ListCellRenderer<TemplatePresentation> delegateRenderer =
SimpleListCellRenderer.create((@NotNull JBLabel label, TemplatePresentation value, int index) -> {