@Override public int firstAnnotationChange(int start, int end, String key, String fromValue) { return getDelegate().firstAnnotationChange(start, end, key, fromValue); }
/** * @param doc * @return true if the document's title is explicitly set */ public static boolean hasExplicitTitle(MutableDocument<?, ?, ?> doc) { int start = doc.firstAnnotationChange(0, doc.size(), TITLE_KEY, null); if (start != -1 && !doc.getAnnotation(start, TITLE_KEY).isEmpty()) { return true; } else { return false; } }
public void testFindingImplicitTitleClearsFromInvalidDocuments() { getDoc("<body><line/>Some text.<line/>Some more text</body>"); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text.", TitleHelper.extractTitle(doc)); doc.emptyElement(doc.getDocumentElement()); doc.appendXml(XmlStringBuilder.createText("Blah. Blah").wrap("x")); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); assertEquals(-1, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); }
public void testFindingImplicitTitleClearsFromInvalidDocuments() { getDoc("<body><line/>Some text.<line/>Some more text</body>"); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("Some text.", TitleHelper.extractTitle(doc)); doc.emptyElement(doc.getDocumentElement()); doc.appendXml(XmlStringBuilder.createText("Blah. Blah").wrap("x")); TitleHelper.maybeFindAndSetImplicitTitle(doc); assertEquals("", TitleHelper.extractTitle(doc)); assertFalse(TitleHelper.hasExplicitTitle(doc)); assertEquals(-1, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); }
setAnnotationOverRange(doc, caret, "Y", null, start, end); assertNull(doc.getAnnotation(start, "Y")); assertEquals(doc.firstAnnotationChange(start, end + 1, "Y", null), end); setAnnotationOverRange(doc, caret, "A", "a", start, end); assertEquals(doc.getAnnotation(start, "A"), "a"); assertEquals(doc.firstAnnotationChange(start, end, "A", "a"), -1);
setAnnotationOverRange(doc, caret, "Y", null, start, end); assertNull(doc.getAnnotation(start, "Y")); assertEquals(doc.firstAnnotationChange(start, end + 1, "Y", null), end); setAnnotationOverRange(doc, caret, "A", "a", start, end); assertEquals(doc.getAnnotation(start, "A"), "a"); assertEquals(doc.firstAnnotationChange(start, end, "A", "a"), -1);
/** check clearing annotations for (range, collapsed) */ public void testClearAnnotations() { // cover the 'owd', offsets 4 to 7 useCaretAnnotations("W:w"); useSelection(4, 7); // clear ranged annotations //useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); //assertFalse(clearAnnotationsOverSelection(buildContext(), "?")); //assertTrue(clearAnnotationsOverSelection(buildContext(), "Q", "X", "Y")); //assertNull(doc.getAnnotation(start, "X")); //assertEquals(doc.firstAnnotationChange(start, end + 1, "Y", null), end); useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); assertFalse(clearAnnotationsOverRange(doc, caret, new String[]{"?"}, start, end)); assertTrue(clearAnnotationsOverRange(doc, caret, new String[]{"Q", "X", "Y"}, start, end)); assertNull(doc.getAnnotation(start, "X")); assertEquals(doc.firstAnnotationChange(start, end + 1, "Y", null), end); // clear over caret annotation useSelection(5, 5); //assertFalse(clearAnnotationsOverSelection(buildContext(), "P")); // clearing a direct annotation: useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); assertTrue(clearAnnotationsOverRange(doc, caret, new String[]{"Y"}, start, end)); assertTrue(caret.hasAnnotation("Y")); assertNull(caret.getAnnotation("Y")); // clearing one that was already a caret annotation: useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); assertTrue(clearAnnotationsOverRange(doc, caret, new String[]{"W"}, start, end)); assertTrue(caret.hasAnnotation("W")); assertNull(caret.getAnnotation("W")); }
/** check clearing annotations for (range, collapsed) */ public void testClearAnnotations() { // cover the 'owd', offsets 4 to 7 useCaretAnnotations("W:w"); useSelection(4, 7); // clear ranged annotations //useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); //assertFalse(clearAnnotationsOverSelection(buildContext(), "?")); //assertTrue(clearAnnotationsOverSelection(buildContext(), "Q", "X", "Y")); //assertNull(doc.getAnnotation(start, "X")); //assertEquals(doc.firstAnnotationChange(start, end + 1, "Y", null), end); useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); assertFalse(clearAnnotationsOverRange(doc, caret, new String[]{"?"}, start, end)); assertTrue(clearAnnotationsOverRange(doc, caret, new String[]{"Q", "X", "Y"}, start, end)); assertNull(doc.getAnnotation(start, "X")); assertEquals(doc.firstAnnotationChange(start, end + 1, "Y", null), end); // clear over caret annotation useSelection(5, 5); //assertFalse(clearAnnotationsOverSelection(buildContext(), "P")); // clearing a direct annotation: useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); assertTrue(clearAnnotationsOverRange(doc, caret, new String[]{"Y"}, start, end)); assertTrue(caret.hasAnnotation("Y")); assertNull(caret.getAnnotation("Y")); // clearing one that was already a caret annotation: useDocument("howdy", "A:a:5:7", "X:x:4:7", "Y:y:3:8"); assertTrue(clearAnnotationsOverRange(doc, caret, new String[]{"W"}, start, end)); assertTrue(caret.hasAnnotation("W")); assertNull(caret.getAnnotation("W")); }
doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); assertEquals("", TitleHelper.extractTitle(doc)); assertEquals(firstLineLocation, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); assertEquals(firstLineLocation + 2, doc.lastAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); assertFalse(TitleHelper.hasExplicitTitle(doc));
doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); assertEquals("", TitleHelper.extractTitle(doc)); assertEquals(firstLineLocation, doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); assertEquals(firstLineLocation + 2, doc.lastAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); doc.firstAnnotationChange(0, doc.size(), TitleHelper.TITLE_KEY, null)); assertFalse(TitleHelper.hasExplicitTitle(doc));