}
localTextPane.getDocument().remove(startOffset - offsetBefore, endOffset + offsetAfter - startOffset + offsetBefore);
localTextPane.getDocument().insertString(startOffset - offsetBefore, newText, localElement.getAttributes());
if ((offsetBefore != 0) || (offsetAfter != 0)) {
SimpleAttributeSet attr = new SimpleAttributeSet();
attr.addAttribute(MWPaneFormatter.ATTRIBUTE_TEXT, textAttr);
localTextPane.getStyledDocument().setCharacterAttributes(
startOffset - offsetBefore, newText.length(), attr, false);
}
localTextPane.setCaretPosition(startOffset - offsetBefore);
localTextPane.moveCaretPosition(startOffset - offsetBefore + newText.length());