3737import com .magento .idea .magento2plugin .actions .generation .data .UiComponentGridToolbarData ;
3838import com .magento .idea .magento2plugin .actions .generation .data .code .ClassPropertyData ;
3939import com .magento .idea .magento2plugin .actions .generation .data .ui .ComboBoxItemData ;
40+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .annotation .FieldValidation ;
41+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .annotation .RuleRegistry ;
42+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .AclResourceIdRule ;
43+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .IdentifierRule ;
44+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .MenuIdentifierRule ;
45+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .NotEmptyRule ;
46+ import com .magento .idea .magento2plugin .actions .generation .dialog .validator .rule .NumericRule ;
4047import com .magento .idea .magento2plugin .actions .generation .generator .AclXmlGenerator ;
4148import com .magento .idea .magento2plugin .actions .generation .generator .DataModelGenerator ;
4249import com .magento .idea .magento2plugin .actions .generation .generator .DataModelInterfaceGenerator ;
103110import javax .swing .JTabbedPane ;
104111import javax .swing .JTable ;
105112import javax .swing .JTextField ;
113+ import javax .swing .JTextPane ;
106114import javax .swing .KeyStroke ;
107115import javax .swing .table .DefaultTableModel ;
108116import org .apache .commons .lang .StringUtils ;
@@ -140,25 +148,18 @@ public class NewEntityDialog extends AbstractDialog {
140148 private JLabel entityIdColumnNameLabel ;
141149 private JTextField route ;
142150 private JLabel routeLabel ;
143- private JTextField acl ;
144151 private JLabel aclLabel ;
145152 private JTextField aclTitle ;
146153 private FilteredComboBox parentAcl ;
147- private JLabel formNameLabel ;
148- private JTextField formName ;
149154 private JTextField formLabel ;
150155 private JLabel formLabelLabel ;
151- private JTextField gridName ;
152156 private JLabel gridNameLabel ;
153157 private JLabel parentMenuItemLabel ;
154158 private JLabel sortOrderLabel ;
155159 private JLabel menuIdentifierLabel ;
156- private JTextField sortOrder ;
157- private JTextField menuIdentifier ;
158160 private JLabel menuTitleLabel ;
159161 private JTextField menuTitle ;
160162 private FilteredComboBox parentMenu ;
161- private JLabel formMenuLabel ;
162163 private JCheckBox addToolBar ;
163164 private JCheckBox addBookmarksCheckBox ;
164165 private JCheckBox addColumnsControlCheckBox ;
@@ -176,7 +177,36 @@ public class NewEntityDialog extends AbstractDialog {
176177 private static final String ACTION_NAME = "Create Entity" ;
177178 private static final String PROPERTY_NAME = "Name" ;
178179 private static final String PROPERTY_TYPE = "Type" ;
180+ private static final String ACL_ID = "ACL ID" ;
181+ private static final String FORM_NAME = "Form Name" ;
182+ private static final String GRID_NAME = "Grit Name" ;
183+ private static final String IDENTIFIER = "Identifier" ;
184+ private static final String SORT_ORDER = "Sort Order" ;
185+
186+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY , message = {NotEmptyRule .MESSAGE , FORM_NAME })
187+ @ FieldValidation (rule = RuleRegistry .IDENTIFIER , message = {IdentifierRule .MESSAGE })
188+ private JTextField formName ;
189+
190+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY , message = {NotEmptyRule .MESSAGE , GRID_NAME })
191+ @ FieldValidation (rule = RuleRegistry .IDENTIFIER , message = {IdentifierRule .MESSAGE })
192+ private JTextField gridName ;
179193
194+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY , message = {NotEmptyRule .MESSAGE , ACL_ID })
195+ @ FieldValidation (rule = RuleRegistry .ACL_RESOURCE_ID , message = {AclResourceIdRule .MESSAGE })
196+ private JTextField acl ;
197+
198+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY , message = {NotEmptyRule .MESSAGE , SORT_ORDER })
199+ @ FieldValidation (rule = RuleRegistry .NUMERIC , message = {NumericRule .MESSAGE })
200+ private JTextField sortOrder ;
201+
202+ @ FieldValidation (rule = RuleRegistry .NOT_EMPTY , message = {NotEmptyRule .MESSAGE , IDENTIFIER })
203+ @ FieldValidation (rule = RuleRegistry .MENU_IDENTIFIER , message = {MenuIdentifierRule .MESSAGE })
204+ private JTextField menuIdentifier ;
205+ private JLabel formNameLabel ;
206+ private JTextPane exampleIdentifier ;
207+ private JTextPane exampleAclId ;
208+ private JTextPane exampleFormName ;
209+ private JTextPane exampleGridName ;
180210 private JTextField observerName ;
181211
182212 /**
@@ -276,6 +306,10 @@ private DefaultTableModel getPropertiesTable() {
276306 * Perform code generation using input data.
277307 */
278308 private void onOK () {
309+ if (!validateFormFields ()) {
310+ return ;
311+ }
312+
279313 generateModelFile ();
280314 generateResourceModelFile ();
281315 generateCollectionFile ();
0 commit comments