public void iterate(MarkupIterator iterator, int endOffset) { while (!iterator.atEnd()) { iterator.advance(); int startOffset = iterator.getStartOffset(); if (startOffset >= endOffset) { break; } if (myStartOffset < 0) { myStartOffset = startOffset; } boolean whiteSpacesOnly = CharArrayUtil.isEmptyOrSpaces(myText, startOffset, iterator.getEndOffset()); processBackground(startOffset, iterator.getBackgroundColor()); if (!whiteSpacesOnly) { processForeground(startOffset, iterator.getForegroundColor()); processFontFamilyName(startOffset, iterator.getFontFamilyName()); processFontStyle(startOffset, iterator.getFontStyle()); } } addTextIfPossible(endOffset); }