From 514b53cb5189d022d99f45f33f7d539aa732fa7f Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 12 Oct 2011 14:00:02 +0200 Subject: [PATCH] remaining part of IDEA-72438 --- .../updateSettings/impl/AbstractUpdateDialog.java | 13 ------------- .../updateSettings/impl/NewChannelDialog.java | 3 ++- .../updateSettings/impl/UpdateInfoDialog.java | 3 ++- .../com/intellij/openapi/util/text/StringUtil.java | 11 +++++++++++ .../com/intellij/util/text/StringUtilTest.java | 4 ++++ 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java index ac3573da4eb6..acc92b987656 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/AbstractUpdateDialog.java @@ -33,8 +33,6 @@ import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import java.awt.*; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public abstract class AbstractUpdateDialog extends DialogWrapper { private final boolean myEnableLink; @@ -130,15 +128,4 @@ public abstract class AbstractUpdateDialog extends DialogWrapper { public boolean isShowConfirmation() { return myShowConfirmation; } - - public static String formatLinks(String message) { - Pattern linkPattern = Pattern.compile("http://[a-zA-Z0-9\\./]+"); - StringBuffer result = new StringBuffer(); - Matcher m = linkPattern.matcher(message); - while (m.find()) { - m.appendReplacement(result, "" + m.group() + ""); - } - m.appendTail(result); - return result.toString(); - } } diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/NewChannelDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/NewChannelDialog.java index 7409e9e2c0b2..e00c7240bb69 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/NewChannelDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/NewChannelDialog.java @@ -18,6 +18,7 @@ package com.intellij.openapi.updateSettings.impl; import com.intellij.ide.BrowserUtil; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.ui.DialogWrapper; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.BrowserHyperlinkListener; import com.intellij.ui.LicensingFacade; import com.intellij.ui.components.JBScrollPane; @@ -84,7 +85,7 @@ public class NewChannelDialog extends DialogWrapper { StringBuilder builder = new StringBuilder().append(""); builder.append("").append(UIUtil.getCssFontDeclaration(UIUtil.getLabelFont())).append(""); builder.append("").append(myChannel.getName()).append("
"); - builder.append(AbstractUpdateDialog.formatLinks(myChannel.getLatestBuild().getMessage())).append("

"); + builder.append(StringUtil.formatLinks(myChannel.getLatestBuild().getMessage())).append("

"); LicensingFacade facade = LicensingFacade.getInstance(); if (facade != null) { if (!myChannel.getLicensing().equals(UpdateChannel.LICENSING_EAP)) { diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java index b7aa7416e65f..af11cfe29660 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/UpdateInfoDialog.java @@ -21,6 +21,7 @@ import com.intellij.openapi.application.ApplicationInfo; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.BrowserHyperlinkListener; import com.intellij.ui.components.JBScrollPane; import com.intellij.util.ui.UIUtil; @@ -204,7 +205,7 @@ class UpdateInfoDialog extends AbstractUpdateDialog { if (myLatestBuild.getMessage() != null) { StringBuilder builder = new StringBuilder(); builder.append("").append(UIUtil.getCssFontDeclaration(UIUtil.getLabelFont())).append("") - .append(AbstractUpdateDialog.formatLinks(myLatestBuild.getMessage())) + .append(StringUtil.formatLinks(myLatestBuild.getMessage())) .append(""); myUpdateMessageLabel.setText(builder.toString()); myUpdateMessageLabel.addHyperlinkListener(new BrowserHyperlinkListener()); diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index 06a6e6e61461..f2ef785176c3 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -2127,4 +2127,15 @@ public class StringUtil { } return false; } + + public static String formatLinks(String message) { + Pattern linkPattern = Pattern.compile("http://[a-zA-Z0-9\\./\\-\\+]+"); + StringBuffer result = new StringBuffer(); + Matcher m = linkPattern.matcher(message); + while (m.find()) { + m.appendReplacement(result, "" + m.group() + ""); + } + m.appendTail(result); + return result.toString(); + } } diff --git a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java index fef119fc77fb..9204fd0a2931 100644 --- a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java +++ b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java @@ -89,4 +89,8 @@ public class StringUtilTest extends TestCase { assertEquals(1 ,StringUtil.naturalCompare("7403515080361171695", "07403515080361171694")); assertEquals(-14, StringUtil.naturalCompare("_firstField", "myField1")); } + + public void testFormatLinks() { + assertEquals("http://a-b+c", StringUtil.formatLinks("http://a-b+c")); + } }