Skip to content

Commit 2e1a9f5

Browse files
authored
Merge pull request #326 from drpayyne/issue-304
Changed validator for OverrideInThemeDialog
2 parents edc0e82 + 8bd0d09 commit 2e1a9f5

File tree

3 files changed

+24
-106
lines changed

3 files changed

+24
-106
lines changed

src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInTheme.form

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
<text resource-bundle="magento2/common" key="common.theme.target"/>
7373
</properties>
7474
</component>
75-
<component id="bd654" class="com.magento.idea.magento2plugin.ui.FilteredComboBox" binding="theme" custom-create="true">
75+
<component id="bd654" class="javax.swing.JComboBox" binding="theme">
7676
<constraints>
7777
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false">
7878
<preferred-size width="319" height="30"/>

src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java

Lines changed: 23 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66
package com.magento.idea.magento2plugin.actions.generation.dialog;
77

88
import com.intellij.openapi.project.Project;
9-
import com.intellij.openapi.ui.popup.JBPopupFactory;
109
import com.intellij.psi.PsiFile;
11-
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.OverrideInThemeDialogValidator;
10+
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.FieldValidation;
11+
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.RuleRegistry;
12+
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule;
1213
import com.magento.idea.magento2plugin.actions.generation.generator.OverrideInThemeGenerator;
1314
import com.magento.idea.magento2plugin.indexes.ModuleIndex;
14-
import com.magento.idea.magento2plugin.ui.FilteredComboBox;
1515
import java.awt.event.ActionEvent;
16-
import java.awt.event.ActionListener;
1716
import java.awt.event.KeyEvent;
1817
import java.awt.event.WindowAdapter;
1918
import java.awt.event.WindowEvent;
2019
import java.util.List;
2120
import javax.swing.JButton;
21+
import javax.swing.JComboBox;
2222
import javax.swing.JComponent;
2323
import javax.swing.JLabel;
2424
import javax.swing.JPanel;
@@ -29,13 +29,15 @@ public class OverrideInThemeDialog extends AbstractDialog {
2929
@NotNull
3030
private final Project project;
3131
private final PsiFile psiFile;
32-
@NotNull
33-
private final OverrideInThemeDialogValidator validator;
3432
private JPanel contentPane;
3533
private JButton buttonOK;
3634
private JButton buttonCancel;
3735
private JLabel selectTheme; //NOPMD
38-
private FilteredComboBox theme;
36+
private static final String THEME_NAME = "target theme";
37+
38+
@FieldValidation(rule = RuleRegistry.NOT_EMPTY,
39+
message = {NotEmptyRule.MESSAGE, THEME_NAME})
40+
private JComboBox theme;
3941

4042
/**
4143
* Constructor.
@@ -48,23 +50,14 @@ public OverrideInThemeDialog(final @NotNull Project project, final PsiFile psiFi
4850

4951
this.project = project;
5052
this.psiFile = psiFile;
51-
this.validator = new OverrideInThemeDialogValidator(this);
5253

5354
setContentPane(contentPane);
5455
setModal(true);
5556
getRootPane().setDefaultButton(buttonOK);
57+
fillThemeOptions();
5658

57-
buttonOK.addActionListener(new ActionListener() {
58-
public void actionPerformed(final ActionEvent event) {
59-
onOK(); //NOPMD
60-
}
61-
});
62-
63-
buttonCancel.addActionListener(new ActionListener() {
64-
public void actionPerformed(final ActionEvent event) {
65-
onCancel();
66-
}
67-
});
59+
buttonOK.addActionListener((final ActionEvent event) -> onOK());
60+
buttonCancel.addActionListener((final ActionEvent event) -> onCancel());
6861

6962
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
7063
addWindowListener(new WindowAdapter() {
@@ -73,18 +66,15 @@ public void windowClosing(final WindowEvent event) {
7366
}
7467
});
7568

76-
contentPane.registerKeyboardAction(new ActionListener() {
77-
public void actionPerformed(final ActionEvent event) {
78-
onCancel();
79-
}
80-
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
81-
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
69+
contentPane.registerKeyboardAction(
70+
(final ActionEvent event) -> onCancel(),
71+
KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
72+
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
73+
);
8274
}
8375

8476
private void onOK() {
85-
if (!validator.validate(project)) {
86-
JBPopupFactory.getInstance().createMessage("Invalid theme selection.")
87-
.showCenteredInCurrentWindow(project);
77+
if (!validateFormFields()) {
8878
return;
8979
}
9080

@@ -112,9 +102,10 @@ public static void open(final @NotNull Project project, final PsiFile psiFile) {
112102
dialog.setVisible(true);
113103
}
114104

115-
private void createUIComponents() { //NOPMD
116-
final List<String> allThemesList = ModuleIndex.getInstance(project).getEditableThemeNames();
117-
118-
this.theme = new FilteredComboBox(allThemesList);
105+
private void fillThemeOptions() {
106+
final List<String> themeNames = ModuleIndex.getInstance(project).getEditableThemeNames();
107+
for (final String themeName: themeNames) {
108+
theme.addItem(themeName);
109+
}
119110
}
120111
}

src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/OverrideInThemeDialogValidator.java

Lines changed: 0 additions & 73 deletions
This file was deleted.

0 commit comments

Comments
 (0)