void () { final Notification notification; if (myNotificationListener != null && myNotificationListener.length > 0) { @Nls StringBuilder sb = new StringBuilder(myMessage); for (NamedRunnable runnable : myNotificationListener) { final String name = runnable.toString(); sb.append("<br/><a href=\"").append(name).append("\">").append(name).append("</a>"); // NON-NLS } notification = NOTIFICATION_GROUP.createNotification(sb.toString(), myMessageType.toNotificationType()) .setListener((currentNotification, event) -> { if (HyperlinkEvent.EventType.ACTIVATED.equals(event.getEventType())) { if (myNotificationListener.length == 1) { myNotificationListener[0].run(); } else { final String description = event.getDescription(); if (description != null) { for (NamedRunnable runnable : myNotificationListener) { if (description.equals(runnable.toString())) { runnable.run(); break; } } } } currentNotification.expire(); } }); } else { notification = NOTIFICATION_GROUP.createNotification(myMessage, myMessageType); } notification.notify(myProject.isDefault() ? null : myProject); }