[prev in list] [next in list] [prev in thread] [next in thread] 

List:       poi-dev
Subject:    svn commit: r450057 -
From:       nick () apache ! org
Date:       2006-09-26 14:15:00
Message-ID: 20060926141500.D630C1A981A () eris ! apache ! org
[Download RAW message or body]

Author: nick
Date: Tue Sep 26 07:14:59 2006
New Revision: 450057

URL: http://svn.apache.org/viewvc?view=rev&rev=450057
Log:
Don't just assume we'll only have container records for the shape's escher records

Modified:
    jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.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=450057&r1=450056&r2=450057
 ==============================================================================
--- 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 \
Tue Sep 26 07:14:59 2006 @@ -18,6 +18,7 @@
 import org.apache.poi.ddf.*;
 import org.apache.poi.util.LittleEndian;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -50,16 +51,29 @@
      * @return the shapes contained in this group container
      */
     public Shape[] getShapes() {
-        //several SpContainers, the first of which is the group shape itself
+    	// Out escher container record should contain serveral
+        //  SpContainers, the first of which is the group shape itself
         List lst = _escherContainer.getChildRecords();
 
-        //don't include the first SpContainer, it is always NotPrimitive
-        Shape[] shapes = new Shape[lst.size() - 1];
+        ArrayList shapeList = new ArrayList();
+        // Don't include the first SpContainer, it is always NotPrimitive
         for (int i = 1; i < lst.size(); i++){
-            EscherContainerRecord container = (EscherContainerRecord)lst.get(i);
-            shapes[i-1] = ShapeFactory.createShape(container, this);
+        	EscherRecord r = (EscherRecord)lst.get(i);
+        	if(r instanceof EscherContainerRecord) {
+        		// Create the Shape for it
+        		EscherContainerRecord container = (EscherContainerRecord)r;
+        		Shape shape = ShapeFactory.createShape(container, this);
+        		shapeList.add( shape );
+        	} else {
+        		// Should we do anything special with these non
+        		//  Container records?
+        		System.err.println("Shape contained non container escher record, was " + \
r.getClass().getName()); +        	}
         }
-         return shapes;
+        
+        // Put the shapes into an array, and return
+        Shape[] shapes = (Shape[])shapeList.toArray(new Shape[shapeList.size()]);
+        return shapes;
     }
 
     /**



---------------------------------------------------------------------
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/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic