// Path: src/name/admitriev/jhelper/exceptions/JHelperException.java
// public class JHelperException extends RuntimeException {
// 
// 	public JHelperException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// 
// 	public JHelperException(String message) {
// 		super(message);
// 	}
// 
// 	@Override
// 	public String getMessage() {
// 		return "Please, report that bug to issue tracker on https://github.com/AlexeyDmitriev/JHelper . Attach your code and this stack trace. "
// 		       + super.getMessage();
// 	}
// }
// 
// Path: src/name/admitriev/jhelper/exceptions/NotificationException.java
// public class NotificationException extends RuntimeException {
// 	private final String title;
// 	private final String content;
// 
// 	public NotificationException(String content) {
// 		this(content, (Throwable) null);
// 	}
// 
// 	public NotificationException(String content, Throwable cause) {
// 		super(content, cause);
// 		title = "";
// 		this.content = content;
// 	}
// 
// 	public NotificationException(String title, String content) {
// 		this(title, content, null);
// 	}
// 
// 	public NotificationException(String title, String content, Throwable cause) {
// 		super(title + ": " + content, cause);
// 		this.title = title;
// 		this.content = content;
// 	}
// 
// 	public String getTitle() {
// 		return title;
// 	}
// 
// 	public String getContent() {
// 		return content;
// 	}
// }
// 
// Path: src/name/admitriev/jhelper/ui/Notificator.java
// public class Notificator {
// 	private static final NotificationGroup GROUP = NotificationGroupManager.getInstance().getNotificationGroup("JHelper");
// 
// 	private Notificator() {
// 	}
// 
// 	public static void showNotification(String title, String content, NotificationType notificationType) {
// 		GROUP.createNotification(title, content, notificationType, null).notify(null);
// 	}
// 
// 	public static void showNotification(String content, NotificationType notificationType) {
// 		showNotification("", content, notificationType);
// 	}
// }


import com.intellij.notification.NotificationType;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import name.admitriev.jhelper.exceptions.JHelperException;
import name.admitriev.jhelper.exceptions.NotificationException;
import name.admitriev.jhelper.ui.Notificator;
import org.jetbrains.annotations.NotNull;
package name.admitriev.jhelper.actions;


public abstract class BaseAction extends AnAction {
	@Override
	public void actionPerformed(@NotNull AnActionEvent e) {
		try {
			performAction(e);
		}
		catch (NotificationException exception) {
			Notificator.showNotification(
					exception.getTitle(),
					exception.getContent(),
					NotificationType.ERROR
			);
		}
// Path: src/name/admitriev/jhelper/exceptions/JHelperException.java
// public class JHelperException extends RuntimeException {
// 
// 	public JHelperException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// 
// 	public JHelperException(String message) {
// 		super(message);
// 	}
// 
// 	@Override
// 	public String getMessage() {
// 		return "Please, report that bug to issue tracker on https://github.com/AlexeyDmitriev/JHelper . Attach your code and this stack trace. "
// 		       + super.getMessage();
// 	}
// }
// 
// Path: src/name/admitriev/jhelper/exceptions/NotificationException.java
// public class NotificationException extends RuntimeException {
// 	private final String title;
// 	private final String content;
// 
// 	public NotificationException(String content) {
// 		this(content, (Throwable) null);
// 	}
// 
// 	public NotificationException(String content, Throwable cause) {
// 		super(content, cause);
// 		title = "";
// 		this.content = content;
// 	}
// 
// 	public NotificationException(String title, String content) {
// 		this(title, content, null);
// 	}
// 
// 	public NotificationException(String title, String content, Throwable cause) {
// 		super(title + ": " + content, cause);
// 		this.title = title;
// 		this.content = content;
// 	}
// 
// 	public String getTitle() {
// 		return title;
// 	}
// 
// 	public String getContent() {
// 		return content;
// 	}
// }
// 
// Path: src/name/admitriev/jhelper/ui/Notificator.java
// public class Notificator {
// 	private static final NotificationGroup GROUP = NotificationGroupManager.getInstance().getNotificationGroup("JHelper");
// 
// 	private Notificator() {
// 	}
// 
// 	public static void showNotification(String title, String content, NotificationType notificationType) {
// 		GROUP.createNotification(title, content, notificationType, null).notify(null);
// 	}
// 
// 	public static void showNotification(String content, NotificationType notificationType) {
// 		showNotification("", content, notificationType);
// 	}
// }


// Path: src/name/admitriev/jhelper/actions/BaseAction.java
import com.intellij.notification.NotificationType;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import name.admitriev.jhelper.exceptions.JHelperException;
import name.admitriev.jhelper.exceptions.NotificationException;
import name.admitriev.jhelper.ui.Notificator;
import org.jetbrains.annotations.NotNull;

package name.admitriev.jhelper.actions;


public abstract class BaseAction extends AnAction {
	@Override
	public void actionPerformed(@NotNull AnActionEvent e) {
		try {
			performAction(e);
		}
		catch (NotificationException exception) {
			Notificator.showNotification(
					exception.getTitle(),
					exception.getContent(),
					NotificationType.ERROR
			);
		}
		catch (JHelperException exception) {