Skip to content

Commit 899b3f9

Browse files
Added category dialog and generation, refactored code
1 parent 6686d97 commit 899b3f9

File tree

9 files changed

+438
-19
lines changed

9 files changed

+438
-19
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#if(${INCLUDE_FIELDSET})
2+
<fieldset name="${FIELDSET_NAME}">
3+
#end
4+
<field name="${FIELD_NAME}" sortOrder="${SORT_ORDER}" formElement="${FORM_ELEMENT}"/>
5+
#if(${INCLUDE_FIELDSET})
6+
</fieldset>
7+
#end
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0"?>
2+
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
4+
</form>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*
5+
*/
6+
7+
package com.magento.idea.magento2plugin.actions.generation.data;
8+
9+
import org.jetbrains.annotations.NotNull;
10+
11+
public class CategoryFormXmlData {
12+
private final String fieldSetName;
13+
private final String fieldName;
14+
private final String attributeInput;
15+
private final int sortOrder;
16+
17+
public CategoryFormXmlData(
18+
@NotNull final String fieldSetName,
19+
@NotNull final String fieldName,
20+
@NotNull final String attributeInput,
21+
@NotNull final int sortOrder
22+
) {
23+
this.fieldSetName = fieldSetName;
24+
this.fieldName = fieldName;
25+
this.attributeInput = attributeInput;
26+
this.sortOrder = sortOrder;
27+
}
28+
29+
public String getFieldSetName() {
30+
return fieldSetName;
31+
}
32+
33+
public String getFieldName() {
34+
return fieldName;
35+
}
36+
37+
public int getSortOrder() {
38+
return sortOrder;
39+
}
40+
41+
public String getAttributeInput() {
42+
return attributeInput;
43+
}
44+
}

