package org.openbakery.racecontrol.util; import java.util.regex.Matcher; import java.util.regex.Pattern; public class LfsNames { private static String[] colorCodes = { "#000000", "#ff0000", "#00aa00", "#cccc00", "#0000ff", "#993366", "#6666FF", "#777777", "#006600" }; public static String getHtmlColoredName(String name) { if (name == null || name.length() == 0) { return name; } Pattern pattern = Pattern.compile("\\^(\\d)(.*?)"); StringBuffer buffer = new StringBuffer(); Matcher matcher = pattern.matcher(name); boolean patternFound = false; while (matcher.find()) { matcher.appendReplacement(buffer, matcher.group(2)); int colorCode = 0; try { colorCode = Integer.parseInt(matcher.group(1)); } catch (NumberFormatException ex) { // colorCode is already 0 } if (colorCode < colorCodes.length) { if (patternFound) { buffer.append("</span>"); } buffer.append("<span style=\"color:" + colorCodes[colorCode] + "\">"); } patternFound = true; } matcher.appendTail(buffer); if (patternFound) { buffer.append("</span>"); } return buffer.toString(); } }