Author: nick
Date: Tue Nov 4 23:55:23 2014
New Revision: 1636782
URL: http://svn.apache.org/r1636782
Log:
Patch from hishidama to add Comment.getClientAnchor(). This closes #12 from
github
Modified:
poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java
poi/trunk/src/java/org/apache/poi/ss/usermodel/Comment.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFComment.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java?rev=1636782&r1=1636781&r2=1636782&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java Tue Nov
4 23:55:23 2014
@@ -28,6 +28,7 @@ import org.apache.poi.hssf.record.NoteRe
import org.apache.poi.hssf.record.NoteStructureSubRecord;
import org.apache.poi.hssf.record.ObjRecord;
import org.apache.poi.hssf.record.TextObjectRecord;
+import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Comment;
/**
@@ -232,6 +233,17 @@ public class HSSFComment extends HSSFTex
}
@Override
+ public ClientAnchor getClientAnchor() {
+ HSSFAnchor ha = super.getAnchor();
+ if (ha instanceof ClientAnchor) {
+ return (ClientAnchor) ha;
+ }
+
+ throw new IllegalStateException("Anchor can not be changed in "
+ + ClientAnchor.class.getSimpleName());
+ }
+
+ @Override
public void setShapeType(int shapeType) {
throw new IllegalStateException("Shape type can not be changed in
"+this.getClass().getSimpleName());
}
Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/Comment.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/Comment.java?rev=1636782&r1=1636781&r2=1636782&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/Comment.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/Comment.java Tue Nov 4
23:55:23 2014
@@ -87,4 +87,10 @@ public interface Comment {
*/
void setString(RichTextString string);
+ /**
+ * Return defines position of this anchor in the sheet.
+ *
+ * @return defines position of this anchor in the sheet
+ */
+ public ClientAnchor getClientAnchor();
}
\ No newline at end of file
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFComment.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFComment.java?rev=1636782&r1=1636781&r2=1636782&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFComment.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFComment.java Tue
Nov 4 23:55:23 2014
@@ -16,15 +16,17 @@
==================================================================== */
package org.apache.poi.xssf.usermodel;
+import java.math.BigInteger;
+
+import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.model.CommentsTable;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComment;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
-import schemasMicrosoftComVml.CTShape;
-import java.math.BigInteger;
+import schemasMicrosoftComVml.CTShape;
public class XSSFComment implements Comment {
@@ -172,6 +174,18 @@ public class XSSFComment implements Comm
setString(new XSSFRichTextString(string));
}
+ @Override
+ public ClientAnchor getClientAnchor() {
+ String position = _vmlShape.getClientDataArray(0).getAnchorArray(0);
+ int[] pos = new int[8];
+ int i = 0;
+ for (String s : position.split(",")) {
+ pos[i++] = Integer.parseInt(s.trim());
+ }
+ XSSFClientAnchor ca = new XSSFClientAnchor(0, 0, 0, 0, pos[0], pos[2],
pos[4], pos[6]);
+ return ca;
+ }
+
/**
* @return the xml bean holding this comment's properties
*/
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java?rev=1636782&r1=1636781&r2=1636782&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java
Tue Nov 4 23:55:23 2014
@@ -19,6 +19,7 @@ package org.apache.poi.xssf.usermodel;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.ss.usermodel.BaseTestCellComment;
+import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.XSSFITestDataProvider;
@@ -167,4 +168,34 @@ public final class TestXSSFComment exten
assertEquals("", comment.getAuthor());
assertEquals(2, sheetComments.getNumberOfAuthors());
}
+
+ public void testGetClientAnchor() {
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet sheet = wb.createSheet();
+ XSSFDrawing drawing = sheet.createDrawingPatriarch();
+ XSSFComment comment;
+ ClientAnchor anchor;
+
+ comment = drawing.createCellComment(new XSSFClientAnchor(101, 102,
103, 104, 1, 2, 3, 4));
+ anchor = comment.getClientAnchor();
+ assertEquals(0, anchor.getDx1());
+ assertEquals(0, anchor.getDy1());
+ assertEquals(0, anchor.getDx2());
+ assertEquals(0, anchor.getDy2());
+ assertEquals(1, anchor.getCol1());
+ assertEquals(2, anchor.getRow1());
+ assertEquals(3, anchor.getCol2());
+ assertEquals(4, anchor.getRow2());
+
+ comment = drawing.createCellComment(new XSSFClientAnchor());
+ anchor = comment.getClientAnchor();
+ assertEquals(0, anchor.getDx1());
+ assertEquals(0, anchor.getDy1());
+ assertEquals(0, anchor.getDx2());
+ assertEquals(0, anchor.getDy2());
+ assertEquals(1, anchor.getCol1());
+ assertEquals(0, anchor.getRow1());
+ assertEquals(3, anchor.getCol2());
+ assertEquals(3, anchor.getRow2());
+ }
}
Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java?rev=1636782&r1=1636781&r2=1636782&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
(original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
Tue Nov 4 23:55:23 2014
@@ -19,6 +19,7 @@ package org.apache.poi.hssf.usermodel;
import org.apache.poi.hssf.HSSFITestDataProvider;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.ss.usermodel.BaseTestCellComment;
+import org.apache.poi.ss.usermodel.ClientAnchor;
/**
* Tests TestHSSFCellComment.
@@ -70,4 +71,34 @@ public final class TestHSSFComment exten
comment = cell.getCellComment();
assertEquals("c6", comment.getString().getString());
}
+
+ public void testGetClientAnchor() {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet();
+ HSSFPatriarch drawing = sheet.createDrawingPatriarch();
+ HSSFComment comment;
+ ClientAnchor anchor;
+
+ comment = drawing.createCellComment(new HSSFClientAnchor(101, 102,
103, 104, (short) 1, 2, (short) 3, 4));
+ anchor = comment.getClientAnchor();
+ assertEquals(101, anchor.getDx1());
+ assertEquals(102, anchor.getDy1());
+ assertEquals(103, anchor.getDx2());
+ assertEquals(104, anchor.getDy2());
+ assertEquals(1, anchor.getCol1());
+ assertEquals(2, anchor.getRow1());
+ assertEquals(3, anchor.getCol2());
+ assertEquals(4, anchor.getRow2());
+
+ comment = drawing.createCellComment(new HSSFClientAnchor());
+ anchor = comment.getClientAnchor();
+ assertEquals(0, anchor.getDx1());
+ assertEquals(0, anchor.getDy1());
+ assertEquals(0, anchor.getDx2());
+ assertEquals(0, anchor.getDy2());
+ assertEquals(0, anchor.getCol1());
+ assertEquals(0, anchor.getRow1());
+ assertEquals(0, anchor.getCol2());
+ assertEquals(0, anchor.getRow2());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]