Skip to content

Commit 2a356f6

Browse files
committed
Merge branch '4.3.0-develop' into 965-generation-acl-xml
# Conflicts: # resources/META-INF/plugin.xml
2 parents 713311a + b21e978 commit 2a356f6

File tree

3 files changed

+113
-0
lines changed

3 files changed

+113
-0
lines changed

resources/META-INF/plugin.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060
<separator/>
6161
<!-- Context dependent actions -->
6262
<action id="MagentoCreateRoutesFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewRoutesXmlAction"/>
63+
<action id="MagentoCreateDiFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewDiXmlAction"/>
64+
<action id="MagentoCreateWebapiFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewWebapiXmlAction"/>
6365
<action id="MagentoCreateAclFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewAclXmlAction"/>
6466
<!-- Context dependent actions -->
6567
<separator/>
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.context.xml;
7+
8+
import com.intellij.ide.fileTemplates.actions.AttributesDefaults;
9+
import com.intellij.psi.PsiDirectory;
10+
import com.intellij.psi.PsiFile;
11+
import com.magento.idea.magento2plugin.actions.context.AbstractContextAction;
12+
import com.magento.idea.magento2plugin.magento.files.ModuleDiXml;
13+
import com.magento.idea.magento2plugin.magento.packages.Areas;
14+
import com.magento.idea.magento2plugin.magento.packages.ComponentType;
15+
import com.magento.idea.magento2plugin.magento.packages.Package;
16+
import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil;
17+
import java.util.Arrays;
18+
import java.util.List;
19+
import org.jetbrains.annotations.NotNull;
20+
21+
public class NewDiXmlAction extends AbstractContextAction {
22+
23+
public static final String ACTION_NAME = "Magento 2 Dependency Injection File";
24+
public static final String ACTION_DESCRIPTION = "Create a new Magento 2 di.xml file";
25+
26+
/**
27+
* New di.xml file generation action constructor.
28+
*/
29+
public NewDiXmlAction() {
30+
super(ACTION_NAME, ACTION_DESCRIPTION, ModuleDiXml.getInstance());
31+
}
32+
33+
@Override
34+
protected boolean isVisible(
35+
final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
36+
final @NotNull PsiDirectory targetDirectory,
37+
final PsiFile targetFile
38+
) {
39+
final List<String> allowedDirectories = Arrays.asList(
40+
Package.moduleBaseAreaDir,
41+
Areas.adminhtml.toString(),
42+
Areas.frontend.toString(),
43+
Areas.webapi_rest.toString(),
44+
Areas.webapi_soap.toString(),
45+
Areas.graphql.toString(),
46+
Areas.crontab.toString()
47+
);
48+
49+
return allowedDirectories.contains(targetDirectory.getName())
50+
&& moduleData.getType().equals(ComponentType.module);
51+
}
52+
53+
@Override
54+
protected AttributesDefaults getProperties(
55+
final @NotNull AttributesDefaults defaults,
56+
final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
57+
final PsiDirectory targetDirectory,
58+
final PsiFile targetFile
59+
) {
60+
return defaults;
61+
}
62+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.context.xml;
7+
8+
import com.intellij.ide.fileTemplates.actions.AttributesDefaults;
9+
import com.intellij.psi.PsiDirectory;
10+
import com.intellij.psi.PsiFile;
11+
import com.magento.idea.magento2plugin.actions.context.AbstractContextAction;
12+
import com.magento.idea.magento2plugin.magento.files.ModuleWebApiXmlFile;
13+
import com.magento.idea.magento2plugin.magento.packages.ComponentType;
14+
import com.magento.idea.magento2plugin.magento.packages.Package;
15+
import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil;
16+
import org.jetbrains.annotations.NotNull;
17+
18+
public class NewWebapiXmlAction extends AbstractContextAction {
19+
20+
public static final String ACTION_NAME = "Magento 2 WEB API File";
21+
public static final String ACTION_DESCRIPTION = "Create a new Magento 2 webapi.xml file";
22+
23+
/**
24+
* New webapi.xml file generation action constructor.
25+
*/
26+
public NewWebapiXmlAction() {
27+
super(ACTION_NAME, ACTION_DESCRIPTION, new ModuleWebApiXmlFile());
28+
}
29+
30+
@Override
31+
protected boolean isVisible(
32+
final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
33+
final @NotNull PsiDirectory targetDirectory,
34+
final PsiFile targetFile
35+
) {
36+
return targetDirectory.getName().equals(Package.moduleBaseAreaDir)
37+
&& moduleData.getType().equals(ComponentType.module);
38+
}
39+
40+
@Override
41+
protected AttributesDefaults getProperties(
42+
final @NotNull AttributesDefaults defaults,
43+
final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData,
44+
final PsiDirectory targetDirectory,
45+
final PsiFile targetFile
46+
) {
47+
return defaults;
48+
}
49+
}

0 commit comments

Comments
 (0)