Skip to content

Commit 101413b

Browse files
1002: Added programming sorting
1 parent ec0443f commit 101413b

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

resources/META-INF/plugin.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
<add-to-group group-id="PhpGenerateGroup" anchor="last"/>
5757
</group>
5858

59-
<group id="MagentoContextBasedActionsGroup" class="com.intellij.ide.actions.NonEmptyActionGroup" text="Context Actions" popup="false" compact="true" searchable="true">
59+
<group id="MagentoContextBasedActionsGroup" class="com.magento.idea.magento2plugin.actions.groups.ContextActionsGroup" text="Context Actions" popup="false" compact="true" searchable="true">
6060
<separator/>
6161
<!-- Context dependent actions -->
6262
<action id="MagentoCreateAclFile" class="com.magento.idea.magento2plugin.actions.context.xml.NewAclXmlAction"/>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.actions.groups;
7+
8+
import com.intellij.ide.actions.NonEmptyActionGroup;
9+
import com.intellij.openapi.actionSystem.AnAction;
10+
import com.intellij.openapi.actionSystem.AnActionEvent;
11+
import java.util.Arrays;
12+
import java.util.Comparator;
13+
import java.util.LinkedList;
14+
import java.util.List;
15+
import org.jetbrains.annotations.NotNull;
16+
17+
public class ContextActionsGroup extends NonEmptyActionGroup {
18+
19+
public ContextActionsGroup() {
20+
super();
21+
}
22+
23+
@Override
24+
public void update(final @NotNull AnActionEvent event) {
25+
if (getChildrenCount() > 0) {
26+
final AnAction[] actions = getChildren(event);
27+
final List<AnAction> originalActionList = new LinkedList<>(Arrays.asList(actions));
28+
final List<AnAction> sortedActionList = new LinkedList<>(Arrays.asList(actions));
29+
sortedActionList.sort(new ContextActionsComparator());
30+
31+
if (!originalActionList.equals(sortedActionList)) {
32+
removeAll();
33+
addAll(sortedActionList.toArray(new AnAction[0]));
34+
}
35+
}
36+
37+
super.update(event);
38+
}
39+
40+
private static class ContextActionsComparator implements Comparator<AnAction> {
41+
42+
@Override
43+
public int compare(final AnAction action1, final AnAction action2) {
44+
if (action1.getTemplateText() == null || action2.getTemplateText() == null) {
45+
return 0;
46+
}
47+
48+
return action1.getTemplateText().compareTo(action2.getTemplateText());
49+
}
50+
}
51+
}

0 commit comments

Comments
 (0)