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]

Reply via email to