diff --git a/platform/platform-impl/src/com/intellij/notification/EventLog.java b/platform/platform-impl/src/com/intellij/notification/EventLog.java index d4b39dfdff33..2e80052db39e 100644 --- a/platform/platform-impl/src/com/intellij/notification/EventLog.java +++ b/platform/platform-impl/src/com/intellij/notification/EventLog.java @@ -117,7 +117,7 @@ public class EventLog implements Notifications { } @Nullable - public static Pair getStatusMessage(@Nullable Project project) { + public static Trinity getStatusMessage(@Nullable Project project) { return getLogModel(project).getStatusMessage(); } diff --git a/platform/platform-impl/src/com/intellij/notification/LogModel.java b/platform/platform-impl/src/com/intellij/notification/LogModel.java index 0134bdaf9925..168add4a6575 100644 --- a/platform/platform-impl/src/com/intellij/notification/LogModel.java +++ b/platform/platform-impl/src/com/intellij/notification/LogModel.java @@ -20,7 +20,7 @@ import com.intellij.openapi.Disposable; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Disposer; -import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.Trinity; import com.intellij.openapi.wm.StatusBar; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.UIUtil; @@ -36,8 +36,7 @@ import java.util.*; public class LogModel implements Disposable { private final List myNotifications = new ArrayList(); private final Map myStamps = Collections.synchronizedMap(new WeakHashMap()); - private Notification myStatusMessage; - private long myStatusTime; + private Trinity myStatusMessage; private final Project myProject; final Map removeHandlers = new THashMap(); @@ -68,18 +67,17 @@ public class LogModel implements Disposable { void setStatusMessage(@Nullable Notification statusMessage, long stamp) { synchronized (myNotifications) { - if (myStatusMessage == statusMessage) return; + if (myStatusMessage != null && myStatusMessage.first == statusMessage) return; - myStatusMessage = statusMessage; - myStatusTime = stamp; + myStatusMessage = statusMessage == null ? null : Trinity.create(statusMessage, EventLog.formatForLog(statusMessage, "").status, stamp); } StatusBar.Info.set("", myProject, EventLog.LOG_REQUESTOR); } @Nullable - Pair getStatusMessage() { + Trinity getStatusMessage() { synchronized (myNotifications) { - return myStatusMessage == null ? null : Pair.create(myStatusMessage, myStatusTime); + return myStatusMessage; } } @@ -113,7 +111,7 @@ public class LogModel implements Disposable { UIUtil.invokeLaterIfNeeded(handler); } - Pair oldStatus = getStatusMessage(); + Trinity oldStatus = getStatusMessage(); if (oldStatus != null && notification == oldStatus.first) { setStatusToImportant(); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java index ae8e6821e642..361d53682417 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/status/StatusPanel.java @@ -21,8 +21,8 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectManager; -import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.Trinity; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.wm.IdeFrame; import com.intellij.openapi.wm.WindowManager; @@ -152,7 +152,7 @@ class StatusPanel extends JPanel { ApplicationManager.getApplication().assertIsDispatchThread(); final Project project = getActiveProject(); - final Pair statusMessage = EventLog.getStatusMessage(project); + final Trinity statusMessage = EventLog.getStatusMessage(project); final Alarm alarm = getAlarm(); myLogMode = StringUtil.isEmpty(nonLogText) && statusMessage != null && alarm != null; @@ -166,10 +166,10 @@ class StatusPanel extends JPanel { @Override public void run() { assert statusMessage != null; - String text = EventLog.formatForLog(statusMessage.first, "").status; - if (myDirty || System.currentTimeMillis() - statusMessage.second >= DateFormatUtil.MINUTE) { + String text = statusMessage.second; + if (myDirty || System.currentTimeMillis() - statusMessage.third >= DateFormatUtil.MINUTE) { myTimeStart = text.length() + 1; - text += " (" + StringUtil.decapitalize(DateFormatUtil.formatPrettyDateTime(statusMessage.second)) + ")"; + text += " (" + StringUtil.decapitalize(DateFormatUtil.formatPrettyDateTime(statusMessage.third)) + ")"; } else { myTimeStart = -1; }