From commits-return-2739-apmail-poi-commits-archive=poi.apache.org@poi.apache.org Mon Jun 13 11:56:46 2011 Return-Path: X-Original-To: apmail-poi-commits-archive@minotaur.apache.org Delivered-To: apmail-poi-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 184C56F6B for ; Mon, 13 Jun 2011 11:56:46 +0000 (UTC) Received: (qmail 75246 invoked by uid 500); 13 Jun 2011 11:56:46 -0000 Delivered-To: apmail-poi-commits-archive@poi.apache.org Received: (qmail 75211 invoked by uid 500); 13 Jun 2011 11:56:46 -0000 Mailing-List: contact commits-help@poi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@poi.apache.org Delivered-To: mailing list commits@poi.apache.org Received: (qmail 75204 invoked by uid 99); 13 Jun 2011 11:56:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Jun 2011 11:56:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Jun 2011 11:56:43 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id F174C2388906; Mon, 13 Jun 2011 11:56:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1135103 - in /poi/trunk/src: documentation/content/xdocs/status.xml ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java Date: Mon, 13 Jun 2011 11:56:21 -0000 To: commits@poi.apache.org From: yegor@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110613115621.F174C2388906@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: yegor Date: Mon Jun 13 11:56:21 2011 New Revision: 1135103 URL: http://svn.apache.org/viewvc?rev=1135103&view=rev Log: Bug 50458: Fixed missing shapeId in XSSF drawings Modified: poi/trunk/src/documentation/content/xdocs/status.xml poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java Modified: poi/trunk/src/documentation/content/xdocs/status.xml URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=1135103&r1=1135102&r2=1135103&view=diff ============================================================================== --- poi/trunk/src/documentation/content/xdocs/status.xml (original) +++ poi/trunk/src/documentation/content/xdocs/status.xml Mon Jun 13 11:56:21 2011 @@ -34,6 +34,7 @@ + 50458 - Fixed missing shapeId in XSSF drawings 51339 - Fixed arithmetic rounding in formula evaluation 51356 - Support autoSizeColumn in SXSSF 51335 - Parse picture goal and crop sizes in HWPF Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java?rev=1135103&r1=1135102&r2=1135103&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java Mon Jun 13 11:56:21 2011 @@ -37,6 +37,7 @@ import org.apache.poi.util.Internal; import org.apache.poi.xssf.model.CommentsTable; import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlOptions; +import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps; import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTConnector; import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing; import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTGroupShape; @@ -141,9 +142,11 @@ public final class XSSFDrawing extends P * @return the newly created textbox. */ public XSSFTextBox createTextbox(XSSFClientAnchor anchor){ + long shapeId = newShapeId(); CTTwoCellAnchor ctAnchor = createTwoCellAnchor(anchor); CTShape ctShape = ctAnchor.addNewSp(); ctShape.set(XSSFSimpleShape.prototype()); + ctShape.getNvSpPr().getCNvPr().setId(shapeId); XSSFTextBox shape = new XSSFTextBox(this, ctShape); shape.anchor = anchor; return shape; @@ -163,10 +166,13 @@ public final class XSSFDrawing extends P { PackageRelationship rel = addPictureReference(pictureIndex); + long shapeId = newShapeId(); CTTwoCellAnchor ctAnchor = createTwoCellAnchor(anchor); CTPicture ctShape = ctAnchor.addNewPic(); ctShape.set(XSSFPicture.prototype()); + ctShape.getNvPicPr().getCNvPr().setId(shapeId); + XSSFPicture shape = new XSSFPicture(this, ctShape); shape.anchor = anchor; shape.setPictureReference(rel); @@ -227,9 +233,11 @@ public final class XSSFDrawing extends P */ public XSSFSimpleShape createSimpleShape(XSSFClientAnchor anchor) { + long shapeId = newShapeId(); CTTwoCellAnchor ctAnchor = createTwoCellAnchor(anchor); CTShape ctShape = ctAnchor.addNewSp(); ctShape.set(XSSFSimpleShape.prototype()); + ctShape.getNvSpPr().getCNvPr().setId(shapeId); XSSFSimpleShape shape = new XSSFSimpleShape(this, ctShape); shape.anchor = anchor; return shape; @@ -354,4 +362,8 @@ public final class XSSFDrawing extends P ctAnchor.setEditAs(aditAs); return ctAnchor; } + + private long newShapeId(){ + return drawing.sizeOfTwoCellAnchorArray() + 1; + } } Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java?rev=1135103&r1=1135102&r2=1135103&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java Mon Jun 13 11:56:21 2011 @@ -69,4 +69,27 @@ public final class TestXSSFPicture exten // STEditAs.ABSOLUTE corresponds to ClientAnchor.DONT_MOVE_AND_RESIZE assertEquals(STEditAs.ABSOLUTE, ctShapeHolder.getEditAs()); } + + /** + * test that ShapeId in CTNonVisualDrawingProps is incremented + * + * See Bugzilla 50458 + */ + public void testShapeId(){ + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFSheet sheet = wb.createSheet(); + XSSFDrawing drawing = sheet.createDrawingPatriarch(); + + XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 10, 30); + byte[] jpegData = "picture1".getBytes(); + int jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG); + + XSSFPicture shape1 = drawing.createPicture(anchor, jpegIdx); + assertEquals(1, shape1.getCTPicture().getNvPicPr().getCNvPr().getId()); + + jpegData = "picture2".getBytes(); + jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG); + XSSFPicture shape2 = drawing.createPicture(anchor, jpegIdx); + assertEquals(2, shape2.getCTPicture().getNvPicPr().getCNvPr().getId()); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org For additional commands, e-mail: commits-help@poi.apache.org