try
{
h2 = harness;
ElementStructure4 doc = new ElementStructure4();
SimpleAttributeSet atts = new SimpleAttributeSet();
Element root = doc.getDefaultRootElement();
// Add strike trough text.
atts.addAttribute(StyleConstants.StrikeThrough, Boolean.TRUE);
doc.insertString(0, "Strike through text.\n", atts);
atts.removeAttributes(atts);
harness.checkPoint("after first insertion");
harness.check(root.getElementCount(), 2);
harness.check(root.getElement(0).getStartOffset(), 0);
harness.check(root.getElement(0).getEndOffset(), 21);
harness.check(root.getElement(1).getStartOffset(), 21);
harness.check(root.getElement(1).getEndOffset(), 22);
// Add plain text in front.
doc.insertString(0, "a", null);
harness.checkPoint("after second insertion");
harness.check(root.getElement(0).getElementCount() == 2);
harness.check(root.getElement(1).getElementCount() == 1);
doc.insertString(1, "b", null);
harness.checkPoint("after second insertion");
harness.check(root.getElement(0).getElementCount() == 2);
harness.check(root.getElement(1).getElementCount() == 1);
harness.checkPoint("final structure");
Element first = root.getElement(0).getElement(0);
harness.check(first.getStartOffset() == 0);
harness.check(first.getEndOffset() == 2);
Element second = root.getElement(0).getElement(1);
harness.check(second.getStartOffset() == 2);
harness.check(second.getEndOffset() == 23);
// printElements(doc.getDefaultRootElement(), 0);
}
catch (Exception t)
{
// t.printStackTrace();