You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2007/03/06 22:07:11 UTC
svn commit: r515302 - in /xerces/java/trunk/src/org/apache/xerces/dom:
CoreDocumentImpl.java DocumentImpl.java RangeImpl.java
Author: mrglavas
Date: Tue Mar 6 13:07:10 2007
New Revision: 515302
URL: http://svn.apache.org/viewvc?view=rev&rev=515302
Log:
Fixing JIRA Bug #1229:
http://issues.apache.org/jira/browse/XERCESJ-1229
Ensuring that the start and end offsets of Ranges which have a CDATASection/Comment/ProcessingInstruction
start and/or end container are updated when text is inserted, deleted or replaced. This was not working
before.
Modified:
xerces/java/trunk/src/org/apache/xerces/dom/CoreDocumentImpl.java
xerces/java/trunk/src/org/apache/xerces/dom/DocumentImpl.java
xerces/java/trunk/src/org/apache/xerces/dom/RangeImpl.java
Modified: xerces/java/trunk/src/org/apache/xerces/dom/CoreDocumentImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/dom/CoreDocumentImpl.java?view=diff&rev=515302&r1=515301&r2=515302
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/dom/CoreDocumentImpl.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/dom/CoreDocumentImpl.java Tue Mar 6 13:07:10 2007
@@ -2647,21 +2647,21 @@
* A method to be called when some text was changed in a text node,
* so that live objects can be notified.
*/
- void replacedText(NodeImpl node) {
+ void replacedText(CharacterDataImpl node) {
}
/**
* A method to be called when some text was deleted from a text node,
* so that live objects can be notified.
*/
- void deletedText(NodeImpl node, int offset, int count) {
+ void deletedText(CharacterDataImpl node, int offset, int count) {
}
/**
* A method to be called when some text was inserted into a text node,
* so that live objects can be notified.
*/
- void insertedText(NodeImpl node, int offset, int count) {
+ void insertedText(CharacterDataImpl node, int offset, int count) {
}
/**
Modified: xerces/java/trunk/src/org/apache/xerces/dom/DocumentImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/dom/DocumentImpl.java?view=diff&rev=515302&r1=515301&r2=515302
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/dom/DocumentImpl.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/dom/DocumentImpl.java Tue Mar 6 13:07:10 2007
@@ -323,14 +323,14 @@
* A method to be called when some text was changed in a text node,
* so that live objects can be notified.
*/
- void replacedText(NodeImpl node) {
+ void replacedText(CharacterDataImpl node) {
// notify ranges
if (ranges != null) {
notifyRangesReplacedText(node);
}
}
- private void notifyRangesReplacedText(NodeImpl node) {
+ private void notifyRangesReplacedText(CharacterDataImpl node) {
final int size = ranges.size();
for (int i = 0; i != size; i++) {
((RangeImpl)ranges.elementAt(i)).receiveReplacedText(node);
@@ -341,14 +341,14 @@
* A method to be called when some text was deleted from a text node,
* so that live objects can be notified.
*/
- void deletedText(NodeImpl node, int offset, int count) {
+ void deletedText(CharacterDataImpl node, int offset, int count) {
// notify ranges
if (ranges != null) {
notifyRangesDeletedText(node, offset, count);
}
}
- private void notifyRangesDeletedText(NodeImpl node, int offset, int count) {
+ private void notifyRangesDeletedText(CharacterDataImpl node, int offset, int count) {
final int size = ranges.size();
for (int i = 0; i != size; i++) {
((RangeImpl)ranges.elementAt(i)).receiveDeletedText(node, offset, count);
@@ -359,14 +359,14 @@
* A method to be called when some text was inserted into a text node,
* so that live objects can be notified.
*/
- void insertedText(NodeImpl node, int offset, int count) {
+ void insertedText(CharacterDataImpl node, int offset, int count) {
// notify ranges
if (ranges != null) {
notifyRangesInsertedText(node, offset, count);
}
}
- private void notifyRangesInsertedText(NodeImpl node, int offset, int count) {
+ private void notifyRangesInsertedText(CharacterDataImpl node, int offset, int count) {
final int size = ranges.size();
for (int i = 0; i != size; i++) {
((RangeImpl)ranges.elementAt(i)).receiveInsertedText(node, offset, count);
Modified: xerces/java/trunk/src/org/apache/xerces/dom/RangeImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/dom/RangeImpl.java?view=diff&rev=515302&r1=515301&r2=515302
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/dom/RangeImpl.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/dom/RangeImpl.java Tue Mar 6 13:07:10 2007
@@ -892,24 +892,22 @@
* The text has already beeen inserted.
* Fix-up any offsets.
*/
- void receiveDeletedText(Node node, int offset, int count) {
+ void receiveDeletedText(CharacterDataImpl node, int offset, int count) {
if (node == null) return;
if (fDeleteNode == node) return;
- if (node == fStartContainer
- && fStartContainer.getNodeType() == Node.TEXT_NODE) {
- if (fStartOffset > offset+count) {
- fStartOffset = offset+(fStartOffset-(offset+count));
- } else
- if (fStartOffset > offset) {
+ if (node == fStartContainer) {
+ if (fStartOffset > offset + count) {
+ fStartOffset = offset + (fStartOffset - (offset + count));
+ }
+ else if (fStartOffset > offset) {
fStartOffset = offset;
}
}
- if (node == fEndContainer
- && fEndContainer.getNodeType() == Node.TEXT_NODE) {
- if (fEndOffset > offset+count) {
- fEndOffset = offset+(fEndOffset-(offset+count));
- } else
- if (fEndOffset > offset) {
+ if (node == fEndContainer) {
+ if (fEndOffset > offset + count) {
+ fEndOffset = offset + (fEndOffset - (offset + count));
+ }
+ else if (fEndOffset > offset) {
fEndOffset = offset;
}
}
@@ -926,43 +924,39 @@
}
- /** This function is called from DOM.
- * The text has already beeen inserted.
+ /**
+ * This function is called from DOM.
+ * The text has already beeen inserted.
* Fix-up any offsets.
*/
- void receiveInsertedText(Node node, int index, int len) {
+ void receiveInsertedText(CharacterDataImpl node, int index, int len) {
if (node == null) return;
if (fInsertNode == node) return;
- if (node == fStartContainer
- && fStartContainer.getNodeType() == Node.TEXT_NODE) {
+ if (node == fStartContainer) {
if (index < fStartOffset) {
- fStartOffset = fStartOffset+len;
+ fStartOffset = fStartOffset + len;
}
}
- if (node == fEndContainer
- && fEndContainer.getNodeType() == Node.TEXT_NODE) {
+ if (node == fEndContainer) {
if (index < fEndOffset) {
- fEndOffset = fEndOffset+len;
+ fEndOffset = fEndOffset + len;
}
}
-
}
- /** This function is called from DOM.
- * The text has already beeen replaced.
+ /**
+ * This function is called from DOM.
+ * The text has already beeen replaced.
* Fix-up any offsets.
*/
- void receiveReplacedText(Node node) {
+ void receiveReplacedText(CharacterDataImpl node) {
if (node == null) return;
- if (node == fStartContainer
- && fStartContainer.getNodeType() == Node.TEXT_NODE) {
+ if (node == fStartContainer) {
fStartOffset = 0;
}
- if (node == fEndContainer
- && fEndContainer.getNodeType() == Node.TEXT_NODE) {
+ if (node == fEndContainer) {
fEndOffset = 0;
}
-
}
/** This function is called from the DOM.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org