diff --git a/src/com/magento/idea/magento2plugin/actions/generation/NewBlockAction.java b/src/com/magento/idea/magento2plugin/actions/generation/NewBlockAction.java index cefba0e7c..1fe6a3db4 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/NewBlockAction.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/NewBlockAction.java @@ -18,6 +18,7 @@ import org.jetbrains.annotations.NotNull; public class NewBlockAction extends AnAction { + public static final String ACTION_NAME = "Magento 2 Block"; public static final String ACTION_DESCRIPTION = "Create a new Magento 2 Block"; @@ -26,23 +27,24 @@ public NewBlockAction() { } @Override - public void actionPerformed(@NotNull final AnActionEvent event) { + public void actionPerformed(final @NotNull AnActionEvent event) { final DataContext dataContext = event.getDataContext(); final IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext); + if (view == null) { return; } final Project project = CommonDataKeys.PROJECT.getData(dataContext); + if (project == null) { return; } - final PsiDirectory directory = view.getOrChooseDirectory(); + if (directory == null) { return; } - NewBlockDialog.open(project, directory); } @@ -51,4 +53,3 @@ public boolean isDumbAware() { return false; } } - diff --git a/src/com/magento/idea/magento2plugin/actions/generation/NewControllerAction.java b/src/com/magento/idea/magento2plugin/actions/generation/NewControllerAction.java index 277636830..9460114bd 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/NewControllerAction.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/NewControllerAction.java @@ -16,8 +16,8 @@ import com.magento.idea.magento2plugin.MagentoIcons; import com.magento.idea.magento2plugin.actions.generation.dialog.NewControllerDialog; -@SuppressWarnings({"PMD.OnlyOneReturn", "PMD.FieldNamingConventions"}) public class NewControllerAction extends AnAction { + public static final String ACTION_NAME = "Magento 2 Controller"; public static final String ACTION_DESCRIPTION = "Create a new Magento 2 Controller"; @@ -36,13 +36,13 @@ public void actionPerformed(final AnActionEvent event) { if (view == null) { return; } - final Project project = CommonDataKeys.PROJECT.getData(dataContext); + if (project == null) { return; } - final PsiDirectory directory = view.getOrChooseDirectory(); + if (directory == null) { return; } diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.form b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.form index 9689cc6a0..c460ac6fa 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.form +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.form @@ -53,7 +53,7 @@ - + @@ -85,7 +85,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -106,6 +106,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.java index 6bc982cc5..44342993a 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewBlockDialog.java @@ -7,7 +7,6 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDirectory; -import com.intellij.psi.PsiFile; import com.magento.idea.magento2plugin.actions.generation.NewBlockAction; import com.magento.idea.magento2plugin.actions.generation.data.BlockFileData; import com.magento.idea.magento2plugin.actions.generation.dialog.validator.annotation.FieldValidation; @@ -26,6 +25,7 @@ import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JComponent; +import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextField; @@ -33,6 +33,7 @@ import javax.swing.KeyStroke; public class NewBlockDialog extends AbstractDialog { + private final PsiDirectory baseDir; private final String moduleName; private JPanel contentPanel; @@ -44,18 +45,18 @@ public class NewBlockDialog extends AbstractDialog { private static final String NAME = "name"; private static final String DIRECTORY = "directory"; - @FieldValidation(rule = RuleRegistry.NOT_EMPTY, - message = {NotEmptyRule.MESSAGE, NAME}) - @FieldValidation(rule = RuleRegistry.PHP_CLASS, - message = {PhpClassRule.MESSAGE, NAME}) + @FieldValidation(rule = RuleRegistry.NOT_EMPTY, message = {NotEmptyRule.MESSAGE, NAME}) + @FieldValidation(rule = RuleRegistry.PHP_CLASS, message = {PhpClassRule.MESSAGE, NAME}) private JTextField blockName; - @FieldValidation(rule = RuleRegistry.NOT_EMPTY, - message = {NotEmptyRule.MESSAGE, DIRECTORY}) + @FieldValidation(rule = RuleRegistry.NOT_EMPTY, message = {NotEmptyRule.MESSAGE, DIRECTORY}) @FieldValidation(rule = RuleRegistry.PHP_DIRECTORY, message = {PhpDirectoryRule.MESSAGE, DIRECTORY}) private JTextField blockParentDir; + private JLabel blockNameErrorMessage;//NOPMD + private JLabel blockParentDirErrorMessage;//NOPMD + /** * Constructor. * @@ -113,12 +114,12 @@ public static void open(final Project project, final PsiDirectory directory) { protected void onOK() { if (validateFormFields()) { generateFile(); + exit(); } - exit(); } - private PsiFile generateFile() { - return new ModuleBlockClassGenerator(new BlockFileData( + private void generateFile() { + new ModuleBlockClassGenerator(new BlockFileData( getBlockDirectory(), getBlockName(), getModuleName(), @@ -140,6 +141,7 @@ public String getBlockDirectory() { private void suggestBlockDirectory() { final String moduleIdentifierPath = getModuleIdentifierPath(); + if (moduleIdentifierPath == null) { blockParentDir.setText(BlockPhp.DEFAULT_DIR); return; @@ -147,6 +149,7 @@ private void suggestBlockDirectory() { final String path = baseDir.getVirtualFile().getPath(); final String[] pathParts = path.split(moduleIdentifierPath); final int minimumPathParts = 2; + if (pathParts.length != minimumPathParts) { blockParentDir.setText(BlockPhp.DEFAULT_DIR); return; @@ -161,14 +164,17 @@ private void suggestBlockDirectory() { private String getModuleIdentifierPath() { final String[]parts = moduleName.split(Package.vendorModuleNameSeparator); + if (parts[0] == null || parts[1] == null || parts.length > 2) { return null; } + return parts[0] + File.separator + parts[1]; } private String getNamespace() { final String[]parts = moduleName.split(Package.vendorModuleNameSeparator); + if (parts[0] == null || parts[1] == null || parts.length > 2) { return null; } @@ -176,12 +182,7 @@ private String getNamespace() { File.separator, Package.fqnSeparator ); - return parts[0] + Package.fqnSeparator + parts[1] + Package.fqnSeparator + directoryPart; - } - @Override - public void onCancel() { - // add your code here if necessary - dispose(); + return parts[0] + Package.fqnSeparator + parts[1] + Package.fqnSeparator + directoryPart; } } diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.form b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.form index 59cbf84c0..3d6b85fc7 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.form +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.form @@ -3,7 +3,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -79,7 +79,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -111,6 +111,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -118,6 +142,7 @@ + @@ -145,6 +170,7 @@ + diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.java index 818915cab..402cedb96 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewControllerDialog.java @@ -33,6 +33,7 @@ import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComponent; +import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.KeyStroke; @@ -43,6 +44,7 @@ "PMD.ExcessiveImports" }) public class NewControllerDialog extends AbstractDialog { + private final String moduleName; private final Project project; private JPanel contentPane; @@ -50,7 +52,6 @@ public class NewControllerDialog extends AbstractDialog { private JButton buttonCancel; private FilteredComboBox controllerAreaSelect; private FilteredComboBox httpMethodSelect; - private JTextField controllerParentDir; private JCheckBox inheritClass; private JPanel adminPanel; private JTextField acl; @@ -64,12 +65,16 @@ public class NewControllerDialog extends AbstractDialog { message = {PhpDirectoryRule.MESSAGE, CONTROLLER_NAME}) private JTextField controllerName; - @FieldValidation(rule = RuleRegistry.NOT_EMPTY, - message = {NotEmptyRule.MESSAGE, ACTION_NAME}) - @FieldValidation(rule = RuleRegistry.PHP_CLASS, - message = {PhpClassRule.MESSAGE, ACTION_NAME}) + @FieldValidation(rule = RuleRegistry.NOT_EMPTY, message = {NotEmptyRule.MESSAGE, ACTION_NAME}) + @FieldValidation(rule = RuleRegistry.PHP_CLASS, message = {PhpClassRule.MESSAGE, ACTION_NAME}) private JTextField actionName; + private JTextField controllerParentDir; + + private JLabel actionNameErrorMessage;//NOPMD + private JLabel controllerNameErrorMessage;//NOPMD + private JLabel controllerParentDirErrorMessage;//NOPMD + /** * Open new dialog for adding new controller. * @@ -196,8 +201,8 @@ public static void open(final Project project, final PsiDirectory directory) { private void onOK() { if (validateFormFields()) { generateFile(); + exit(); } - exit(); } /** @@ -264,11 +269,6 @@ private Boolean getIsInheritClass() { return inheritClass.isSelected(); } - @Override - protected void onCancel() { - dispose(); - } - private List getAreaList() { return new ArrayList<>( Arrays.asList(