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.

0 commit comments

Comments
 (0)