package de.plushnikov.intellij.plugin;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationDisplayType;
import com.intellij.notification.NotificationGroup;
import com.intellij.notification.NotificationListener;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.components.ProjectComponent;
import org.jetbrains.annotations.NotNull;
/**
* Shows update notification
*/
public class LombokPluginUpdateProjectComponent implements ProjectComponent {
private LombokPluginApplicationComponent application;
@Override
public void initComponent() {
application = LombokPluginApplicationComponent.getInstance();
}
@Override
public void disposeComponent() {
}
@NotNull
@Override
public String getComponentName() {
return "LombokPluginUpdateProjectComponent";
}
@Override
public void projectOpened() {
if (application.isUpdated() && !application.isUpdateNotificationShown()) {
application.setUpdateNotificationShown(true);
NotificationGroup group = new NotificationGroup(Version.PLUGIN_NAME, NotificationDisplayType.STICKY_BALLOON, true);
Notification notification = group.createNotification(
LombokBundle.message("daemon.donate.title", Version.PLUGIN_VERSION),
LombokBundle.message("daemon.donate.content"),
NotificationType.INFORMATION,
new NotificationListener.UrlOpeningListener(false)
);
Notifications.Bus.notify(notification);
}
}
@Override
public void projectClosed() {
}
}