allow to change settings of a notification programmatically

This commit is contained in:
Dmitry Jemerov
2012-02-09 19:00:54 +01:00
parent c098f1dec7
commit 94a82eb91b
2 changed files with 8 additions and 1 deletions
@@ -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);
}
@@ -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);
}