Защита диапазона текстового документа
Вы можете защитить от изменений диапазон текстового документа. Данные в таком диапазоне нельзя модифицировать до снятия защиты.
Используйте метод Range.lockContent() для установки защиты:
// Защита первого абзаца документа:
Range textRange = document.getRange().getBegin().getCurrentRange(TextUnit.Paragraph);
textRange.lockContent();
При попытке редактирования защищенного фрагмента возникает исключение DocumentModificationError:
Position pos = textRange.getContentEnd().getPreviousPosition(10);
pos.insertText("My Text"); // DocumentModificationError
Чтобы определить, защищен ли диапазон документа, используйте метод Range.isContentLocked(). Он возвращает true, если текущий диапазон защищен целиком или содержит защищенные фрагменты:
Console.WriteLine(textRange.isContentLocked()); // True
Console.WriteLine(document.getRange().isContentLocked()); // True
Для снятия защиты, вызовите метод Range.unlockContent() защищенного фрагмента или диапазона текста, который его содержит:
textRange.unlockContent();
// или
document.getRange().unlockContent();
Также вы можете снять защиту только с части диапазона:
// Снятие защиты с последнего предложения защищенного абзаца:
textRange.getContentEnd().getPreviousRange(TextUnit.Sentence).unlockContent();