Skip to content

Commit da6965a

Browse files
authored
Merge pull request #121 from shuzijun/gradle
Fix IDE low version exception
2 parents ed1d86d + a122444 commit da6965a

File tree

11 files changed

+82
-95
lines changed

11 files changed

+82
-95
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group 'com.shuzijun.leetcode'
8-
version "6.1" + (project.build_env.isEmpty() ? "" : "-") + project.build_env
8+
version "6.2" + (project.build_env.isEmpty() ? "" : "-") + project.build_env
99

1010
sourceCompatibility = 1.8
1111
targetCompatibility = 1.8
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.shuzijun.leetcode.plugin.actions;
2+
3+
import com.intellij.openapi.actionSystem.AnActionEvent;
4+
import com.intellij.openapi.actionSystem.PlatformDataKeys;
5+
import com.intellij.openapi.vfs.VirtualFile;
6+
import com.intellij.openapi.wm.WindowManager;
7+
import com.shuzijun.leetcode.plugin.manager.ViewManager;
8+
import com.shuzijun.leetcode.plugin.model.Config;
9+
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
10+
import com.shuzijun.leetcode.plugin.model.Question;
11+
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
12+
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
13+
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
14+
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;
15+
16+
/**
17+
* @author shuzijun
18+
*/
19+
public abstract class AbstractTimeAction extends AbstractAsynAction {
20+
21+
@Override
22+
public void perform(AnActionEvent anActionEvent, Config config) {
23+
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
24+
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
25+
if (leetcodeEditor == null) {
26+
return;
27+
}
28+
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
29+
if (question == null) {
30+
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
31+
return;
32+
}
33+
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
34+
if (timerBarWidget != null) {
35+
perform(anActionEvent, config, timerBarWidget, question);
36+
} else {
37+
//For possible reasons, the IDE version is not supported
38+
}
39+
}
40+
41+
public abstract void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question);
42+
}

