mirror of https://github.com/apache/poi.git
More rich text work
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@377169 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4157c96aff
commit
4cba14090b
|
@ -208,25 +208,19 @@ public class TextRun
|
||||||
ensureStyleAtomPresent();
|
ensureStyleAtomPresent();
|
||||||
|
|
||||||
// Update the text length for its Paragraph and Character stylings
|
// Update the text length for its Paragraph and Character stylings
|
||||||
LinkedList pStyles = _styleAtom.getParagraphStyles();
|
TextPropCollection pCol = run._getRawParagraphStyle();
|
||||||
LinkedList cStyles = _styleAtom.getCharacterStyles();
|
TextPropCollection cCol = run._getRawCharacterStyle();
|
||||||
TextPropCollection pCol = (TextPropCollection)pStyles.get(runID);
|
// Character style covers the new run
|
||||||
TextPropCollection cCol = (TextPropCollection)cStyles.get(runID);
|
|
||||||
pCol.updateTextSize(s.length());
|
|
||||||
cCol.updateTextSize(s.length());
|
cCol.updateTextSize(s.length());
|
||||||
|
// Paragraph might cover other runs to, so remove old size and add new one
|
||||||
|
pCol.updateTextSize( pCol.getCharactersCovered() - run.getLength() + s.length());
|
||||||
|
|
||||||
// Build up the new text
|
// Build up the new text
|
||||||
// As we go through, update the start position for all subsequent runs
|
// As we go through, update the start position for all subsequent runs
|
||||||
// The building relies on the old text still being present
|
// The building relies on the old text still being present
|
||||||
StringBuffer newText = new StringBuffer();
|
StringBuffer newText = new StringBuffer();
|
||||||
for(int i=0; i<_rtRuns.length; i++) {
|
for(int i=0; i<_rtRuns.length; i++) {
|
||||||
// Do we need to update the start position of this run?
|
int newStartPos = newText.length();
|
||||||
if(i <= runID) {
|
|
||||||
// Change is after this, so don't need to change start position
|
|
||||||
} else {
|
|
||||||
// Change has occured, so update start position
|
|
||||||
_rtRuns[i].updateStartPosition(newText.length());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build up the new text
|
// Build up the new text
|
||||||
if(i != runID) {
|
if(i != runID) {
|
||||||
|
@ -236,6 +230,15 @@ public class TextRun
|
||||||
// Affected run, so use new text
|
// Affected run, so use new text
|
||||||
newText.append(s);
|
newText.append(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do we need to update the start position of this run?
|
||||||
|
// (Need to get the text before we update the start pos)
|
||||||
|
if(i <= runID) {
|
||||||
|
// Change is after this, so don't need to change start position
|
||||||
|
} else {
|
||||||
|
// Change has occured, so update start position
|
||||||
|
_rtRuns[i].updateStartPosition(newStartPos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now we can save the new text
|
// Now we can save the new text
|
||||||
|
|
|
@ -87,6 +87,13 @@ public class RichTextRun
|
||||||
characterStyle = cStyle;
|
characterStyle = cStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the length of the text
|
||||||
|
*/
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch the text, in output suitable form
|
* Fetch the text, in output suitable form
|
||||||
*/
|
*/
|
||||||
|
@ -119,12 +126,12 @@ public class RichTextRun
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit Testing Only - get the underlying paragraph style collection.
|
* Internal Use Only - get the underlying paragraph style collection.
|
||||||
* For normal use, use the friendly setters and getters
|
* For normal use, use the friendly setters and getters
|
||||||
*/
|
*/
|
||||||
public TextPropCollection _getRawParagraphStyle() { return paragraphStyle; }
|
public TextPropCollection _getRawParagraphStyle() { return paragraphStyle; }
|
||||||
/**
|
/**
|
||||||
* Unit Testing Only - get the underlying character style collection.
|
* Internal Use Only - get the underlying character style collection.
|
||||||
* For normal use, use the friendly setters and getters
|
* For normal use, use the friendly setters and getters
|
||||||
*/
|
*/
|
||||||
public TextPropCollection _getRawCharacterStyle() { return characterStyle; }
|
public TextPropCollection _getRawCharacterStyle() { return characterStyle; }
|
||||||
|
|
Loading…
Reference in New Issue