diff --git a/CHANGELOG.md b/CHANGELOG.md index f6f2e9ce2..971848c2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0). ## 4.0.0 +## 3.2.2 + +### Fixed + +- New entity layout name and edit entity layout name inside it +- `Java.lang.IllegalArgumentException` During adding a new method into an existing plugin + ## 3.2.1 ### Fixed diff --git a/resources/META-INF/pluginIcon.svg b/resources/META-INF/pluginIcon.svg index 73abd2cf8..564f534c2 100644 --- a/resources/META-INF/pluginIcon.svg +++ b/resources/META-INF/pluginIcon.svg @@ -1,41 +1,7 @@ - - Magento-color - - - - - - - - - - - - - - - - - - - Alexis Doreau - - - - - + + + + \ No newline at end of file diff --git a/src/com/magento/idea/magento2plugin/actions/generation/PluginGenerateMethodHandlerBase.java b/src/com/magento/idea/magento2plugin/actions/generation/PluginGenerateMethodHandlerBase.java index 2cb3b262d..c2fdb8ce8 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/PluginGenerateMethodHandlerBase.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/PluginGenerateMethodHandlerBase.java @@ -44,7 +44,6 @@ import gnu.trove.THashSet; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Locale; @@ -318,18 +317,27 @@ public static Collection fixOrderToBeAsOriginalFiles( final PhpNamedElementNode... selected ) { final List newSelected = ContainerUtil.newArrayList(selected); - Collections.sort(newSelected, (o1, o2) -> { + newSelected.sort((o1, o2) -> { final PsiElement psiElement = o1.getPsiElement(); final PsiElement psiElement2 = o2.getPsiElement(); final PsiFile containingFile = psiElement.getContainingFile(); final PsiFile containingFile2 = psiElement2.getContainingFile(); return containingFile.equals(containingFile2) - ? psiElement.getTextOffset() - psiElement2.getTextOffset() - : containingFile.getName().compareTo(containingFile2.getName()); + ? psiElement.getTextOffset() - psiElement2.getTextOffset() + : getDocumentPosition(containingFile, containingFile2); }); return newSelected; } + private static int getDocumentPosition( + final PsiFile containingFile, + final PsiFile containingFile2 + ) { + return containingFile.getVirtualFile().getPresentableUrl().compareTo( + containingFile2.getVirtualFile().getPresentableUrl() + ); + } + private static int getSuitableEditorPosition(final Editor editor, final PhpFile phpFile) { final PsiElement currElement = phpFile.findElementAt(editor.getCaretModel().getOffset()); if (currElement != null) { @@ -371,9 +379,9 @@ private static boolean isClassMember(final PsiElement element) { return false; } final IElementType elementType = element.getNode().getElementType(); - return elementType == PhpElementTypes.CLASS_FIELDS - || elementType == PhpElementTypes.CLASS_CONSTANTS - || elementType == PhpStubElementTypes.CLASS_METHOD; + return elementType.equals(PhpElementTypes.CLASS_FIELDS) + || elementType.equals(PhpElementTypes.CLASS_CONSTANTS) + || elementType.equals(PhpStubElementTypes.CLASS_METHOD); } private static int getNextPos(final PsiElement element) { diff --git a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java index 1b9c14d58..b94448b76 100644 --- a/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java +++ b/src/com/magento/idea/magento2plugin/actions/generation/dialog/NewEntityDialog.java @@ -50,7 +50,6 @@ import com.magento.idea.magento2plugin.ui.FilteredComboBox; import com.magento.idea.magento2plugin.ui.table.TableGroupWrapper; import com.magento.idea.magento2plugin.util.CamelCaseToSnakeCase; -import com.magento.idea.magento2plugin.util.FirstLetterToLowercaseUtil; import com.magento.idea.magento2plugin.util.magento.GetAclResourcesListUtil; import com.magento.idea.magento2plugin.util.magento.GetModuleNameByDirectoryUtil; import java.awt.Cursor; @@ -445,7 +444,7 @@ private EntityCreatorContextData getEntityCreatorContextData( final String dtoInterfaceClassName = entityName.concat(DTO_INTERFACE_SUFFIX); final String actionsPathPrefix = dialogData.getRoute() + File.separator - + FirstLetterToLowercaseUtil.convert(entityName) + File.separator; + + entityName.toLowerCase(Locale.getDefault()) + File.separator; final NamespaceBuilder dtoModelNamespace = new DataModelFile(moduleName, dtoClassName).getNamespaceBuilder(); final NamespaceBuilder dtoInterfaceNamespace =