2
2
* Copyright © Magento, Inc. All rights reserved.
3
3
* See COPYING.txt for license details.
4
4
*/
5
+
5
6
package com .magento .idea .magento2plugin .generation .php ;
6
7
7
8
import com .intellij .ide .util .projectWizard .WebProjectTemplate ;
15
16
import com .intellij .psi .PsiFile ;
16
17
import com .intellij .psi .PsiManager ;
17
18
import com .intellij .util .PlatformUtils ;
18
- import javax .swing .Icon ;
19
19
import com .magento .idea .magento2plugin .MagentoIcons ;
20
20
import com .magento .idea .magento2plugin .actions .generation .data .ModuleComposerJsonData ;
21
21
import com .magento .idea .magento2plugin .actions .generation .data .ModuleRegistrationPhpData ;
25
25
import com .magento .idea .magento2plugin .actions .generation .generator .ModuleXmlGenerator ;
26
26
import com .magento .idea .magento2plugin .init .ConfigurationManager ;
27
27
import com .magento .idea .magento2plugin .project .Settings ;
28
+ import java .util .ArrayList ;
29
+ import javax .swing .Icon ;
28
30
import org .jetbrains .annotations .Nls ;
29
31
import org .jetbrains .annotations .NotNull ;
30
32
import org .jetbrains .annotations .Nullable ;
31
- import java . util . ArrayList ;
33
+
32
34
33
35
public class MagentoModuleGenerator extends WebProjectTemplate <MagentoProjectGeneratorSettings > {
34
36
public static String ACTION_NAME = "Magento 2 Module" ;
@@ -59,27 +61,56 @@ public boolean isPrimaryGenerator() {
59
61
return PlatformUtils .isPhpStorm ();
60
62
}
61
63
62
- public void generateProject (@ NotNull Project project , @ NotNull VirtualFile baseDir , @ NotNull MagentoProjectGeneratorSettings settings , @ NotNull Module module ) {
64
+ /**
65
+ * generateProject.
66
+ *
67
+ * @param project Project
68
+ * @param baseDir Base directory
69
+ * @param settings Settings
70
+ * @param module Module
71
+ */
72
+ public void generateProject (
73
+ @ NotNull Project project ,
74
+ @ NotNull VirtualFile baseDir ,
75
+ @ NotNull MagentoProjectGeneratorSettings settings ,
76
+ @ NotNull Module module
77
+ ) {
63
78
Settings dataService = Settings .getInstance (project );
64
79
dataService .setState (settings .getMagentoState ());
65
80
66
81
Runnable generate = () -> {
67
82
ApplicationManager .getApplication ().runWriteAction (() -> {
68
- PsiDirectory baseDirElement = PsiManager .getInstance (project ).findDirectory (baseDir );
83
+ PsiDirectory baseDirElement = PsiManager
84
+ .getInstance (project )
85
+ .findDirectory (baseDir );
69
86
if (baseDirElement == null ) {
70
87
return ;
71
88
}
72
89
73
90
generateComposerJson (project , baseDirElement , settings );
74
91
generateRegistrationPhp (project , baseDirElement , settings );
75
92
generateModuleXml (project , baseDirElement , settings );
76
- ConfigurationManager .getInstance ().refreshIncludePaths (dataService .getState (), project );
93
+ ConfigurationManager
94
+ .getInstance ()
95
+ .refreshIncludePaths (dataService .getState (), project );
77
96
});
78
97
};
79
98
StartupManager .getInstance (project ).runWhenProjectIsInitialized (generate );
80
99
}
81
100
82
- private PsiFile generateComposerJson (@ NotNull Project project , @ NotNull PsiDirectory baseDir , @ NotNull MagentoProjectGeneratorSettings settings ) {
101
+ /**
102
+ * generateComposerJson.
103
+ *
104
+ * @param project Project
105
+ * @param baseDir Base directory
106
+ * @param settings Settings
107
+ * @return
108
+ */
109
+ private PsiFile generateComposerJson (
110
+ @ NotNull Project project ,
111
+ @ NotNull PsiDirectory baseDir ,
112
+ @ NotNull MagentoProjectGeneratorSettings settings
113
+ ) {
83
114
return new ModuleComposerJsonGenerator (new ModuleComposerJsonData (
84
115
settings .getPackageName (),
85
116
settings .getModuleName (),
@@ -93,7 +124,18 @@ private PsiFile generateComposerJson(@NotNull Project project, @NotNull PsiDirec
93
124
), project ).generate (ACTION_NAME );
94
125
}
95
126
96
- private PsiFile generateRegistrationPhp (@ NotNull Project project , @ NotNull PsiDirectory baseDir , @ NotNull MagentoProjectGeneratorSettings settings ) {
127
+ /**
128
+ * generateRegistrationPhp.
129
+ * @param project Project
130
+ * @param baseDir Base directory
131
+ * @param settings Settings
132
+ * @return
133
+ */
134
+ private PsiFile generateRegistrationPhp (
135
+ @ NotNull Project project ,
136
+ @ NotNull PsiDirectory baseDir ,
137
+ @ NotNull MagentoProjectGeneratorSettings settings
138
+ ) {
97
139
return new ModuleRegistrationPhpGenerator (new ModuleRegistrationPhpData (
98
140
settings .getPackageName (),
99
141
settings .getModuleName (),
@@ -102,7 +144,18 @@ private PsiFile generateRegistrationPhp(@NotNull Project project, @NotNull PsiDi
102
144
), project ).generate (ACTION_NAME );
103
145
}
104
146
105
- private void generateModuleXml (@ NotNull Project project , @ NotNull PsiDirectory baseDir , @ NotNull MagentoProjectGeneratorSettings settings ) {
147
+ /**
148
+ * generateModuleXml.
149
+ *
150
+ * @param project Project
151
+ * @param baseDir Base directory
152
+ * @param settings Settings
153
+ */
154
+ private void generateModuleXml (
155
+ @ NotNull Project project ,
156
+ @ NotNull PsiDirectory baseDir ,
157
+ @ NotNull MagentoProjectGeneratorSettings settings
158
+ ) {
106
159
ModuleXmlData moduleXmlData = new ModuleXmlData (
107
160
settings .getPackageName (),
108
161
settings .getModuleName (),
0 commit comments