mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[spring] IDEA-352691 Add menu item to create Spring bean in the New menu group
GitOrigin-RevId: 75cb33497ff44f3bde9117321c956c98159f18dd
This commit is contained in:
committed by
intellij-monorepo-bot
parent
20adc794cc
commit
49bca52ac5
@@ -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;
|
||||
|
||||
+22
-19
@@ -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) -> {
|
||||
|
||||
Reference in New Issue
Block a user