package org.codinjutsu.tools.jenkins.logic; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.util.messages.MessageBus; import com.intellij.util.messages.MessageBusConnection; import org.codinjutsu.tools.jenkins.model.Jenkins; public class RssAuthenticationActionHandler implements AuthenticationNotifier, Disposable { private final Project project; private MessageBusConnection connection; public RssAuthenticationActionHandler(final Project project) { this.project = project; init(); } private void init() { final MessageBus myBus = ApplicationManager.getApplication().getMessageBus(); connection = myBus.connect(); connection.subscribe(AuthenticationNotifier.USER_LOGGED_IN, this); } public static RssAuthenticationActionHandler getInstance(Project project) { return ServiceManager.getService(project, RssAuthenticationActionHandler.class); } @Override public void emptyConfiguration() { } @Override public void afterLogin(Jenkins jenkinsWorkspace) { RssLogic rssLogic = RssLogic.getInstance(project); rssLogic.initScheduledJobs(); } @Override public void loginCancelled() { //nothing to do } @Override public void loginFailed(Exception ex) { //nothing to do } @Override public void dispose() { connection.disconnect(); } }