616 |
DefaultDocumentEvent event = |
DefaultDocumentEvent event = |
617 |
new DefaultDocumentEvent(offset, length, |
new DefaultDocumentEvent(offset, length, |
618 |
DocumentEvent.EventType.REMOVE); |
DocumentEvent.EventType.REMOVE); |
619 |
|
|
620 |
|
// Here we set up the parameters for an ElementChange, if one |
621 |
|
// needs to be added to the DocumentEvent later |
622 |
|
Element root = getDefaultRootElement(); |
623 |
|
int start = root.getElementIndex(offset); |
624 |
|
int end = root.getElementIndex(offset + length); |
625 |
|
|
626 |
|
Element[] removed = new Element[end - start + 1]; |
627 |
|
for (int i = start; i <= end; i++) |
628 |
|
removed[i - start] = root.getElement(i); |
629 |
|
|
630 |
removeUpdate(event); |
removeUpdate(event); |
631 |
|
|
632 |
|
Element[] added = new Element[1]; |
633 |
|
added[0] = root.getElement(start); |
634 |
boolean shouldFire = content.getString(offset, length).length() != 0; |
boolean shouldFire = content.getString(offset, length).length() != 0; |
635 |
content.remove(offset, length); |
|
636 |
|
UndoableEdit temp = content.remove(offset, length); |
637 |
|
|
638 |
postRemoveUpdate(event); |
postRemoveUpdate(event); |
639 |
|
|
640 |
|
GapContent.UndoRemove changes = null; |
641 |
|
if (content instanceof GapContent) |
642 |
|
changes = (GapContent.UndoRemove) temp; |
643 |
|
|
644 |
|
if (changes != null) |
645 |
|
{ |
646 |
|
// We need to add an ElementChange to our DocumentEvent |
647 |
|
ElementEdit edit = new ElementEdit (root, start, removed, added); |
648 |
|
event.addEdit(edit); |
649 |
|
} |
650 |
|
|
651 |
if (shouldFire) |
if (shouldFire) |
652 |
fireRemoveUpdate(event); |
fireRemoveUpdate(event); |
653 |
} |
} |