public StyledLabelBuilder register(String text, String format) { ParsedStyleResult result = parseStyleAnnotation(format.toCharArray(), 0, this); styles.put(text, new StyleRange(result.fontStyle, result.fontColor, result.backgroundColor, result.additionalStyle, result.lineColor)); return this; }
private static ParsedStyleResult parseStyleAnnotation(char[] text, int start, StyledLabelBuilder builder) { ParsedStyleResult result = new ParsedStyleResult(); return parseStyleAnnotation(text, start, builder, result); }
private static ParsedStyleResult parseStylePart(char[] text, int start, StyledLabelBuilder builder) { ParsedStyleResult result = new ParsedStyleResult(); int findIndex, i = start; // find end of text first findIndex = findNext(text, ':', i); int indexMatchingBracket = findMatchingBracket(text, start); if (findIndex < 0 || findIndex > indexMatchingBracket) { return null; } result.text = createTrimmedString(text, i, findIndex - 1); return parseStyleAnnotation(text, findIndex + 1, builder, result); }
public StyledLabelBuilder add(String text, String style) { StyleRange range = (StyleRange) styles.get(style); // not a stored style, thus it might be an annotation if (range == null) { ParsedStyleResult result = parseStyleAnnotation(style.toCharArray(), 0, this); return add(text, result.fontStyle, result.fontColor, result.backgroundColor, result.additionalStyle, result.lineColor); } return add(text, range.getFontStyle(), range.getFontColor(), range.getAdditionalStyle(), range.getLineColor(), range.getLineStroke(), range.getFontShrinkRatio()); }