1212import com .magento .idea .magento2plugin .actions .generation .OverrideClassByAPreferenceAction ;
1313import com .magento .idea .magento2plugin .actions .generation .data .PreferenceDiXmFileData ;
1414import com .magento .idea .magento2plugin .actions .generation .data .PreferenceFileData ;
15- import com .magento .idea .magento2plugin .actions .generation .dialog .validator .OverrideClassByAPreferenceDialogValidator ;
15+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .annotation .FieldValidation ;
16+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .annotation .RuleRegistry ;
17+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .DirectoryRule ;
18+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .NotEmptyRule ;
19+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .PhpClassRule ;
1620import com .magento .idea .magento2plugin .actions .generation .generator .PreferenceClassGenerator ;
1721import com .magento .idea .magento2plugin .actions .generation .generator .PreferenceDiXmlGenerator ;
1822import com .magento .idea .magento2plugin .bundles .CommonBundle ;
2327import com .magento .idea .magento2plugin .magento .packages .Package ;
2428import com .magento .idea .magento2plugin .ui .FilteredComboBox ;
2529import java .awt .event .ActionEvent ;
26- import java .awt .event .ActionListener ;
2730import java .awt .event .KeyEvent ;
2831import java .awt .event .WindowAdapter ;
2932import java .awt .event .WindowEvent ;
@@ -44,23 +47,37 @@ public class OverrideClassByAPreferenceDialog extends AbstractDialog { //NOPMD
4447 @ NotNull
4548 private final Project project ;
4649 private final PhpClass targetClass ;
47- @ NotNull
48- private final OverrideClassByAPreferenceDialogValidator validator ;
4950 private JPanel contentPane ;
5051 private JButton buttonOK ;
5152 private JButton buttonCancel ;
52- private JTextField preferenceClassName ;
53- private JTextField preferenceDirectory ;
5453 private final CommonBundle commonBundle ;
5554 private final ValidatorBundle validatorBundle ;
56- private FilteredComboBox preferenceModule ;
5755 private JLabel inheritClassLabel ;
5856 private JComboBox preferenceArea ;
5957 private JCheckBox inheritClass ;
6058 private JLabel preferenceAreaLabel ;//NOPMD
6159 private JLabel selectPreferenceModule ;//NOPMD
6260 private JLabel preferenceDirectoryLabel ;//NOPMD
6361 private JLabel preferenceClassNameLabel ;//NOPMD
62+ private static final String MODULE = "target module" ;
63+ private static final String CLASS = "class name" ;
64+ private static final String DIRECTORY = "directory" ;
65+
66+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY ,
67+ message = {NotEmptyRule .MESSAGE , MODULE })
68+ private FilteredComboBox preferenceModule ;
69+
70+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY ,
71+ message = {NotEmptyRule .MESSAGE , CLASS })
72+ @ FieldValidation (rule = RuleRegistry .PHP_CLASS ,
73+ message = {PhpClassRule .MESSAGE , CLASS })
74+ private JTextField preferenceClassName ;
75+
76+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY ,
77+ message = {NotEmptyRule .MESSAGE , DIRECTORY })
78+ @ FieldValidation (rule = RuleRegistry .DIRECTORY ,
79+ message = {DirectoryRule .MESSAGE , DIRECTORY })
80+ private JTextField preferenceDirectory ;
6481
6582 /**
6683 * Constructor.
@@ -76,7 +93,6 @@ public OverrideClassByAPreferenceDialog(
7693
7794 this .project = project ;
7895 this .targetClass = targetClass ;
79- this .validator = OverrideClassByAPreferenceDialogValidator .getInstance (this );
8096 this .validatorBundle = new ValidatorBundle ();
8197 this .commonBundle = new CommonBundle ();
8298
@@ -91,19 +107,8 @@ public OverrideClassByAPreferenceDialog(
91107 suggestPreferenceClassName (targetClass );
92108 suggestPreferenceDirectory (targetClass );
93109
94- buttonOK .addActionListener (new ActionListener () {
95- @ Override
96- public void actionPerformed (final ActionEvent event ) {
97- onOK ();
98- }
99- });
100-
101- buttonCancel .addActionListener (new ActionListener () {
102- @ Override
103- public void actionPerformed (final ActionEvent event ) {
104- onCancel ();
105- }
106- });
110+ buttonOK .addActionListener ((final ActionEvent event ) -> onOK ());
111+ buttonCancel .addActionListener ((final ActionEvent event ) -> onCancel ());
107112
108113 setDefaultCloseOperation (DO_NOTHING_ON_CLOSE );
109114 addWindowListener (new WindowAdapter () {
@@ -113,13 +118,11 @@ public void windowClosing(final WindowEvent event) {
113118 }
114119 });
115120
116- contentPane .registerKeyboardAction (new ActionListener () {
117- @ Override
118- public void actionPerformed (final ActionEvent event ) {
119- onCancel ();
120- }
121- }, KeyStroke .getKeyStroke (KeyEvent .VK_ESCAPE , 0 ),
122- JComponent .WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
121+ contentPane .registerKeyboardAction (
122+ (final ActionEvent event ) -> onCancel (),
123+ KeyStroke .getKeyStroke (KeyEvent .VK_ESCAPE , 0 ),
124+ JComponent .WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
125+ );
123126 }
124127
125128 private void suggestPreferenceDirectory (final PhpClass targetClass ) {
@@ -148,7 +151,7 @@ private void fillTargetAreaOptions() {
148151 }
149152
150153 protected void onOK () {
151- if (!validator . validate ( project )) {
154+ if (!validateFormFields ( )) {
152155 return ;
153156 }
154157 final PsiFile diXml = new PreferenceDiXmlGenerator (new PreferenceDiXmFileData (
@@ -184,7 +187,6 @@ protected void onOK() {
184187 isInheritClass ()
185188 ), project ).generate (OverrideClassByAPreferenceAction .ACTION_NAME , true );
186189
187-
188190 this .setVisible (false );
189191 }
190192
0 commit comments