From 94a82eb91b940b7522f18c54d00e6e6cc01ac42b Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 9 Feb 2012 19:00:54 +0100 Subject: [PATCH] allow to change settings of a notification programmatically --- .../intellij/notification/NotificationsConfiguration.java | 2 ++ .../notification/impl/NotificationsConfigurationImpl.java | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/notification/NotificationsConfiguration.java b/platform/platform-api/src/com/intellij/notification/NotificationsConfiguration.java index 5d1ec2bfbf1e..092abcd1bec0 100644 --- a/platform/platform-api/src/com/intellij/notification/NotificationsConfiguration.java +++ b/platform/platform-api/src/com/intellij/notification/NotificationsConfiguration.java @@ -19,6 +19,8 @@ import com.intellij.openapi.application.ApplicationManager; import org.jetbrains.annotations.NotNull; public abstract class NotificationsConfiguration implements Notifications { + public abstract void changeSettings(String groupDisplayName, NotificationDisplayType displayType, boolean shouldLog); + public static NotificationsConfiguration getNotificationsConfiguration() { return ApplicationManager.getApplication().getComponent(NotificationsConfiguration.class); } diff --git a/platform/platform-impl/src/com/intellij/notification/impl/NotificationsConfigurationImpl.java b/platform/platform-impl/src/com/intellij/notification/impl/NotificationsConfigurationImpl.java index bb614c241e59..f620dba5529c 100644 --- a/platform/platform-impl/src/com/intellij/notification/impl/NotificationsConfigurationImpl.java +++ b/platform/platform-impl/src/com/intellij/notification/impl/NotificationsConfigurationImpl.java @@ -139,7 +139,7 @@ public class NotificationsConfigurationImpl extends NotificationsConfiguration i @NotNull NotificationDisplayType displayType, boolean shouldLog) { if (!isRegistered(groupDisplayName)) { - myIdToSettingsMap.put(groupDisplayName, new NotificationSettings(groupDisplayName, displayType, shouldLog)); + changeSettings(groupDisplayName, displayType, shouldLog); } else if (displayType == NotificationDisplayType.TOOL_WINDOW && !hasToolWindowCapability(groupDisplayName)) { // the first time with tool window capability ObjectUtils.assertNotNull(_getSettings(groupDisplayName)).setDisplayType(NotificationDisplayType.TOOL_WINDOW); @@ -147,6 +147,11 @@ public class NotificationsConfigurationImpl extends NotificationsConfiguration i } } + @Override + public void changeSettings(String groupDisplayName, NotificationDisplayType displayType, boolean shouldLog) { + myIdToSettingsMap.put(groupDisplayName, new NotificationSettings(groupDisplayName, displayType, shouldLog)); + } + public synchronized boolean isRegistered(@NotNull final String id) { return myIdToSettingsMap.containsKey(id); }