From 8308eded6b997901c3f2a3f05a5c9c287ed57404 Mon Sep 17 00:00:00 2001 From: andrii Date: Thu, 13 Oct 2022 16:36:34 +0300 Subject: [PATCH 1/2] 1204: Fixed bug View Model can be created in the vendor --- .../generation/InjectAViewModelAction.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java b/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java index 682f50b04..257cfbfc7 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java @@ -16,9 +16,12 @@ import com.intellij.psi.xml.XmlTag; import com.magento.idea.magento2plugin.MagentoIcons; import com.magento.idea.magento2plugin.actions.generation.dialog.InjectAViewModelDialog; +import com.magento.idea.magento2plugin.indexes.ModuleIndex; import com.magento.idea.magento2plugin.magento.files.CommonXml; import com.magento.idea.magento2plugin.magento.files.LayoutXml; import com.magento.idea.magento2plugin.project.Settings; +import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil; +import java.util.List; import org.jetbrains.annotations.NotNull; public class InjectAViewModelAction extends DumbAwareAction { @@ -42,6 +45,15 @@ public void update(final @NotNull AnActionEvent event) { if (project == null) { return; } + final PsiFile psiFile = event.getData(PlatformDataKeys.PSI_FILE); + + if (psiFile == null) { + return; + } + + if (!isEditableModule(project, psiFile)) { + return; + } if (Settings.isEnabled(project)) { final XmlTag element = getElement(event); @@ -128,4 +140,10 @@ private void setStatus(final AnActionEvent event, final boolean status) { event.getPresentation().setVisible(status); event.getPresentation().setEnabled(status); } + + private boolean isEditableModule(final Project project, final PsiFile psiFile) { + final List allModulesList = new ModuleIndex(project).getEditableModuleNames(); + + return allModulesList.contains(GetModuleNameByDirectoryUtil.execute(psiFile.getContainingDirectory(), project)); + } } From 8d96810adcfb7c49d677f20f5a7add21bc7a3b4e Mon Sep 17 00:00:00 2001 From: andrii Date: Thu, 13 Oct 2022 17:09:40 +0300 Subject: [PATCH 2/2] 1204: Fixed Static Test --- .../actions/generation/InjectAViewModelAction.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java b/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java index 257cfbfc7..a3635f2e8 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/InjectAViewModelAction.java @@ -144,6 +144,8 @@ private void setStatus(final AnActionEvent event, final boolean status) { private boolean isEditableModule(final Project project, final PsiFile psiFile) { final List allModulesList = new ModuleIndex(project).getEditableModuleNames(); - return allModulesList.contains(GetModuleNameByDirectoryUtil.execute(psiFile.getContainingDirectory(), project)); + return allModulesList.contains( + GetModuleNameByDirectoryUtil.execute(psiFile.getContainingDirectory(), project) + ); } }