You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by ye...@apache.org on 2007/05/24 14:09:34 UTC

svn commit: r541281 - in /jakarta/poi/trunk/src/scratchpad: src/org/apache/poi/hslf/model/ShapeGroup.java testcases/org/apache/poi/hslf/usermodel/TestBugs.java

Author: yegor
Date: Thu May 24 05:09:34 2007
New Revision: 541281

URL: http://svn.apache.org/viewvc?view=rev&rev=541281
Log:
fixed bug 42484: NullPointerException from ShapeGroup.getAnchor()

Modified:
    jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java
    jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java

Modified: jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java?view=diff&rev=541281&r1=541280&r2=541281
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java (original)
+++ jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java Thu May 24 05:09:34 2007
@@ -179,4 +179,22 @@
         }
     }
 
+    /**
+     * Returns the anchor (the bounding box rectangle) of this shape group.
+     * All coordinates are expressed in points (72 dpi).
+     *
+     * @return the anchor of this shape group
+     */
+    public java.awt.Rectangle getAnchor(){
+        EscherContainerRecord groupInfoContainer = (EscherContainerRecord)_escherContainer.getChild(0);
+        EscherSpgrRecord spgr = (EscherSpgrRecord)getEscherChild(groupInfoContainer, EscherSpgrRecord.RECORD_ID);
+        java.awt.Rectangle anchor=null;
+
+        anchor = new java.awt.Rectangle();
+        anchor.x = spgr.getRectX1()*POINT_DPI/MASTER_DPI;
+        anchor.y = spgr.getRectY1()*POINT_DPI/MASTER_DPI;
+        anchor.width = (spgr.getRectX2() - spgr.getRectX1())*POINT_DPI/MASTER_DPI;
+        anchor.height = (spgr.getRectY2() - spgr.getRectY1())*POINT_DPI/MASTER_DPI;
+        return anchor;
+    }
 }

Modified: jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java
URL: http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java?view=diff&rev=541281&r1=541280&r2=541281
==============================================================================
--- jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java (original)
+++ jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java Thu May 24 05:09:34 2007
@@ -140,4 +140,27 @@
         }
     }
 
+    /**
+     * Bug 42484: NullPointerException from ShapeGroup.getAnchor()
+     */
+    public void test42484 () throws Exception {
+        FileInputStream is = new FileInputStream(new File(cwd, "42485.ppt")); //test file is the same as for bug 42485
+        HSLFSlideShow hslf = new HSLFSlideShow(is);
+        is.close();
+
+        SlideShow ppt = new SlideShow(hslf);
+        Shape[] shape = ppt.getSlides()[0].getShapes();
+        for (int i = 0; i < shape.length; i++) {
+            if(shape[i] instanceof ShapeGroup){
+                ShapeGroup  group = (ShapeGroup)shape[i];
+                assertNotNull(group.getAnchor());
+                Shape[] sh = group.getShapes();
+                for (int j = 0; j < sh.length; j++) {
+                    assertNotNull(sh[j].getAnchor());
+                }
+            }
+        }
+        assertTrue("No Exceptions while reading file", true);
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List:    http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/