diff --git a/src/main/java/com/shuzijun/leetcode/plugin/listener/RegisterPluginInstallerStateListener.java b/src/main/java/com/shuzijun/leetcode/plugin/listener/RegisterPluginInstallerStateListener.java index 9456b2ff..d401c4dd 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/listener/RegisterPluginInstallerStateListener.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/listener/RegisterPluginInstallerStateListener.java @@ -1,8 +1,5 @@ package com.shuzijun.leetcode.plugin.listener; -import com.intellij.ide.plugins.IdeaPluginDescriptor; -import com.intellij.ide.plugins.PluginInstaller; -import com.intellij.ide.plugins.PluginStateListener; import com.intellij.openapi.project.Project; import com.intellij.openapi.startup.StartupActivity; import org.jetbrains.annotations.NotNull; @@ -13,7 +10,7 @@ public class RegisterPluginInstallerStateListener implements StartupActivity { @Override public void runActivity(@NotNull Project project) { - PluginInstaller.addStateListener(new PluginStateListener() { + /* PluginInstaller.addStateListener(new PluginStateListener() { @Override public void install(@NotNull IdeaPluginDescriptor ideaPluginDescriptor) { } @@ -22,6 +19,6 @@ public void install(@NotNull IdeaPluginDescriptor ideaPluginDescriptor) { public void uninstall(@NotNull IdeaPluginDescriptor ideaPluginDescriptor) { System.out.println("uninstall"); } - }); + });*/ } } diff --git a/src/main/java/com/shuzijun/leetcode/plugin/setting/PersistentConfig.java b/src/main/java/com/shuzijun/leetcode/plugin/setting/PersistentConfig.java index c0ea5837..c075cde8 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/setting/PersistentConfig.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/setting/PersistentConfig.java @@ -1,6 +1,7 @@ package com.shuzijun.leetcode.plugin.setting; import com.intellij.ide.passwordSafe.PasswordSafe; +import com.intellij.ide.passwordSafe.PasswordSafeException; import com.intellij.openapi.components.*; import com.intellij.util.xmlb.XmlSerializerUtil; import com.shuzijun.leetcode.plugin.model.Config; @@ -66,12 +67,23 @@ public String getTempFilePath() { } public void savePassword(String password) { - PasswordSafe.getInstance().storePassword(null, this.getClass(), "leetcode-editor", password != null ? password : ""); + try { + PasswordSafe.getInstance().storePassword + (null, this.getClass(), "leetcode-editor", password != null ? password : ""); + } catch (PasswordSafeException exception) { + MessageUtils.showAllWarnMsg("warning", "Failed to save password"); + } } public String getPassword() { if (getConfig().getVersion() != null) { - return PasswordSafe.getInstance().getPassword(null, this.getClass(), "leetcode-editor"); + try { + return PasswordSafe.getInstance().getPassword(null, this.getClass(), "leetcode-editor"); + } catch (PasswordSafeException exception) { + MessageUtils.showAllWarnMsg("warning", "Password acquisition failed"); + return null; + } + } else { return getInitConfig().getPassword(); } diff --git a/src/main/java/com/shuzijun/leetcode/plugin/setting/ProjectConfig.java b/src/main/java/com/shuzijun/leetcode/plugin/setting/ProjectConfig.java index 57c044f2..8a0cf05a 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/setting/ProjectConfig.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/setting/ProjectConfig.java @@ -62,4 +62,20 @@ public static class InnerState { projectConfig = new HashMap<>(); } } + + public String getComponentName() { + return this.getClass().getName(); + } + + public void initComponent() { + } + + public void disposeComponent() { + } + + public void projectOpened() { + } + + public void projectClosed() { + } } diff --git a/src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.java b/src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.java index 485123c3..fb9902a8 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/setting/SettingUI.java @@ -202,7 +202,7 @@ public void mouseClicked(MouseEvent e) { LevelColourField.setText(config.getLevelColour()); englishContentBox.setSelected(config.getEnglishContent()); } else { - LevelColourField.setText(config.getLevelColour()); + LevelColourField.setText(new Config().getLevelColour()); ApplicationManager.getApplication().runWriteAction(() -> { fileNameEditor.getDocument().setText(Constant.CUSTOM_FILE_NAME); templateEditor.getDocument().setText(Constant.CUSTOM_TEMPLATE); diff --git a/src/main/java/com/shuzijun/leetcode/plugin/timer/TimerBarWidget.java b/src/main/java/com/shuzijun/leetcode/plugin/timer/TimerBarWidget.java index 6a81024c..056f9c3c 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/timer/TimerBarWidget.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/timer/TimerBarWidget.java @@ -1,12 +1,15 @@ package com.shuzijun.leetcode.plugin.timer; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.wm.CustomStatusBarWidget; import com.intellij.openapi.wm.StatusBar; +import com.intellij.openapi.wm.StatusBarWidget; import com.shuzijun.leetcode.plugin.model.Config; import com.shuzijun.leetcode.plugin.setting.PersistentConfig; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; @@ -133,5 +136,15 @@ public void reset() { label.setVisible(false); } + @Nullable + public StatusBarWidget.WidgetPresentation getPresentation() { + return this.getPresentation(SystemInfo.isMac ? StatusBarWidget.PlatformType.MAC : StatusBarWidget.PlatformType.DEFAULT); + } + + @Nullable + public StatusBarWidget.WidgetPresentation getPresentation(@NotNull StatusBarWidget.PlatformType type) { + return null; + } + } diff --git a/src/main/java/com/shuzijun/leetcode/plugin/utils/MessageUtils.java b/src/main/java/com/shuzijun/leetcode/plugin/utils/MessageUtils.java index 9b78d1f7..9fc10dc4 100644 --- a/src/main/java/com/shuzijun/leetcode/plugin/utils/MessageUtils.java +++ b/src/main/java/com/shuzijun/leetcode/plugin/utils/MessageUtils.java @@ -61,4 +61,20 @@ public void showErrorMsg(String title, String body) { public static void showAllWarnMsg(String title, String body) { Notifications.Bus.notify(new Notification(Constant.NOTIFICATION_GROUP, title, body, NotificationType.WARNING)); } + + public String getComponentName() { + return this.getClass().getName(); + } + + public void initComponent() { + } + + public void disposeComponent() { + } + + public void projectOpened() { + } + + public void projectClosed() { + } }