Author: fanningpj
Date: Wed Nov 17 23:04:26 2021
New Revision: 1895127
URL: http://svn.apache.org/viewvc?rev=1895127&view=rev
Log:
try to make comments table more extensible
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFVMLDrawing.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java?rev=1895127&r1=1895126&r2=1895127&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/model/CommentsTable.java
Wed Nov 17 23:04:26 2021
@@ -24,6 +24,7 @@ import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import com.microsoft.schemas.vml.CTShape;
import org.apache.poi.ooxml.POIXMLDocumentPart;
@@ -287,6 +288,29 @@ public class CommentsTable extends POIXM
}
/**
+ * Remove the comment at cellRef location, if one exists
+ *
+ * @param rowNums the rows for which all comments will be removed
+ * @since POI 5.2.0
+ */
+ public void removeCommentsFromRows(XSSFSheet sheet, Set<Integer> rowNums) {
+ CTCommentList lst = getCTComments().getCommentList();
+ XSSFVMLDrawing vml = sheet.getVMLDrawing(false);
+ for (CTComment comment : lst.getCommentArray()) {
+ String strRef = comment.getRef();
+ CellAddress ref = new CellAddress(strRef);
+
+ // is this comment part of the current row?
+ if(rowNums.contains(ref.getRow())) {
+ removeComment(ref);
+ if (vml != null) {
+ vml.removeCommentShape(ref.getRow(), ref.getColumn());
+ }
+ }
+ }
+ }
+
+ /**
* Returns the underlying CTComments list xmlbean
*
* @return underlying comments list xmlbean
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java?rev=1895127&r1=1895126&r2=1895127&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
Wed Nov 17 23:04:26 2021
@@ -3052,17 +3052,7 @@ public class XSSFSheet extends POIXMLDoc
// also remove any comments associated with this row
if (sheetComments != null) {
- CTCommentList lst = sheetComments.getCTComments().getCommentList();
- for (CTComment comment : lst.getCommentArray()) {
- String strRef = comment.getRef();
- CellAddress ref = new CellAddress(strRef);
-
- // is this comment part of the current row?
- if(rowsToRemoveSet.contains(ref.getRow())) {
- sheetComments.removeComment(ref);
- vml.removeCommentShape(ref.getRow(), ref.getColumn());
- }
- }
+ sheetComments.removeCommentsFromRows(this, rowsToRemoveSet);
}
// also remove any hyperlinks associated with this row
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFVMLDrawing.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFVMLDrawing.java?rev=1895127&r1=1895126&r2=1895127&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFVMLDrawing.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFVMLDrawing.java
Wed Nov 17 23:04:26 2021
@@ -314,7 +314,11 @@ public final class XSSFVMLDrawing extend
return (crow == row && ccol == col);
}
- protected boolean removeCommentShape(int row, int col){
+ /**
+ * Internal use only
+ */
+ @Internal
+ public boolean removeCommentShape(int row, int col){
XmlCursor cur = root.getXml().newCursor();
for (boolean found = cur.toFirstChild(); found; found =
cur.toNextSibling()) {
XmlObject itm = cur.getObject();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]