remaining part of IDEA-72438

This commit is contained in:
Dmitry Jemerov
2011-10-12 18:17:31 +02:00
parent 4302a60aa9
commit 514b53cb51
5 changed files with 19 additions and 15 deletions
@@ -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, "<a href=\"" + m.group() + "\">" + m.group() + "</a>");
}
m.appendTail(result);
return result.toString();
}
}
@@ -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("<html>");
builder.append("<head>").append(UIUtil.getCssFontDeclaration(UIUtil.getLabelFont())).append("</head><body>");
builder.append("<b>").append(myChannel.getName()).append("</b><br>");
builder.append(AbstractUpdateDialog.formatLinks(myChannel.getLatestBuild().getMessage())).append("<br><br>");
builder.append(StringUtil.formatLinks(myChannel.getLatestBuild().getMessage())).append("<br><br>");
LicensingFacade facade = LicensingFacade.getInstance();
if (facade != null) {
if (!myChannel.getLicensing().equals(UpdateChannel.LICENSING_EAP)) {
@@ -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("<html><head>").append(UIUtil.getCssFontDeclaration(UIUtil.getLabelFont())).append("</head><body>")
.append(AbstractUpdateDialog.formatLinks(myLatestBuild.getMessage()))
.append(StringUtil.formatLinks(myLatestBuild.getMessage()))
.append("</body></html>");
myUpdateMessageLabel.setText(builder.toString());
myUpdateMessageLabel.addHyperlinkListener(new BrowserHyperlinkListener());
@@ -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, "<a href=\"" + m.group() + "\">" + m.group() + "</a>");
}
m.appendTail(result);
return result.toString();
}
}
@@ -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("<a href=\"http://a-b+c\">http://a-b+c</a>", StringUtil.formatLinks("http://a-b+c"));
}
}