From aee4ae0fa9827e5ed900447cdf5abbf7d7fd6862 Mon Sep 17 00:00:00 2001 From: Adarsh Manickam Date: Fri, 23 Oct 2020 16:19:33 +0530 Subject: [PATCH] Changed validator for NewCronGroupDialog --- .../generation/dialog/NewCronGroupDialog.java | 20 +++- .../validator/NewCronGroupValidator.java | 93 ------------------- 2 files changed, 15 insertions(+), 98 deletions(-) delete mode 100644 src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/NewCronGroupValidator.java diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewCronGroupDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewCronGroupDialog.java index 1c29cc2d3..5c03b0217 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewCronGroupDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewCronGroupDialog.java @@ -9,7 +9,10 @@ import com.intellij.psi.PsiDirectory; import com.magento.idea.magento2plugin.actions.generation.NewCronGroupAction; import com.magento.idea.magento2plugin.actions.generation.data.CronGroupXmlData; -import com.magento.idea.magento2plugin.actions.generation.dialog.validator.NewCronGroupValidator; +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.IdentifierRule; +import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule; import com.magento.idea.magento2plugin.actions.generation.generator.ModuleCronGroupXmlGenerator; import com.magento.idea.magento2plugin.ui.FilteredComboBox; import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil; @@ -30,16 +33,23 @@ @SuppressWarnings({ "PMD.TooManyFields", - "PMD.TooManyMethods" + "PMD.TooManyMethods", + "PMD.ExcessiveImports," }) public class NewCronGroupDialog extends AbstractDialog { - private final NewCronGroupValidator validator; private final String moduleName; private final Project project; private JPanel contentPanel; private JButton buttonOK; private JButton buttonCancel; + private static final String NAME = "name"; + + @FieldValidation(rule = RuleRegistry.NOT_EMPTY, + message = {NotEmptyRule.MESSAGE, NAME}) + @FieldValidation(rule = RuleRegistry.IDENTIFIER, + message = {IdentifierRule.MESSAGE, NAME}) private JTextField cronGroupName; + private JSpinner scheduleGenerateEvery; private JSpinner scheduleAheadFor; private JSpinner scheduleLifetime; @@ -67,7 +77,6 @@ public NewCronGroupDialog(final Project project, final PsiDirectory directory) { setContentPane(contentPanel); setModal(true); getRootPane().setDefaultButton(buttonOK); - this.validator = NewCronGroupValidator.getInstance(); this.moduleName = GetModuleNameByDirectoryUtil.execute(directory, project); buttonOK.addActionListener(event -> onOK()); @@ -125,7 +134,7 @@ public static void open(final Project project, final PsiDirectory directory) { } private void onOK() { - if (!validator.validate(this)) { + if (!validateFormFields()) { return; } @@ -133,6 +142,7 @@ private void onOK() { this.setVisible(false); } + @Override protected void onCancel() { dispose(); } diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/NewCronGroupValidator.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/NewCronGroupValidator.java deleted file mode 100644 index 41d46b0ce..000000000 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/validator/NewCronGroupValidator.java +++ /dev/null @@ -1,93 +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.magento.idea.magento2plugin.actions.generation.data.CronGroupXmlData; -import com.magento.idea.magento2plugin.actions.generation.dialog.NewCronGroupDialog; -import com.magento.idea.magento2plugin.bundles.CommonBundle; -import com.magento.idea.magento2plugin.bundles.ValidatorBundle; -import com.magento.idea.magento2plugin.util.RegExUtil; -import javax.swing.JOptionPane; - -@SuppressWarnings({"PMD.OnlyOneReturn", "PMD.NonThreadSafeSingleton"}) -public class NewCronGroupValidator { - private static NewCronGroupValidator instance; - private final ValidatorBundle validatorBundle; - private final CommonBundle commonBundle; - - /** - * Get instance of a class. - * - * @return NewCronGroupValidator - */ - public static NewCronGroupValidator getInstance() { - if (null == instance) { - instance = new NewCronGroupValidator(); - } - - return instance; - } - - /** - * New CRON group validator constructor. - */ - public NewCronGroupValidator() { - this.validatorBundle = new ValidatorBundle(); - this.commonBundle = new CommonBundle(); - } - - /** - * Validate whenever new CRON group dialog data is ready for generation. - * - * @param dialog Cron Group Dialog - * @return boolean - */ - public boolean validate(final NewCronGroupDialog dialog) { - final CronGroupXmlData cronGroupXmlData = dialog.getCronGroupXmlData(); - - return this.isGroupNameValid(cronGroupXmlData); - } - - private boolean isGroupNameValid(final CronGroupXmlData cronGroupXmlData) { - final String cronGroupName = cronGroupXmlData.getGroupName(); - - if (cronGroupName.length() == 0) { - final String errorMessage = validatorBundle.message( - "validator.notEmpty", - "Cron Group Name" - ); - JOptionPane.showMessageDialog( - null, - errorMessage, - getErrorTitle(), - JOptionPane.ERROR_MESSAGE - ); - - return false; - } - - if (!cronGroupName.matches(RegExUtil.IDENTIFIER)) { - final String errorMessage = validatorBundle.message( - "validator.identifier", - "Cron Group Name" - ); - JOptionPane.showMessageDialog( - null, - errorMessage, - getErrorTitle(), - JOptionPane.ERROR_MESSAGE - ); - - return false; - } - - return true; - } - - private String getErrorTitle() { - return commonBundle.message("common.error"); - } -}