links in notification titles (IDEA-80305)
authorpeter <peter@jetbrains.com>
Wed, 1 Feb 2012 19:43:53 +0000 (20:43 +0100)
committerpeter <peter@jetbrains.com>
Wed, 1 Feb 2012 19:56:01 +0000 (20:56 +0100)
platform/platform-impl/src/com/intellij/notification/EventLog.java
platform/platform-tests/testSrc/com/intellij/notification/EventLogTest.groovy

index e6bff9c8c44d21040406f95abb9c162f5a83bd1a..c04f7064f54494d849119eba31e86eb543a2e294 100644 (file)
@@ -131,11 +131,6 @@ public class EventLog implements Notifications {
     removeJavaNewLines(document, lineSeparators, hasHtml);
     insertNewLineSubstitutors(document, showMore, lineSeparators);
 
-    String title = notification.getTitle();
-    if (StringUtil.isNotEmpty(title)) {
-      document.insertString(0, document.getTextLength() > 0 ? title + ": " : title);
-    }
-
     String status = document.getText();
 
     ArrayList<Pair<TextRange, HyperlinkInfo>> list = new ArrayList<Pair<TextRange, HyperlinkInfo>>();
@@ -162,6 +157,11 @@ public class EventLog implements Notifications {
                                           AtomicBoolean showMore,
                                           Map<RangeMarker, HyperlinkInfo> links, List<RangeMarker> lineSeparators) {
     String content = notification.getContent();
+    String title = notification.getTitle();
+    if (StringUtil.isNotEmpty(title)) {
+      content = title + (StringUtil.isNotEmpty(content) ? ": " + content : "");
+    }
+
     content = StringUtil.replace(StringUtil.convertLineSeparators(content), "&nbsp;", " ");
     boolean hasHtml = false;
     while (true) {
index 896cf802fa0315a234d457d9e6e230dacfcbce82..fee62a4801f908621be45f73216b0a0ffc10922f 100644 (file)
@@ -57,4 +57,10 @@ class EventLogTest extends LightPlatformTestCase {
     assert entry.message == 'Title: fst snd'
   }
 
+  public void testLinkInTitle() {
+    def entry = EventLog.formatForLog(new Notification("xxx", '<a href="a">link</a>', "content", NotificationType.ERROR))
+    assert entry.message == 'link: content'
+    assert entry.links.collect { it.first } == [new TextRange(0, 4)]
+  }
+
 }