1010import com .intellij .psi .PsiFile ;
1111import com .magento .idea .magento2plugin .actions .generation .NewGraphQlResolverAction ;
1212import com .magento .idea .magento2plugin .actions .generation .data .GraphQlResolverFileData ;
13- import com .magento .idea .magento2plugin .actions .generation .dialog .validator .NewGraphQlResolverValidator ;
13+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .annotation .FieldValidation ;
14+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .annotation .RuleRegistry ;
15+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .NotEmptyRule ;
16+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .PhpClassRule ;
17+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .PhpDirectoryRule ;
1418import com .magento .idea .magento2plugin .actions .generation .generator .ModuleGraphQlResolverClassGenerator ;
1519import com .magento .idea .magento2plugin .magento .files .GraphQlResolverPhp ;
1620import com .magento .idea .magento2plugin .magento .packages .File ;
1721import com .magento .idea .magento2plugin .magento .packages .Package ;
1822import com .magento .idea .magento2plugin .util .magento .GetModuleNameByDirectoryUtil ;
1923import java .awt .event .ActionEvent ;
20- import java .awt .event .ActionListener ;
2124import java .awt .event .KeyEvent ;
2225import java .awt .event .WindowAdapter ;
2326import java .awt .event .WindowEvent ;
2831import javax .swing .KeyStroke ;
2932
3033public class NewGraphQlResolverDialog extends AbstractDialog {
31- private final NewGraphQlResolverValidator validator ;
3234 private final PsiDirectory baseDir ;
3335 private final String moduleName ;
3436 private JPanel contentPanel ;
3537 private JButton buttonOK ;
3638 private JButton buttonCancel ;
39+ private final Project project ;
40+ private static final String CLASS_NAME = "class name" ;
41+ private static final String PARENT_DIRECTORY = "directory" ;
42+
43+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY ,
44+ message = {NotEmptyRule .MESSAGE , CLASS_NAME })
45+ @ FieldValidation (rule = RuleRegistry .PHP_CLASS ,
46+ message = {PhpClassRule .MESSAGE , CLASS_NAME })
3747 private JTextField graphQlResolverClassName ;
48+
49+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY ,
50+ message = {NotEmptyRule .MESSAGE , PARENT_DIRECTORY })
51+ @ FieldValidation (rule = RuleRegistry .PHP_DIRECTORY ,
52+ message = {PhpDirectoryRule .MESSAGE , PARENT_DIRECTORY })
3853 private JTextField graphQlResolverParentDir ;
39- private final Project project ;
4054
4155 /**
4256 * Constructor.
@@ -50,25 +64,15 @@ public NewGraphQlResolverDialog(final Project project, final PsiDirectory direct
5064 this .project = project ;
5165 this .baseDir = directory ;
5266 this .moduleName = GetModuleNameByDirectoryUtil .execute (directory , project );
53- this .validator = NewGraphQlResolverValidator .getInstance (this );
5467
5568 setContentPane (contentPanel );
5669 setModal (true );
5770 setTitle ("Create a new Magento 2 GraphQL Resolver." );
5871 getRootPane ().setDefaultButton (buttonOK );
5972 suggestGraphQlResolverDirectory ();
6073
61- buttonOK .addActionListener (new ActionListener () {
62- public void actionPerformed (final ActionEvent event ) {
63- onOK ();
64- }
65- });
66-
67- buttonCancel .addActionListener (new ActionListener () {
68- public void actionPerformed (final ActionEvent event ) {
69- onCancel ();
70- }
71- });
74+ buttonOK .addActionListener ((final ActionEvent event ) -> onOK ());
75+ buttonCancel .addActionListener ((final ActionEvent event ) -> onCancel ());
7276
7377 // call onCancel() when cross is clicked
7478 setDefaultCloseOperation (DO_NOTHING_ON_CLOSE );
@@ -79,12 +83,11 @@ public void windowClosing(final WindowEvent event) {
7983 });
8084
8185 // call onCancel() on ESCAPE
82- contentPanel .registerKeyboardAction (new ActionListener () {
83- public void actionPerformed (final ActionEvent event ) {
84- onCancel ();
85- }
86- }, KeyStroke .getKeyStroke (KeyEvent .VK_ESCAPE , 0 ),
87- JComponent .WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
86+ contentPanel .registerKeyboardAction (
87+ (final ActionEvent event ) -> onCancel (),
88+ KeyStroke .getKeyStroke (KeyEvent .VK_ESCAPE , 0 ),
89+ JComponent .WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
90+ );
8891 }
8992
9093 /**
@@ -101,7 +104,7 @@ public static void open(final Project project, final PsiDirectory directory) {
101104 }
102105
103106 protected void onOK () {
104- if (!validator . validate ()) {
107+ if (!validateFormFields ()) {
105108 return ;
106109 }
107110 generateFile ();
@@ -176,6 +179,7 @@ private String getGraphQlResolverClassFqn() {
176179 return getNamespace ().concat (Package .fqnSeparator ).concat (getGraphQlResolverClassName ());
177180 }
178181
182+ @ Override
179183 public void onCancel () {
180184 // add your code here if necessary
181185 dispose ();
0 commit comments