@Override
public void insertIndexInterval(int index, int length, boolean before) {
super.insertIndexInterval(index, length, before);
int index0 = before ? index : index + 1;
int index1 = (index0 + length) - 1;
int contentSize = informer.getContentSize();
InsetPart part0 = inset.toInnerSpace(index0, contentSize);
InsetPart part1 = inset.toInnerSpace(index1, contentSize);
if (part0.getKind() == InsetPart.PartKind.CONTENT
|| part1.getKind() == InsetPart.PartKind.CONTENT
|| (part0.getKind() == InsetPart.PartKind.BEFORE && part1.getKind() == InsetPart.PartKind.AFTER)) {
if (part0.getKind() == InsetPart.PartKind.BEFORE) {
index0 = 0;
} else {
index0 = part0.getValue();
}
if (part1.getKind() == InsetPart.PartKind.AFTER) {
index1 = contentSize - 1;
} else {
index1 = part1.getValue();
}
length = index1 - index0 + 1;
delegate.insertIndexInterval(before ? index0 : index0 - 1, length, before);
}
}