Skip to content

Commit 3997a01

Browse files
Merge pull request #976 from doninAtwix/975-generation-config-xml
975: Added a new context dependent Action for the config.xml file generation
2 parents d8e2c57 + bdd4738 commit 3997a01

File tree

5 files changed

+105
-0
lines changed

5 files changed

+105
-0
lines changed

resources/META-INF/plugin.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
<action id="MagentoCreateDiFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewDiXmlAction"/>
6464
<action id="MagentoCreateWebapiFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewWebapiXmlAction"/>
6565
<action id="MagentoCreateAclFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewAclXmlAction"/>
66+
<action id="MagentoCreateConfigFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewConfigXmlAction"/>
6667
<!-- Context dependent actions -->
6768
<separator/>
6869
<add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewXml"/>
@@ -566,6 +567,7 @@
566567
<internalFileTemplate name="Magento Entity Delete Controller Class"/>
567568
<internalFileTemplate name="Magento Web API XML"/>
568569
<internalFileTemplate name="Web API Interface"/>
570+
<internalFileTemplate name="Magento Config XML"/>
569571

570572
<defaultLiveTemplates file="/liveTemplates/MagentoPWA.xml"/>
571573

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0"?>
2+
#parse("XML File Header.xml")
3+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
5+
</config>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!--
2+
/*
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
-->
7+
<html>
8+
<body>
9+
<table width="100%" border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse">
10+
<tr>
11+
<td><font face="verdana" size="-1">
12+
The config.xml file is used to set default values for system configuration
13+
(in Admin under Stores > Settings > Configuration), set in module_folder/etc/adminhtml/system.xml.
14+
</font><br>
15+
</td>
16+
</tr>
17+
</table>
18+
</body>
19+
</html>
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.ModuleConfigXmlFile;
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 NewConfigXmlAction extends AbstractContextAction {
19+
20+
public static final String ACTION_NAME = "Magento 2 Config File";
21+
public static final String ACTION_DESCRIPTION = "Create a new Magento 2 config.xml file";
22+
23+
/**
24+
* New config.xml file generation action constructor.
25+
*/
26+
public NewConfigXmlAction() {
27+
super(ACTION_NAME, ACTION_DESCRIPTION, new ModuleConfigXmlFile());
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+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.magento.files;
7+
8+
import com.intellij.lang.Language;
9+
import com.intellij.lang.xml.XMLLanguage;
10+
11+
public final class ModuleConfigXmlFile implements ModuleFileInterface {
12+
13+
public static final String FILE_NAME = "config.xml";
14+
public static final String TEMPLATE = "Magento Config XML";
15+
16+
@Override
17+
public String getFileName() {
18+
return FILE_NAME;
19+
}
20+
21+
@Override
22+
public String getTemplate() {
23+
return TEMPLATE;
24+
}
25+
26+
@Override
27+
public Language getLanguage() {
28+
return XMLLanguage.INSTANCE;
29+
}
30+
}

0 commit comments

Comments
 (0)