From 512b02124d2309b6f1599ebefc53a8a34a9dc54e Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Thu, 22 Oct 2020 01:21:53 +0530 Subject: [PATCH 1/3] Changed validator for OverrideInThemeDialog --- .../dialog/OverrideInThemeDialog.java | 39 ++++------ .../OverrideInThemeDialogValidator.java | 73 ------------------- 2 files changed, 15 insertions(+), 97 deletions(-) delete mode 100644 src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/OverrideInThemeDialogValidator.java diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java index af1167ed5..c98d50931 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java @@ -8,7 +8,9 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.psi.PsiFile; -import com.magento.idea.magento2plugin.actions.generation.dialog.validator.OverrideInThemeDialogValidator; +import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.FieldValidation; +import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.RuleRegistry; +import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule; import com.magento.idea.magento2plugin.actions.generation.generator.OverrideInThemeGenerator; import com.magento.idea.magento2plugin.indexes.ModuleIndex; import com.magento.idea.magento2plugin.ui.FilteredComboBox; @@ -29,12 +31,14 @@ public class OverrideInThemeDialog extends AbstractDialog { @NotNull private final Project project; private final PsiFile psiFile; - @NotNull - private final OverrideInThemeDialogValidator validator; private JPanel contentPane; private JButton buttonOK; private JButton buttonCancel; private JLabel selectTheme; //NOPMD + private static final String THEME_NAME = "target theme"; + + @FieldValidation(rule = RuleRegistry.NOT_EMPTY, + message = {NotEmptyRule.MESSAGE, THEME_NAME}) private FilteredComboBox theme; /** @@ -48,23 +52,13 @@ public OverrideInThemeDialog(final @NotNull Project project, final PsiFile psiFi this.project = project; this.psiFile = psiFile; - this.validator = new OverrideInThemeDialogValidator(this); setContentPane(contentPane); setModal(true); getRootPane().setDefaultButton(buttonOK); - buttonOK.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent event) { - onOK(); //NOPMD - } - }); - - buttonCancel.addActionListener(new ActionListener() { - public void actionPerformed(final ActionEvent event) { - onCancel(); - } - }); + buttonOK.addActionListener((final ActionEvent event) -> onOK()); + buttonCancel.addActionListener((final ActionEvent event) -> onCancel()); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @@ -73,18 +67,15 @@ public void windowClosing(final WindowEvent event) { } }); - contentPane.registerKeyboardAction(new ActionListener() { - public void actionPerformed(final ActionEvent event) { - onCancel(); - } - }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), - JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + contentPane.registerKeyboardAction( + (final ActionEvent event) -> onCancel(), + KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT + ); } private void onOK() { - if (!validator.validate(project)) { - JBPopupFactory.getInstance().createMessage("Invalid theme selection.") - .showCenteredInCurrentWindow(project); + if (!validateFormFields()) { return; } diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/OverrideInThemeDialogValidator.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/OverrideInThemeDialogValidator.java deleted file mode 100644 index 9435b1a07..000000000 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/OverrideInThemeDialogValidator.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -package com.magento.idea.magento2plugin.actions.generation.dialog.validator; - -import com.intellij.openapi.project.Project; -import com.magento.idea.magento2plugin.actions.generation.dialog.OverrideInThemeDialog; -import com.magento.idea.magento2plugin.bundles.CommonBundle; -import com.magento.idea.magento2plugin.bundles.ValidatorBundle; -import com.magento.idea.magento2plugin.indexes.ModuleIndex; -import java.util.List; -import javax.swing.JOptionPane; - -public class OverrideInThemeDialogValidator { - private final ValidatorBundle validatorBundle; - private final CommonBundle commonBundle; - private final OverrideInThemeDialog dialog; - - /** - * Constructor. - * - * @param dialog OverrideInThemeDialog - */ - public OverrideInThemeDialogValidator(final OverrideInThemeDialog dialog) { - this.dialog = dialog; - this.validatorBundle = new ValidatorBundle(); - this.commonBundle = new CommonBundle(); - } - - /** - * Validate dialog. - * - * @param project Project - * @return boolean - */ - public boolean validate(final Project project) { - final String errorTitle = commonBundle.message("common.error"); - - final String theme = dialog.getTheme(); - if (theme.length() == 0) { - final String errorMessage = validatorBundle.message( - "validator.notEmpty", - "Target Theme" - ); - JOptionPane.showMessageDialog( - null, - errorMessage, - errorTitle, - JOptionPane.ERROR_MESSAGE - ); - - return false; - } - - final List allThemesList = ModuleIndex.getInstance(project).getEditableThemeNames(); - if (!allThemesList.contains(theme)) { - final String errorMessage = validatorBundle - .message("validator.module.noSuchModule", theme); - JOptionPane.showMessageDialog( - null, - errorMessage, - errorTitle, - JOptionPane.ERROR_MESSAGE - ); - - return false; - } - - return true; - } -} From e3df4d3d6ac8c00bc0971a6061402583942dc134 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Thu, 22 Oct 2020 01:43:50 +0530 Subject: [PATCH 2/3] Fixed static test failures --- .../actions/generation/dialog/OverrideInThemeDialog.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java index c98d50931..3df620b93 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java @@ -6,7 +6,6 @@ package com.magento.idea.magento2plugin.actions.generation.dialog; import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.psi.PsiFile; import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.FieldValidation; import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.RuleRegistry; @@ -15,7 +14,6 @@ import com.magento.idea.magento2plugin.indexes.ModuleIndex; import com.magento.idea.magento2plugin.ui.FilteredComboBox; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; From 0f65e535935065b62411ae17d8d5c445515c29a1 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Fri, 23 Oct 2020 01:39:12 +0530 Subject: [PATCH 3/3] Changed FilteredComboBox to JComboBox --- .../actions/generation/dialog/OverrideInTheme.form | 2 +- .../generation/dialog/OverrideInThemeDialog.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInTheme.form b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInTheme.form index a0ea214a0..2364a0712 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInTheme.form +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInTheme.form @@ -72,7 +72,7 @@ - + diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java index 3df620b93..310c4559b 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/OverrideInThemeDialog.java @@ -12,13 +12,13 @@ import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule; import com.magento.idea.magento2plugin.actions.generation.generator.OverrideInThemeGenerator; import com.magento.idea.magento2plugin.indexes.ModuleIndex; -import com.magento.idea.magento2plugin.ui.FilteredComboBox; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.List; import javax.swing.JButton; +import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; @@ -37,7 +37,7 @@ public class OverrideInThemeDialog extends AbstractDialog { @FieldValidation(rule = RuleRegistry.NOT_EMPTY, message = {NotEmptyRule.MESSAGE, THEME_NAME}) - private FilteredComboBox theme; + private JComboBox theme; /** * Constructor. @@ -54,6 +54,7 @@ public OverrideInThemeDialog(final @NotNull Project project, final PsiFile psiFi setContentPane(contentPane); setModal(true); getRootPane().setDefaultButton(buttonOK); + fillThemeOptions(); buttonOK.addActionListener((final ActionEvent event) -> onOK()); buttonCancel.addActionListener((final ActionEvent event) -> onCancel()); @@ -101,9 +102,10 @@ public static void open(final @NotNull Project project, final PsiFile psiFile) { dialog.setVisible(true); } - private void createUIComponents() { //NOPMD - final List allThemesList = ModuleIndex.getInstance(project).getEditableThemeNames(); - - this.theme = new FilteredComboBox(allThemesList); + private void fillThemeOptions() { + final List themeNames = ModuleIndex.getInstance(project).getEditableThemeNames(); + for (final String themeName: themeNames) { + theme.addItem(themeName); + } } }