1. fix welcome screen menu for 2021.1

This commit is contained in:
pengzhile
2021-07-27 13:12:58 +08:00
parent 602333e880
commit 8b0fec7281
8 changed files with 86 additions and 15 deletions
@@ -6,6 +6,7 @@ import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.application.ApplicationActivationListener;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.wm.IdeFrame;
import com.intellij.util.messages.MessageBusConnection;
import io.zhile.research.intellij.ier.common.Resetter;
@@ -15,6 +16,7 @@ import io.zhile.research.intellij.ier.helper.ResetTimeHelper;
import org.jetbrains.annotations.NotNull;
public class AppActivationListener implements ApplicationActivationListener, Disposable {
private static final Logger LOG = Logger.getInstance(AppActivationListener.class);
private static AppActivationListener instance;
private static MessageBusConnection connection;
@@ -35,8 +37,12 @@ public class AppActivationListener implements ApplicationActivationListener, Dis
return;
}
connection = ApplicationManager.getApplication().getMessageBus().connect();
connection.subscribe(ApplicationActivationListener.TOPIC, this);
try {
connection = ApplicationManager.getApplication().getMessageBus().connect();
connection.subscribe(ApplicationActivationListener.TOPIC, this);
} catch (Exception e) {
LOG.warn("sub app activation failed.");
}
}
public synchronized void stop() {
@@ -3,6 +3,7 @@ package io.zhile.research.intellij.ier.listener;
import com.intellij.ide.AppLifecycleListener;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Ref;
import com.intellij.util.messages.MessageBusConnection;
@@ -13,6 +14,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class AppEventListener implements AppLifecycleListener, Disposable {
private static final Logger LOG = Logger.getInstance(AppEventListener.class);
private static AppEventListener instance;
private static MessageBusConnection connection;
@@ -33,8 +35,12 @@ public class AppEventListener implements AppLifecycleListener, Disposable {
return;
}
connection = ApplicationManager.getApplication().getMessageBus().connect();
connection.subscribe(AppLifecycleListener.TOPIC, this);
try {
connection = ApplicationManager.getApplication().getMessageBus().connect();
connection.subscribe(AppLifecycleListener.TOPIC, this);
} catch (Exception e) {
LOG.warn("sub app lifecycle failed.");
}
}
public synchronized void stop() {
@@ -0,0 +1,50 @@
package io.zhile.research.intellij.ier.listener;
import com.intellij.ide.AppLifecycleListener;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Ref;
import io.zhile.research.intellij.ier.helper.Constants;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.lang.ref.WeakReference;
public class AppInitListener implements AppLifecycleListener, Disposable {
private static final WeakReference<AnAction> ACTION = new WeakReference<>(ActionManager.getInstance().getAction(Constants.RESET_ACTION_ID));
protected AppInitListener() {
}
public void appFrameCreated(String[] commandLineArgs, @NotNull Ref<Boolean> willOpenProject) {
}
public void appStarting(@Nullable Project projectFromCommandLine) {
}
public void projectFrameClosed() {
}
public void projectOpenFailed() {
}
public void welcomeScreenDisplayed() {
}
public void appClosing() {
}
@Override
public void dispose() {
}
}
@@ -3,12 +3,14 @@ package io.zhile.research.intellij.ier.listener;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationActivationListener;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.wm.IdeFrame;
import com.intellij.util.messages.MessageBusConnection;
import io.zhile.research.intellij.ier.helper.BrokenPlugins;
import org.jetbrains.annotations.NotNull;
public class BrokenPluginsListener implements ApplicationActivationListener, Disposable {
private static final Logger LOG = Logger.getInstance(BrokenPluginsListener.class);
private static BrokenPluginsListener instance;
private static MessageBusConnection connection;
@@ -29,8 +31,12 @@ public class BrokenPluginsListener implements ApplicationActivationListener, Dis
return;
}
connection = ApplicationManager.getApplication().getMessageBus().connect();
connection.subscribe(ApplicationActivationListener.TOPIC, this);
try {
connection = ApplicationManager.getApplication().getMessageBus().connect();
connection.subscribe(ApplicationActivationListener.TOPIC, this);
} catch (Exception e) {
LOG.warn("sub app activation failed.");
}
}
public synchronized void stop() {
+2
View File
@@ -26,5 +26,7 @@
<applicationListeners>
<listener class="io.zhile.research.intellij.ier.listener.PluginListener"
topic="com.intellij.ide.plugins.DynamicPluginListener"/>
<listener class="io.zhile.research.intellij.ier.listener.AppInitListener"
topic="com.intellij.ide.AppLifecycleListener"/>
</applicationListeners>
</idea-plugin>