我已经关注了代码,这是从SOF上的一个问题中复制的,
private void showMyMessage() {
ApplicationManager.getApplication().invokeLater(() -> {
com.intellij.notification.Notification notification = GROUP_DISPLAY_ID_INFO
.createNotification("<html>TLogin failed", " Go to <a href=\"" + "LINK!!!" + "\" target=\"blank\">Settings</a> to setup login data!</html>",
NotificationType.ERROR,
new NotificationListener.UrlOpeningListener(true));
Project[] projects = ProjectManager.getInstance().getOpenProjects();
Notifications.Bus.notify(notification, projects[0]);
});
}
我想要一个链接,而不是文字&#34; LINK !!!&#34; ,你有什么建议? 我认为我需要创建操作并将此操作添加到我的论坛 GROUP_DISPLAY_ID_INFO ,但此群组不在xml中,只是代码存在。
答案 0 :(得分:0)
private static void showMyMessage(String LINK) {
ApplicationManager.getApplication().invokeLater(() -> {
Notification notification = GROUP_DISPLAY_ID_INFO
.createNotification("<html>TLogin failed", " Go to <a href=\"" + LINK + "\" target=\"blank\">Settings</a> to setup login data!</html>",
NotificationType.ERROR,
new NotificationListener.UrlOpeningListener(true));
Project[] projects = ProjectManager.getInstance().getOpenProjects();
Notifications.Bus.notify(notification, projects[0]);
});
}
只需将链接替换为参数,并将其用作showMyMessage("http://google.com")
此外,您不需要在xml中配置组显示ID,只需在代码中写入id。
答案 1 :(得分:0)
我没有收到任何关于这个问题的建议,但经过一段时间的休息,我找到了我需要的东西:
如果以上面的代码为例,需要在新的
之后添加NotificationListener.UrlOpeningListener(true))
addAction(new NotificationAction("Settings") {
@Override
public void actionPerformed (@NotNull AnActionEvent anActionEvent,
@NotNull Notification notification){
DataContext dataContext = anActionEvent.getDataContext();
Project project = PlatformDataKeys.PROJECT.getData(dataContext)
ShowSettingsUtil.getInstance().showSettingsDialog(project,
YOURCLASS.class);
}
其中yourclass.class是实现Configurable interface
的类现在单击“设置”,您将看到打开的设置窗口(yourclass.class)