src/com/magento/idea/magento2plugin/actions/generation/dialog/NewCategoryEavAttributeDialog.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.intellij.openapi.project.Project;
44
import com.intellij.psi.PsiDirectory;
55
import com.magento.idea.magento2plugin.actions.generation.data.CategoryEntityData;
6+
import com.magento.idea.magento2plugin.actions.generation.data.CategoryFormXmlData;
67
import com.magento.idea.magento2plugin.actions.generation.data.EavEntityDataInterface;
78
import com.magento.idea.magento2plugin.actions.generation.data.ui.ComboBoxItemData;
89
import com.magento.idea.magento2plugin.actions.generation.dialog.eavattribute.EavAttributeDialog;
@@ -11,6 +12,7 @@
1112
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.RuleRegistry;
1213
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.Lowercase;
1314
import com.magento.idea.magento2plugin.actions.generation.dialog.validator.rule.NotEmptyRule;
15+
import com.magento.idea.magento2plugin.actions.generation.generator.CategoryFormXmlGenerator;
1416
import com.magento.idea.magento2plugin.magento.packages.eav.AttributeScope;
1517
import javax.swing.JButton;
1618
import javax.swing.JCheckBox;
@@ -27,7 +29,7 @@
2729
})
2830
public class NewCategoryEavAttributeDialog extends EavAttributeDialog {
2931

30-
private final static String ENTITY_NAME = "Category";
32+
private static final String ENTITY_NAME = "Category";
3133
private JPanel contentPanel;
3234
private JButton buttonOK;
3335
private JButton buttonCancel;
@@ -204,7 +206,9 @@ protected EavEntityDataInterface getEavEntityData() {
204206
return populateCategoryEntityData(new CategoryEntityData());
205207
}
206208

207-
private CategoryEntityData populateCategoryEntityData(final CategoryEntityData categoryEntityData) {
209+
private CategoryEntityData populateCategoryEntityData(
210+
final CategoryEntityData categoryEntityData
211+
) {
208212
categoryEntityData.setModuleName(moduleName);
209213

210214
categoryEntityData.setDataPatchName(getDataPatchName());
@@ -232,4 +236,33 @@ private CategoryEntityData populateCategoryEntityData(final CategoryEntityData c
232236

233237
return categoryEntityData;
234238
}
239+
240+
@Override
241+
protected void generateExtraFilesAfterDataPatchGeneration(
242+
final EavEntityDataInterface eavEntityDataInterface
243+
) {
244+
super.generateExtraFilesAfterDataPatchGeneration(eavEntityDataInterface);
245+
generateCategoryAdminForm((CategoryEntityData) eavEntityDataInterface);
246+
}
247+
248+
private void generateCategoryAdminForm(final CategoryEntityData categoryEntityData) {
249+
final CategoryFormXmlData categoryFormXmlData = new CategoryFormXmlData(
250+
convertGroupNameToFieldSet(categoryEntityData.getGroup()),
251+
categoryEntityData.getCode(),
252+
categoryEntityData.getInput(),
253+
categoryEntityData.getSortOrder()
254+
);
255+
256+
new CategoryFormXmlGenerator(
257+
categoryFormXmlData,
258+
project,
259+
moduleName
260+
).generate(actionName, false);
261+
}
262+
263+
private String convertGroupNameToFieldSet(final String groupName) {
264+
final String[] nameParts = groupName.toLowerCase().split(" ");//NOPMD
265+
266+
return String.join("_", nameParts);
267+
}
235268
}

src/com/magento/idea/magento2plugin/actions/generation/dialog/eavattribute/EavAttributeDialog.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
import javax.swing.KeyStroke;
4545

4646
@SuppressWarnings({"PMD.GodClass", "PMD.TooManyMethods"})
47-
public abstract class EavAttributeDialog extends AbstractDialog {
47+
public abstract class EavAttributeDialog extends AbstractDialog {
4848

4949
protected String moduleName;
5050
protected Project project;
@@ -245,8 +245,11 @@ protected void onOk() {
245245
return;
246246
}
247247

248-
generateSourceModelFile();
249-
generateDataPatchFile();
248+
generateExtraFilesBeforeDataPatchGeneration();
249+
250+
final EavEntityDataInterface eavEntityDataInterface = getEavEntityData();
251+
generateDataPatchFile(eavEntityDataInterface);
252+
generateExtraFilesAfterDataPatchGeneration(eavEntityDataInterface);
250253

251254
setVisible(false);
252255
}
@@ -270,14 +273,22 @@ protected void generateSourceModelFile() {
270273
.generate(actionName, false);
271274
}
272275

273-
protected void generateDataPatchFile() {
276+
protected void generateDataPatchFile(final EavEntityDataInterface eavEntityDataInterface) {
274277
new EavAttributeSetupPatchGenerator(
275-
getEavEntityData(),
278+
eavEntityDataInterface,
276279
project,
277280
true
278281
).generate(actionName, true);
279282
}
280283

284+
protected void generateExtraFilesBeforeDataPatchGeneration() {
285+
generateSourceModelFile();
286+
}
287+
288+
protected void generateExtraFilesAfterDataPatchGeneration(
289+
final EavEntityDataInterface eavEntityDataInterface
290+
) {}
291+
281292
protected void addCancelActionForWindow() {
282293
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
283294
addWindowListener(new WindowAdapter() {
@@ -443,23 +454,23 @@ protected boolean isVisibleAttribute() {
443454
}
444455

445456
protected String getAttributeBackendType() {
446-
final JComboBox typeComboBox = getAttributeTypeCompoBox();
457+
final JComboBox<ComboBoxItemData> typeComboBox = getAttributeTypeCompoBox();
447458

448459
return AttributeUtil.getBackendTypeBySelectedItem(
449460
(ComboBoxItemData) typeComboBox.getSelectedItem()
450461
);
451462
}
452463

453464
protected String getAttributeInput() {
454-
final JComboBox inputComboBox = getAttributeInputComboBox();
465+
final JComboBox<ComboBoxItemData> inputComboBox = getAttributeInputComboBox();
455466

456467
return AttributeUtil.getInputTypeBySelectedItem(
457468
(ComboBoxItemData) inputComboBox.getSelectedItem()
458469
);
459470
}
460471

461472
protected String getAttributeSource(final SourceModelData sourceModelData) {
462-
final JComboBox sourceComboBox = getAttributeSourceComboBox();
473+
final JComboBox<ComboBoxItemData> sourceComboBox = getAttributeSourceComboBox();
463474

464475
return AttributeUtil.getSourceClassBySelectedItem(
465476
(ComboBoxItemData) sourceComboBox.getSelectedItem(),

0 commit comments

Comments
 (0)