Skip to content

Commit f58461d

Browse files
author
m.mezhensky
committed
#186: Extend the new Magento 2 module generation with the ability to set module sequence(s).
1 parent b0db9cf commit f58461d

File tree

5 files changed

+41
-1
lines changed

5 files changed

+41
-1
lines changed

src/com/magento/idea/magento2plugin/actions/generation/data/ModuleXmlData.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,26 @@
66

77
import com.intellij.psi.PsiDirectory;
88

9+
import java.util.List;
10+
911
public class ModuleXmlData {
1012
private final String packageName;
1113
private final String moduleName;
1214
private PsiDirectory baseDir;
15+
private final List<String> moduleDependencies;
1316
private boolean createModuleDirs;
1417

1518
public ModuleXmlData(
1619
String packageName,
1720
String moduleName,
1821
PsiDirectory baseDir,
22+
List<String> moduleDependencies,
1923
boolean createModuleDirs
2024
) {
2125
this.packageName = packageName;
2226
this.moduleName = moduleName;
2327
this.baseDir = baseDir;
28+
this.moduleDependencies = moduleDependencies;
2429
this.createModuleDirs = createModuleDirs;
2530
}
2631

@@ -36,6 +41,10 @@ public PsiDirectory getBaseDir() {
3641
return this.baseDir;
3742
}
3843

44+
public List<String> getModuleDependencies() {
45+
return moduleDependencies;
46+
}
47+
3948
public boolean getCreateModuleDirs() {
4049
return this.createModuleDirs;
4150
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ private void generateModuleXml() {
188188
getPackageName(),
189189
getModuleName(),
190190
getBaseDir(),
191+
getModuleDependencies(),
191192
true
192193
), project).generate(NewModuleAction.actionName, true);
193194
}

src/com/magento/idea/magento2plugin/actions/generation/generator/ModuleXmlGenerator.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import com.magento.idea.magento2plugin.actions.generation.generator.util.FileFromTemplateGenerator;
1515
import com.magento.idea.magento2plugin.magento.files.ModuleXml;
1616
import com.magento.idea.magento2plugin.magento.packages.Package;
17-
import java.util.Properties;
1817
import org.jetbrains.annotations.NotNull;
1918

19+
import java.util.List;
20+
import java.util.Properties;
21+
2022
public class ModuleXmlGenerator extends FileGenerator {
2123

2224
private final ModuleXmlData moduleXmlData;
@@ -70,5 +72,23 @@ public PsiFile generate(final String actionName) {
7072
protected void fillAttributes(final Properties attributes) {
7173
attributes.setProperty("PACKAGE", moduleXmlData.getPackageName());
7274
attributes.setProperty("MODULE_NAME", moduleXmlData.getModuleName());
75+
attributes.setProperty("SEQUENCES", this.getDependenciesString(moduleXmlData.getModuleDependencies()));
76+
}
77+
78+
private String getDependenciesString(List dependenciesList) {
79+
String result = "";
80+
Object[] dependencies = dependenciesList.toArray();
81+
boolean noDependency = dependencies.length == 1 && dependencies[0].equals(ModuleXml.NO_DEPENDENCY_LABEL);
82+
83+
if (noDependency) {
84+
return result;
85+
}
86+
87+
for (int i = 0; i < dependencies.length; i++) {
88+
String dependency = dependencies[i].toString();
89+
result = result.concat("<module name=\"" + dependency + "\"/>");
90+
}
91+
92+
return result;
7393
}
7494
}

src/com/magento/idea/magento2plugin/generation/php/MagentoModuleGenerator.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
*/
55
package com.magento.idea.magento2plugin.generation.php;
66

7+
import com.google.gson.JsonElement;
8+
import com.google.gson.JsonParser;
79
import com.intellij.ide.util.projectWizard.WebProjectTemplate;
810
import com.intellij.openapi.application.ApplicationManager;
911
import com.intellij.openapi.module.Module;
1012
import com.intellij.openapi.project.Project;
1113
import com.intellij.openapi.startup.StartupManager;
14+
import com.intellij.openapi.util.Pair;
1215
import com.intellij.openapi.vfs.VirtualFile;
1316
import com.intellij.platform.ProjectGeneratorPeer;
1417
import com.intellij.psi.PsiDirectory;
@@ -24,11 +27,16 @@
2427
import com.magento.idea.magento2plugin.actions.generation.generator.ModuleRegistrationPhpGenerator;
2528
import com.magento.idea.magento2plugin.actions.generation.generator.ModuleXmlGenerator;
2629
import com.magento.idea.magento2plugin.init.ConfigurationManager;
30+
import com.magento.idea.magento2plugin.magento.files.ComposerJson;
2731
import com.magento.idea.magento2plugin.project.Settings;
2832
import org.jetbrains.annotations.Nls;
2933
import org.jetbrains.annotations.NotNull;
3034
import org.jetbrains.annotations.Nullable;
35+
36+
import java.io.FileNotFoundException;
37+
import java.io.FileReader;
3138
import java.util.ArrayList;
39+
import java.util.List;
3240

3341
public class MagentoModuleGenerator extends WebProjectTemplate<MagentoProjectGeneratorSettings> {
3442
public static String ACTION_NAME = "Magento 2 Module";
@@ -107,6 +115,7 @@ private void generateModuleXml(@NotNull Project project, @NotNull PsiDirectory b
107115
settings.getPackageName(),
108116
settings.getModuleName(),
109117
baseDir,
118+
new ArrayList<>(),
110119
false
111120
);
112121
ModuleXmlGenerator moduleXmlGenerator = new ModuleXmlGenerator(moduleXmlData, project);

src/com/magento/idea/magento2plugin/magento/files/ModuleXml.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class ModuleXml implements ModuleFileInterface {
1111
public static String FILE_NAME = "module.xml";
1212
public static String MODULE_ATTR_NAME = "name";
1313
public static String TEMPLATE = "Magento Module Xml";
14+
public static String NO_DEPENDENCY_LABEL = "None";
1415
private static ModuleXml INSTANCE = null;
1516

1617
public static ModuleXml getInstance() {

0 commit comments

Comments
 (0)