544 |
insertUpdate(event, attributes); |
insertUpdate(event, attributes); |
545 |
writeUnlock(); |
writeUnlock(); |
546 |
|
|
547 |
fireInsertUpdate(event); |
if (event.modified) |
548 |
|
fireInsertUpdate(event); |
549 |
if (undo != null) |
if (undo != null) |
550 |
fireUndoableEditUpdate(new UndoableEditEvent(this, undo)); |
fireUndoableEditUpdate(new UndoableEditEvent(this, undo)); |
551 |
} |
} |
673 |
new DefaultDocumentEvent(offset, length, |
new DefaultDocumentEvent(offset, length, |
674 |
DocumentEvent.EventType.REMOVE); |
DocumentEvent.EventType.REMOVE); |
675 |
|
|
|
// Here we set up the parameters for an ElementChange, if one |
|
|
// needs to be added to the DocumentEvent later |
|
|
Element root = getDefaultRootElement(); |
|
|
int start = root.getElementIndex(offset); |
|
|
int end = root.getElementIndex(offset + length); |
|
|
|
|
|
Element[] removed = new Element[end - start + 1]; |
|
|
for (int i = start; i <= end; i++) |
|
|
removed[i - start] = root.getElement(i); |
|
|
|
|
676 |
removeUpdate(event); |
removeUpdate(event); |
677 |
|
|
|
Element[] added = new Element[1]; |
|
|
added[0] = root.getElement(start); |
|
678 |
boolean shouldFire = content.getString(offset, length).length() != 0; |
boolean shouldFire = content.getString(offset, length).length() != 0; |
679 |
|
|
680 |
writeLock(); |
writeLock(); |
683 |
|
|
684 |
postRemoveUpdate(event); |
postRemoveUpdate(event); |
685 |
|
|
|
GapContent.UndoRemove changes = null; |
|
|
if (content instanceof GapContent) |
|
|
changes = (GapContent.UndoRemove) temp; |
|
|
|
|
|
if (changes != null && !(start == end)) |
|
|
{ |
|
|
// We need to add an ElementChange to our DocumentEvent |
|
|
ElementEdit edit = new ElementEdit (root, start, removed, added); |
|
|
event.addEdit(edit); |
|
|
} |
|
|
|
|
686 |
if (shouldFire) |
if (shouldFire) |
687 |
fireRemoveUpdate(event); |
fireRemoveUpdate(event); |
688 |
} |
} |
1810 |
Hashtable changes; |
Hashtable changes; |
1811 |
|
|
1812 |
/** |
/** |
1813 |
|
* Indicates if this event has been modified or not. This is used to |
1814 |
|
* determine if this event is thrown. |
1815 |
|
*/ |
1816 |
|
boolean modified; |
1817 |
|
|
1818 |
|
/** |
1819 |
* Creates a new <code>DefaultDocumentEvent</code>. |
* Creates a new <code>DefaultDocumentEvent</code>. |
1820 |
* |
* |
1821 |
* @param offset the starting offset of the change |
* @param offset the starting offset of the change |
1829 |
this.length = length; |
this.length = length; |
1830 |
this.type = type; |
this.type = type; |
1831 |
changes = new Hashtable(); |
changes = new Hashtable(); |
1832 |
|
modified = false; |
1833 |
} |
} |
1834 |
|
|
1835 |
/** |
/** |
1844 |
// XXX - Fully qualify ElementChange to work around gcj bug #2499. |
// XXX - Fully qualify ElementChange to work around gcj bug #2499. |
1845 |
if (edit instanceof DocumentEvent.ElementChange) |
if (edit instanceof DocumentEvent.ElementChange) |
1846 |
{ |
{ |
1847 |
|
modified = true; |
1848 |
DocumentEvent.ElementChange elEdit = |
DocumentEvent.ElementChange elEdit = |
1849 |
(DocumentEvent.ElementChange) edit; |
(DocumentEvent.ElementChange) edit; |
1850 |
changes.put(elEdit.getElement(), elEdit); |
changes.put(elEdit.getElement(), elEdit); |
2129 |
*/ |
*/ |
2130 |
public String getName() |
public String getName() |
2131 |
{ |
{ |
2132 |
return ContentElementName; |
String name = super.getName(); |
2133 |
|
if (name == null) |
2134 |
|
name = ContentElementName; |
2135 |
|
return name; |
2136 |
} |
} |
2137 |
|
|
2138 |
/** |
/** |