mirror of
https://github.com/apache/poi.git
synced 2026-02-27 20:40:08 +08:00
remove comment iterator
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1895210 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
18bb41fb27
commit
3d44f76500
@ -74,14 +74,6 @@ public interface Comments {
|
||||
*/
|
||||
Iterator<CellAddress> getCellAddresses();
|
||||
|
||||
/**
|
||||
* @param sheet the sheet to check for comments (used to find drawing/shape data for comments) - set to null
|
||||
* if you don't need the drawing/shape data
|
||||
* @return iterator of comments
|
||||
* @since POI 5.2.0
|
||||
*/
|
||||
Iterator<XSSFComment> commentIterator(Sheet sheet);
|
||||
|
||||
/**
|
||||
* Create a new comment and add to the CommentTable.
|
||||
* @param sheet sheet to add comment to
|
||||
|
||||
@ -100,38 +100,6 @@ public class CommentsTable extends POIXMLDocumentPart implements Comments {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param sheet the sheet to check for comments (used to find drawing/shape data for comments) - set to null
|
||||
* if you don't need the drawing/shape data
|
||||
* @return iterator of comments
|
||||
* @since POI 5.2.0
|
||||
*/
|
||||
@Override
|
||||
public Iterator<XSSFComment> commentIterator(Sheet sheet) {
|
||||
XSSFVMLDrawing vml = getVMLDrawing(sheet, false);
|
||||
final CommentsTable table = this;
|
||||
return new Iterator<XSSFComment>() {
|
||||
private final CTComment[] commentsArray = getCTComments().getCommentList().getCommentArray();
|
||||
private int counter = 0;
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return counter < commentsArray.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XSSFComment next() {
|
||||
CTComment ctComment = commentsArray[counter++];
|
||||
CellAddress cellAddress = new CellAddress(ctComment.getRef());
|
||||
CTShape shape = null;
|
||||
if (vml != null) {
|
||||
shape = vml.findCommentShape(cellAddress.getRow(), cellAddress.getColumn());
|
||||
}
|
||||
return new XSSFComment(table, ctComment, shape);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Called after the reference is updated, so that
|
||||
* we can reflect that in our cache
|
||||
|
||||
@ -3112,19 +3112,21 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||
|
||||
// is there a change necessary for the current row?
|
||||
if(newrownum != rownum) {
|
||||
Iterator<XSSFComment> commentIterator = sheetComments.commentIterator(this);
|
||||
while (commentIterator.hasNext()) {
|
||||
XSSFComment oldComment = commentIterator.next();
|
||||
CellReference ref = new CellReference(oldComment.getRow(), oldComment.getColumn());
|
||||
Iterator<CellAddress> commentAddressIterator = sheetComments.getCellAddresses();
|
||||
while (commentAddressIterator.hasNext()) {
|
||||
CellAddress cellAddress = commentAddressIterator.next();
|
||||
|
||||
// is this comment part of the current row?
|
||||
if(ref.getRow() == rownum) {
|
||||
XSSFComment xssfComment = new XSSFComment(sheetComments, oldComment.getCTComment(),
|
||||
oldComment.getCTShape());
|
||||
if(cellAddress.getRow() == rownum) {
|
||||
XSSFComment oldComment = sheetComments.findCellComment(this, cellAddress);
|
||||
if (oldComment != null) {
|
||||
XSSFComment xssfComment = new XSSFComment(sheetComments, oldComment.getCTComment(),
|
||||
oldComment.getCTShape());
|
||||
|
||||
// we should not perform the shifting right here as we would then find
|
||||
// already shifted comments and would shift them again...
|
||||
commentsToShift.put(xssfComment, newrownum);
|
||||
// we should not perform the shifting right here as we would then find
|
||||
// already shifted comments and would shift them again...
|
||||
commentsToShift.put(xssfComment, newrownum);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3197,17 +3199,19 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
||||
|
||||
|
||||
if (sheetComments != null) {
|
||||
Iterator<XSSFComment> commentIterator = sheetComments.commentIterator(this);
|
||||
while (commentIterator.hasNext()) {
|
||||
XSSFComment oldComment = commentIterator.next();
|
||||
CellReference ref = new CellReference(oldComment.getRow(), oldComment.getColumn());
|
||||
Iterator<CellAddress> commentAddressIterator = sheetComments.getCellAddresses();
|
||||
while (commentAddressIterator.hasNext()) {
|
||||
CellAddress oldCommentAddress = commentAddressIterator.next();
|
||||
|
||||
int columnIndex =ref.getCol();
|
||||
int columnIndex = oldCommentAddress.getColumn();
|
||||
int newColumnIndex = shiftedRowNum(startColumnIndex, endColumnIndex, n, columnIndex);
|
||||
if(newColumnIndex != columnIndex){
|
||||
XSSFComment xssfComment = new XSSFComment(sheetComments, oldComment.getCTComment(),
|
||||
vml == null ? null : vml.findCommentShape(ref.getRow(), columnIndex));
|
||||
commentsToShift.put(xssfComment, newColumnIndex);
|
||||
if(newColumnIndex != columnIndex) {
|
||||
XSSFComment oldComment = sheetComments.findCellComment(this, oldCommentAddress);
|
||||
if (oldComment != null) {
|
||||
XSSFComment xssfComment = new XSSFComment(sheetComments, oldComment.getCTComment(),
|
||||
oldComment.getCTShape());
|
||||
commentsToShift.put(xssfComment, newColumnIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user