From dddf335a2de8fc332e5fd4c5b06f7dd4259eb771 Mon Sep 17 00:00:00 2001 From: Mykola Donin Date: Thu, 17 Feb 2022 11:09:56 +0200 Subject: [PATCH 1/2] 994: Added crontab.xml file in context generation. --- resources/META-INF/plugin.xml | 1 + .../internal/Magento Cron Tab XML.xml.ft | 3 +- .../context/xml/NewCrontabXmlAction.java | 57 +++++++++++++++++++ .../magento/files/ModuleCrontabXmlFile.java | 30 ++++++++++ 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java create mode 100644 src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml index 998d4b8cf..e041502a3 100644 --- a/resources/META-INF/plugin.xml +++ b/resources/META-INF/plugin.xml @@ -73,6 +73,7 @@ + diff --git a/resources/fileTemplates/internal/Magento Cron Tab XML.xml.ft b/resources/fileTemplates/internal/Magento Cron Tab XML.xml.ft index 36fe2288e..332d258ec 100644 --- a/resources/fileTemplates/internal/Magento Cron Tab XML.xml.ft +++ b/resources/fileTemplates/internal/Magento Cron Tab XML.xml.ft @@ -1,4 +1,5 @@ #parse("XML File Header.xml") - + diff --git a/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java b/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java new file mode 100644 index 000000000..3b50d0e29 --- /dev/null +++ b/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java @@ -0,0 +1,57 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.actions.context.xml; + +import com.intellij.ide.fileTemplates.actions.AttributesDefaults; +import com.intellij.psi.PsiDirectory; +import com.intellij.psi.PsiFile; +import com.magento.idea.magento2plugin.actions.context.AbstractContextAction; +import com.magento.idea.magento2plugin.magento.files.ModuleCrontabXmlFile; +import com.magento.idea.magento2plugin.magento.packages.ComponentType; +import com.magento.idea.magento2plugin.magento.packages.Package; +import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil; +import org.jetbrains.annotations.NotNull; + +public class NewCrontabXmlAction extends AbstractContextAction { + + public static final String ACTION_NAME = "Magento 2 Crontab File"; + public static final String ACTION_DESCRIPTION = "Create a new Magento 2 crontab.xml file"; + + /** + * New crontab.xml file generation action constructor. + */ + public NewCrontabXmlAction() { + super(ACTION_NAME, ACTION_DESCRIPTION, new ModuleCrontabXmlFile()); + } + + @Override + protected boolean isVisible( + final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData, + final @NotNull PsiDirectory targetDirectory, + final PsiFile targetFile + ) { + final PsiDirectory configDir = moduleData.getConfigDir(); + + if (configDir == null) { + return false; + } + + return targetDirectory.getName().equals(Package.moduleBaseAreaDir) + && targetDirectory.equals(configDir) + && moduleData.getType().equals(ComponentType.module); + } + + + @Override + protected AttributesDefaults getProperties( + final @NotNull AttributesDefaults defaults, + final @NotNull GetMagentoModuleUtil.MagentoModuleData moduleData, + final PsiDirectory targetDirectory, + final PsiFile targetFile + ) { + return defaults; + } +} diff --git a/src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java b/src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java new file mode 100644 index 000000000..857d4f126 --- /dev/null +++ b/src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java @@ -0,0 +1,30 @@ +/* + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +package com.magento.idea.magento2plugin.magento.files; + +import com.intellij.lang.Language; +import com.intellij.lang.xml.XMLLanguage; + +public final class ModuleCrontabXmlFile implements ModuleFileInterface { + + public static final String FILE_NAME = "crontab.xml"; + public static final String TEMPLATE = "Magento Cron Tab XML"; + + @Override + public String getFileName() { + return FILE_NAME; + } + + @Override + public String getTemplate() { + return TEMPLATE; + } + + @Override + public Language getLanguage() { + return XMLLanguage.INSTANCE; + } +} From 04aabfaae903a6e9204fdd717d4c0b14e777cc79 Mon Sep 17 00:00:00 2001 From: Mykola Donin Date: Thu, 17 Feb 2022 15:28:42 +0200 Subject: [PATCH 2/2] 994: update code style --- .../context/xml/NewCrontabXmlAction.java | 4 +-- .../magento/files/ModuleCrontabXmlFile.java | 30 ------------------- 2 files changed, 2 insertions(+), 32 deletions(-) delete mode 100644 src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java diff --git a/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java b/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java index 3b50d0e29..a4fdc03e9 100644 --- a/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java +++ b/src/com/magento/idea/magento2plugin/actions/context/xml/NewCrontabXmlAction.java @@ -9,7 +9,7 @@ import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; import com.magento.idea.magento2plugin.actions.context.AbstractContextAction; -import com.magento.idea.magento2plugin.magento.files.ModuleCrontabXmlFile; +import com.magento.idea.magento2plugin.magento.files.CrontabXmlTemplate; import com.magento.idea.magento2plugin.magento.packages.ComponentType; import com.magento.idea.magento2plugin.magento.packages.Package; import com.magento.idea.magento2plugin.util.magento.GetMagentoModuleUtil; @@ -24,7 +24,7 @@ public class NewCrontabXmlAction extends AbstractContextAction { * New crontab.xml file generation action constructor. */ public NewCrontabXmlAction() { - super(ACTION_NAME, ACTION_DESCRIPTION, new ModuleCrontabXmlFile()); + super(ACTION_NAME, ACTION_DESCRIPTION, new CrontabXmlTemplate()); } @Override diff --git a/src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java b/src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java deleted file mode 100644 index 857d4f126..000000000 --- a/src/com/magento/idea/magento2plugin/magento/files/ModuleCrontabXmlFile.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ - -package com.magento.idea.magento2plugin.magento.files; - -import com.intellij.lang.Language; -import com.intellij.lang.xml.XMLLanguage; - -public final class ModuleCrontabXmlFile implements ModuleFileInterface { - - public static final String FILE_NAME = "crontab.xml"; - public static final String TEMPLATE = "Magento Cron Tab XML"; - - @Override - public String getFileName() { - return FILE_NAME; - } - - @Override - public String getTemplate() { - return TEMPLATE; - } - - @Override - public Language getLanguage() { - return XMLLanguage.INSTANCE; - } -}