Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix IDE low version exception #121

Merged
merged 1 commit into from
Jan 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
}

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

sourceCompatibility = 1.8
targetCompatibility = 1.8
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.shuzijun.leetcode.plugin.actions;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.manager.ViewManager;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;

/**
* @author shuzijun
*/
public abstract class AbstractTimeAction extends AbstractAsynAction {

@Override
public void perform(AnActionEvent anActionEvent, Config config) {
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
if (leetcodeEditor == null) {
return;
}
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
if (question == null) {
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
return;
}
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
if (timerBarWidget != null) {
perform(anActionEvent, config, timerBarWidget, question);
} else {
//For possible reasons, the IDE version is not supported
}
}

public abstract void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question);
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ public class EditorMenuActionGroup extends DefaultActionGroup {
@Override
public void update(AnActionEvent e) {
VirtualFile vf = e.getData(PlatformDataKeys.VIRTUAL_FILE);
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(e.getProject()).getEditor(vf.getPath());
boolean menuAllowed = false;
if (leetcodeEditor != null) {
menuAllowed = true;
if (vf != null) {
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(e.getProject()).getEditor(vf.getPath());
if (leetcodeEditor != null) {
menuAllowed = true;
}
}
e.getPresentation().setEnabledAndVisible(menuAllowed);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ public class FindAction extends ToggleAction {

@Override
public boolean isSelected(AnActionEvent anActionEvent) {
if (anActionEvent.getProject() == null) {
//Why is it null?
return false;
}
JPanel panel = WindowFactory.getDataContext(anActionEvent.getProject()).getData(DataKeys.LEETCODE_PROJECTS_TERRFIND);
if (panel == null) {
return false;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package com.shuzijun.leetcode.plugin.actions;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;

/**
* @author shuzijun
*/
public class ResetTimeAction extends AbstractAsynAction {
public class ResetTimeAction extends AbstractTimeAction {
@Override
public void perform(AnActionEvent anActionEvent, Config config) {
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
timerBarWidget.reset();
}
}
Original file line number Diff line number Diff line change
@@ -1,28 +1,16 @@
package com.shuzijun.leetcode.plugin.actions;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.manager.ViewManager;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
import com.shuzijun.leetcode.plugin.utils.DataKeys;
import com.shuzijun.leetcode.plugin.window.WindowFactory;

import javax.swing.*;

/**
* @author shuzijun
*/
public class StartTimeAction extends AbstractAsynAction {
public class StartTimeAction extends AbstractTimeAction {
@Override
public void perform(AnActionEvent anActionEvent, Config config) {
JTree tree = WindowFactory.getDataContext(anActionEvent.getProject()).getData(DataKeys.LEETCODE_PROJECTS_TREE);
Question question = ViewManager.getTreeQuestion(tree, anActionEvent.getProject());
if (question == null) {
return;
}
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
timerBarWidget.startTimer(question.getTitle());
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
timerBarWidget.reset();
}
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package com.shuzijun.leetcode.plugin.actions;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;

/**
* @author shuzijun
*/
public class StopTimeAction extends AbstractAsynAction {
public class StopTimeAction extends AbstractTimeAction {
@Override
public void perform(AnActionEvent anActionEvent, Config config) {
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
timerBarWidget.stopTimer();
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
timerBarWidget.reset();
}
}
Original file line number Diff line number Diff line change
@@ -1,36 +1,17 @@
package com.shuzijun.leetcode.plugin.actions.editor;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.actions.AbstractAsynAction;
import com.shuzijun.leetcode.plugin.manager.ViewManager;
import com.shuzijun.leetcode.plugin.actions.AbstractTimeAction;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;

/**
* @author shuzijun
*/
public class ResetTimeAction extends AbstractAsynAction {
public class ResetTimeAction extends AbstractTimeAction {
@Override
public void perform(AnActionEvent anActionEvent, Config config) {
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
if (leetcodeEditor == null) {
return;
}
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
if (question == null) {
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
return;
}
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
timerBarWidget.reset();
}
}
Original file line number Diff line number Diff line change
@@ -1,36 +1,17 @@
package com.shuzijun.leetcode.plugin.actions.editor;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.actions.AbstractAsynAction;
import com.shuzijun.leetcode.plugin.manager.ViewManager;
import com.shuzijun.leetcode.plugin.actions.AbstractTimeAction;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;

/**
* @author shuzijun
*/
public class StartTimeAction extends AbstractAsynAction {
public class StartTimeAction extends AbstractTimeAction {
@Override
public void perform(AnActionEvent anActionEvent, Config config) {
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
if (leetcodeEditor == null) {
return;
}
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
if (question == null) {
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
return;
}
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
timerBarWidget.startTimer(question.getTitle());
}
}
Original file line number Diff line number Diff line change
@@ -1,36 +1,17 @@
package com.shuzijun.leetcode.plugin.actions.editor;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.wm.WindowManager;
import com.shuzijun.leetcode.plugin.actions.AbstractAsynAction;
import com.shuzijun.leetcode.plugin.manager.ViewManager;
import com.shuzijun.leetcode.plugin.actions.AbstractTimeAction;
import com.shuzijun.leetcode.plugin.model.Config;
import com.shuzijun.leetcode.plugin.model.LeetcodeEditor;
import com.shuzijun.leetcode.plugin.model.Question;
import com.shuzijun.leetcode.plugin.setting.ProjectConfig;
import com.shuzijun.leetcode.plugin.timer.TimerBarWidget;
import com.shuzijun.leetcode.plugin.utils.MessageUtils;
import com.shuzijun.leetcode.plugin.utils.PropertiesUtils;

/**
* @author shuzijun
*/
public class StopTimeAction extends AbstractAsynAction {
public class StopTimeAction extends AbstractTimeAction {
@Override
public void perform(AnActionEvent anActionEvent, Config config) {
VirtualFile vf = anActionEvent.getData(PlatformDataKeys.VIRTUAL_FILE);
LeetcodeEditor leetcodeEditor = ProjectConfig.getInstance(anActionEvent.getProject()).getEditor(vf.getPath());
if (leetcodeEditor == null) {
return;
}
Question question = ViewManager.getQuestionById(leetcodeEditor.getQuestionId(), anActionEvent.getProject());
if (question == null) {
MessageUtils.getInstance(anActionEvent.getProject()).showInfoMsg("info", PropertiesUtils.getInfo("tree.null"));
return;
}
TimerBarWidget timerBarWidget = (TimerBarWidget) WindowManager.getInstance().getStatusBar(anActionEvent.getProject()).getWidget(TimerBarWidget.ID);
public void perform(AnActionEvent anActionEvent, Config config, TimerBarWidget timerBarWidget, Question question) {
timerBarWidget.stopTimer();
}
}
12 changes: 11 additions & 1 deletion src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<idea-plugin>
<id>leetcode-editor</id>
<name>leetcode editor</name>
<version>6.1</version>
<version>6.2</version>
<vendor email="[email protected]" url="https://github.com/shuzijun/idea-leetcode-plugin">shuzijun</vendor>

<description><![CDATA[
Expand Down Expand Up @@ -113,6 +113,16 @@

<change-notes><![CDATA[
<ul>
<li>v6.2<br>
1.修复计时器显示错误.<br>
2.修复提交问题时异常.<br>
3.修复IDE低版本部分功能不支持出现异常<br>
</li>
<li>v6.2<br>
1.fix wrong minute elapsed of timer.<br>
2.Fix the submit failure prompt.<br>
3.Fix IDE low version exception<br>
</li>
<li>v6.1<br>
1.增加 Editor 右键菜单.<br>
2.增加 Bash SQL 支持.<br>
Expand Down