src/main/java/com/shuzijun/leetcode/plugin/actions/EditorMenuActionGroup.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ public class EditorMenuActionGroup extends DefaultActionGroup {
1515
@Override
1616
public void update(AnActionEvent e) {
1717
VirtualFile vf = e.getData(PlatformDataKeys.VIRTUAL_FILE);
18-
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(e.getProject()).getEditor(vf.getPath());
1918
boolean menuAllowed = false;
20-
if (leetcodeEditor != null) {
21-
menuAllowed = true;
19+
if (vf != null) {
20+
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(e.getProject()).getEditor(vf.getPath());
21+
if (leetcodeEditor != null) {
22+
menuAllowed = true;
23+
}
2224
}
2325
e.getPresentation().setEnabledAndVisible(menuAllowed);
2426
}

src/main/java/com/shuzijun/leetcode/plugin/actions/FindAction.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ public class FindAction extends ToggleAction {
1515

1616
@Override
1717
public boolean isSelected(AnActionEvent anActionEvent) {
18+
if (anActionEvent.getProject() == null) {
19+
//Why is it null?
20+
return false;
21+
}
1822
JPanel panel = WindowFactory.getDataContext(anActionEvent.getProject()).getData(DataKeys.LEETCODE_PROJECTS_TERRFIND);
1923
if (panel == null) {
2024
return false;
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package com.shuzijun.leetcode.plugin.actions;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.wm.WindowManager;
54
import com.shuzijun.leetcode.plugin.model.Config;
5+
import com.shuzijun.leetcode.plugin.model.Question;
66
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
77

88
/**
99
* @author shuzijun
1010
*/
11-
public class ResetTimeAction extends AbstractAsynAction {
11+
public class ResetTimeAction extends AbstractTimeAction {
1212
@Override
13-
public void perform(AnActionEvent anActionEvent, Config config) {
14-
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
13+
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
1514
timerBarWidget.reset();
1615
}
1716
}
Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,16 @@
11
package com.shuzijun.leetcode.plugin.actions;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.wm.WindowManager;
5-
import com.shuzijun.leetcode.plugin.manager.ViewManager;
64
import com.shuzijun.leetcode.plugin.model.Config;
75
import com.shuzijun.leetcode.plugin.model.Question;
86
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
9-
import com.shuzijun.leetcode.plugin.utils.DataKeys;
10-
import com.shuzijun.leetcode.plugin.window.WindowFactory;
11-
12-
import javax.swing.*;
137

148
/**
159
* @author shuzijun
1610
*/
17-
public class StartTimeAction extends AbstractAsynAction {
11+
public class StartTimeAction extends AbstractTimeAction {
1812
@Override
19-
public void perform(AnActionEvent anActionEvent, Config config) {
20-
JTree tree = WindowFactory.getDataContext(anActionEvent.getProject()).getData(DataKeys.LEETCODE_PROJECTS_TREE);
21-
Question question = ViewManager.getTreeQuestion(tree, anActionEvent.getProject());
22-
if (question == null) {
23-
return;
24-
}
25-
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
26-
timerBarWidget.startTimer(question.getTitle());
13+
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
14+
timerBarWidget.reset();
2715
}
2816
}
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package com.shuzijun.leetcode.plugin.actions;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.wm.WindowManager;
54
import com.shuzijun.leetcode.plugin.model.Config;
5+
import com.shuzijun.leetcode.plugin.model.Question;
66
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
77

88
/**
99
* @author shuzijun
1010
*/
11-
public class StopTimeAction extends AbstractAsynAction {
11+
public class StopTimeAction extends AbstractTimeAction {
1212
@Override
13-
public void perform(AnActionEvent anActionEvent, Config config) {
14-
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
15-
timerBarWidget.stopTimer();
13+
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
14+
timerBarWidget.reset();
1615
}
1716
}
Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,17 @@
11
package com.shuzijun.leetcode.plugin.actions.editor;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.actionSystem.PlatformDataKeys;
5-
import com.intellij.openapi.vfs.VirtualFile;
6-
import com.intellij.openapi.wm.WindowManager;
7-
import com.shuzijun.leetcode.plugin.actions.AbstractAsynAction;
8-
import com.shuzijun.leetcode.plugin.manager.ViewManager;
4+
import com.shuzijun.leetcode.plugin.actions.AbstractTimeAction;
95
import com.shuzijun.leetcode.plugin.model.Config;
10-
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
116
import com.shuzijun.leetcode.plugin.model.Question;
12-
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
137
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
14-
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
15-
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;
168

179
/**
1810
* @author shuzijun
1911
*/
20-
public class ResetTimeAction extends AbstractAsynAction {
12+
public class ResetTimeAction extends AbstractTimeAction {
2113
@Override
22-
public void perform(AnActionEvent anActionEvent, Config config) {
23-
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
24-
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
25-
if (leetcodeEditor == null) {
26-
return;
27-
}
28-
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
29-
if (question == null) {
30-
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
31-
return;
32-
}
33-
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
14+
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
3415
timerBarWidget.reset();
3516
}
3617
}
Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,17 @@
11
package com.shuzijun.leetcode.plugin.actions.editor;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.actionSystem.PlatformDataKeys;
5-
import com.intellij.openapi.vfs.VirtualFile;
6-
import com.intellij.openapi.wm.WindowManager;
7-
import com.shuzijun.leetcode.plugin.actions.AbstractAsynAction;
8-
import com.shuzijun.leetcode.plugin.manager.ViewManager;
4+
import com.shuzijun.leetcode.plugin.actions.AbstractTimeAction;
95
import com.shuzijun.leetcode.plugin.model.Config;
10-
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
116
import com.shuzijun.leetcode.plugin.model.Question;
12-
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
137
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
14-
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
15-
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;
168

179
/**
1810
* @author shuzijun
1911
*/
20-
public class StartTimeAction extends AbstractAsynAction {
12+
public class StartTimeAction extends AbstractTimeAction {
2113
@Override
22-
public void perform(AnActionEvent anActionEvent, Config config) {
23-
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
24-
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
25-
if (leetcodeEditor == null) {
26-
return;
27-
}
28-
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
29-
if (question == null) {
30-
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
31-
return;
32-
}
33-
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
14+
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
3415
timerBarWidget.startTimer(question.getTitle());
3516
}
3617
}
Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,17 @@
11
package com.shuzijun.leetcode.plugin.actions.editor;
22

33
import com.intellij.openapi.actionSystem.AnActionEvent;
4-
import com.intellij.openapi.actionSystem.PlatformDataKeys;
5-
import com.intellij.openapi.vfs.VirtualFile;
6-
import com.intellij.openapi.wm.WindowManager;
7-
import com.shuzijun.leetcode.plugin.actions.AbstractAsynAction;
8-
import com.shuzijun.leetcode.plugin.manager.ViewManager;
4+
import com.shuzijun.leetcode.plugin.actions.AbstractTimeAction;
95
import com.shuzijun.leetcode.plugin.model.Config;
10-
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
116
import com.shuzijun.leetcode.plugin.model.Question;
12-
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
137
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
14-
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
15-
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;
168

179
/**
1810
* @author shuzijun
1911
*/
20-
public class StopTimeAction extends AbstractAsynAction {
12+
public class StopTimeAction extends AbstractTimeAction {
2113
@Override
22-
public void perform(AnActionEvent anActionEvent, Config config) {
23-
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
24-
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
25-
if (leetcodeEditor == null) {
26-
return;
27-
}
28-
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
29-
if (question == null) {
30-
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
31-
return;
32-
}
33-
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
14+
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
3415
timerBarWidget.stopTimer();
3516
}
3617
}

src/main/resources/META-INF/plugin.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<idea-plugin>
22
<id>leetcode-editor</id>
33
<name>leetcode editor</name>
4-
<version>6.1</version>
4+
<version>6.2</version>
55
<vendor email="[email protected]" url="https://github.com/shuzijun/idea-leetcode-plugin">shuzijun</vendor>
66

77
<description><![CDATA[
@@ -113,6 +113,16 @@
113113

114114
<change-notes><![CDATA[
115115
<ul>
116+
<li>v6.2<br>
117+
1.修复计时器显示错误.<br>
118+
2.修复提交问题时异常.<br>
119+
3.修复IDE低版本部分功能不支持出现异常<br>
120+
</li>
121+
<li>v6.2<br>
122+
1.fix wrong minute elapsed of timer.<br>
123+
2.Fix the submit failure prompt.<br>
124+
3.Fix IDE low version exception<br>
125+
</li>
116126
<li>v6.1<br>
117127
1.增加 Editor 右键菜单.<br>
118128
2.增加 Bash SQL 支持.<br>

0 commit comments

Comments
 (0)