Skip to content

Commit 67d6308

Browse files
committed
optimization of sorting
1 parent 401649e commit 67d6308

32 files changed

+396
-384
lines changed

src/main/java/com/shuzijun/leetcode/plugin/actions/toolbar/FindActionGroup.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import com.google.common.collect.Lists;
44
import com.intellij.openapi.actionSystem.ActionGroup;
5+
import com.intellij.openapi.actionSystem.ActionToolbar;
56
import com.intellij.openapi.actionSystem.AnAction;
67
import com.intellij.openapi.actionSystem.AnActionEvent;
78
import com.shuzijun.leetcode.plugin.manager.ViewManager;
89
import com.shuzijun.leetcode.plugin.model.Constant;
910
import com.shuzijun.leetcode.plugin.model.Tag;
11+
import com.shuzijun.leetcode.plugin.utils.DataKeys;
1012
import icons.LeetCodeEditorIcons;
1113

1214
import java.util.List;
@@ -23,18 +25,21 @@ public boolean displayTextInToolbar() {
2325

2426
@Override
2527
public void update(AnActionEvent e) {
28+
ActionToolbar findToolbar = e.getDataContext().getData(DataKeys.LEETCODE_TOOLBAR_FIND);
2629
String id = e.getActionManager().getId(this);
2730
List<Tag> tags = getTags(id);
2831

2932
if (tags != null && !tags.isEmpty()) {
3033
for (Tag tag : tags) {
3134
if(tag.isSelect()){
3235
e.getPresentation().setIcon(LeetCodeEditorIcons.FILTER);
36+
findToolbar.getComponent().updateUI();
3337
return;
3438
}
3539
}
3640
}
3741
e.getPresentation().setIcon(null);
42+
findToolbar.getComponent().updateUI();
3843
}
3944

4045

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.shuzijun.leetcode.plugin.actions.toolbar;
2+
3+
import com.intellij.openapi.actionSystem.ActionToolbar;
4+
import com.intellij.openapi.actionSystem.AnActionEvent;
5+
import com.shuzijun.leetcode.plugin.actions.AbstractAction;
6+
import com.shuzijun.leetcode.plugin.manager.ViewManager;
7+
import com.shuzijun.leetcode.plugin.model.Config;
8+
import com.shuzijun.leetcode.plugin.model.Constant;
9+
import com.shuzijun.leetcode.plugin.model.Sort;
10+
import com.shuzijun.leetcode.plugin.utils.DataKeys;
11+
import com.shuzijun.leetcode.plugin.window.WindowFactory;
12+
import icons.LeetCodeEditorIcons;
13+
import org.jetbrains.annotations.NotNull;
14+
15+
import javax.swing.*;
16+
17+
/**
18+
* @author shuzijun
19+
*/
20+
public class SortAction extends AbstractAction {
21+
22+
@Override
23+
public boolean displayTextInToolbar() {
24+
return true;
25+
}
26+
27+
@Override
28+
public void update(@NotNull AnActionEvent e) {
29+
Sort sort = getSort(e);
30+
if (sort == null) {
31+
return;
32+
}
33+
ActionToolbar sortToolbar = e.getDataContext().getData(DataKeys.LEETCODE_TOOLBAR_SORT);
34+
if (sort.getType() == Constant.SORT_ASC) {
35+
e.getPresentation().setIcon(LeetCodeEditorIcons.SORT_ASC);
36+
} else if (sort.getType() == Constant.SORT_DESC) {
37+
e.getPresentation().setIcon(LeetCodeEditorIcons.SORT_DESC);
38+
} else {
39+
e.getPresentation().setIcon(null);
40+
}
41+
sortToolbar.getComponent().updateUI();
42+
super.update(e);
43+
44+
}
45+
46+
@Override
47+
public void actionPerformed(AnActionEvent anActionEvent, Config config) {
48+
JTree tree = WindowFactory.getDataContext(anActionEvent.getProject()).getData(DataKeys.LEETCODE_PROJECTS_TREE);
49+
if (tree == null || ViewManager.getFilter(Constant.FIND_TYPE_DIFFICULTY) == null) {
50+
return;
51+
}
52+
Sort sort = getSort(anActionEvent);
53+
if (sort == null) {
54+
return;
55+
}
56+
ViewManager.operationType(getKey(anActionEvent));
57+
ViewManager.update(tree);
58+
}
59+
60+
private Sort getSort(AnActionEvent anActionEvent) {
61+
return ViewManager.getSort(getKey(anActionEvent));
62+
}
63+
64+
private String getKey(AnActionEvent anActionEvent){
65+
return anActionEvent.getActionManager().getId(this).replace("leetcode.sort.","");
66+
}
67+
}

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/AbstractSortAction.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortActionGroup.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortByDifficultyAction.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortByIdAction.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortByNameAction.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortByOccurrenceFrequencyAction.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortByPassRateAction.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/actions/tree/SortBySolutionAction.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/main/java/com/shuzijun/leetcode/plugin/listener/TreeMouseListener.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import com.intellij.openapi.project.Project;
99
import com.intellij.ui.treeStructure.SimpleTree;
1010
import com.shuzijun.leetcode.plugin.manager.CodeManager;
11-
import com.shuzijun.leetcode.plugin.model.Constant;
1211
import com.shuzijun.leetcode.plugin.model.Question;
1312
import org.jetbrains.annotations.NotNull;
1413

@@ -45,27 +44,20 @@ public void mouseClicked(MouseEvent e) {
4544
if (e.getButton() == 3) { //鼠标右键
4645
final ActionManager actionManager = ActionManager.getInstance();
4746
final ActionGroup actionGroup = (ActionGroup) actionManager.getAction("leetcode.NavigatorActionsMenu");
48-
4947
if (actionGroup != null) {
5048
actionManager.createActionPopupMenu("", actionGroup).getComponent().show(e.getComponent(), e.getX(), e.getY());
5149
}
5250
} else if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
53-
ProgressManager.getInstance().run(new Task.Backgroundable(project, "leetcode.editor.openCode", false) {
51+
ProgressManager.getInstance().run(new Task.Backgroundable(project,"leetcode.editor.openCode",false) {
5452
@Override
5553
public void run(@NotNull ProgressIndicator progressIndicator) {
5654
CodeManager.openCode(question, project);
5755
}
5856
});
5957
}
60-
} else if (Constant.NODETYPE_TAG.equals(question.getNodeType()) || Constant.NODETYPE_PROBLEMS.equals(question.getNodeType())) {
61-
if (e.getButton() == 3) { //鼠标右键
62-
final ActionManager actionManager = ActionManager.getInstance();
63-
final ActionGroup actionGroup = (ActionGroup) actionManager.getAction("leetcode.editor.tree.menu");
64-
if (actionGroup != null) {
65-
actionManager.createActionPopupMenu("", actionGroup).getComponent().show(e.getComponent(), e.getX(), e.getY());
66-
}
67-
}
6858
}
6959
}
60+
61+
7062
}
7163
}

0 commit comments

Comments
 (0)