Author: nick
Date: Sun Mar 19 09:54:17 2006
New Revision: 387009

URL: http://svn.apache.org/viewcvs?rev=387009&view=rev
Log:
Add Yegor's new slide functionality (see bug 38954), with a bit of refactoring

Added:
    
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/data/empty.ppt   
(with props)
    
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java
    
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
Modified:
    
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java

Added: 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/data/empty.ppt
URL: 
http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/data/empty.ppt?rev=387009&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/data/empty.ppt
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java
URL: 
http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java?rev=387009&view=auto
==============================================================================
--- 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java
 (added)
+++ 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java
 Sun Mar 19 09:54:17 2006
@@ -0,0 +1,88 @@
+/* ====================================================================
+   Copyright 2002-2004   Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+package org.apache.poi.hslf.model;
+
+import junit.framework.TestCase;
+import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.HSLFSlideShow;
+
+import java.awt.*;
+import java.awt.Rectangle;
+import java.io.ByteArrayOutputStream;
+import java.io.ByteArrayInputStream;
+
+/**
+ * Test drawing shapes via Graphics2D
+ *
+ * @author Yegor Kozlov
+ */
+public class TestPPGraphics2D extends TestCase {
+    private SlideShow ppt;
+
+    protected void setUp() throws Exception {
+               String dirname = System.getProperty("HSLF.testdata.path");
+               String filename = dirname + "/empty.ppt";
+               ppt = new SlideShow(new HSLFSlideShow(filename));
+    }
+
+    public void testGraphics() throws Exception {
+       // Starts off empty
+       assertEquals(0, ppt.getSlides().length);
+       
+       // Add a slide
+        Slide slide = ppt.createSlide();
+       assertEquals(1, ppt.getSlides().length);
+
+       // Add some stuff into it
+        ShapeGroup group = new ShapeGroup();
+        Dimension pgsize = ppt.getPageSize();
+        java.awt.Rectangle bounds = new java.awt.Rectangle(0, 0, 
(int)pgsize.getWidth(), (int)pgsize.getHeight());
+        group.setAnchor(bounds);
+        slide.addShape(group);
+
+        PPGraphics2D graphics = new PPGraphics2D(group);
+        graphics.setColor(Color.blue);
+        graphics.draw(new Rectangle(1296, 2544, 1344, 0));
+
+        graphics.setColor(Color.red);
+        graphics.setStroke(new BasicStroke((float)2.5));
+        graphics.drawLine(500, 500, 1500, 2500);
+
+        graphics.setColor(Color.green);
+        graphics.setPaint(Color.gray);
+        graphics.drawOval(4000, 1000, 1000, 1000);
+
+        // Write the file out
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        ppt.write(out);
+        out.close();
+
+        // And read it back in
+        ppt = new SlideShow(new HSLFSlideShow(new 
ByteArrayInputStream(out.toByteArray())));
+        assertEquals(1, ppt.getSlides().length);
+
+        slide = ppt.getSlides()[0];
+        Shape[] shape = slide.getShapes();
+        assertEquals(shape.length, 1); //group shape
+
+        assertTrue(shape[0] instanceof ShapeGroup); //group shape
+
+        group = (ShapeGroup)shape[0];
+        shape = group.getShapes();
+        assertEquals(shape.length, 7);
+    }
+
+}

Added: 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
URL: 
http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java?rev=387009&view=auto
==============================================================================
--- 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
 (added)
+++ 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
 Sun Mar 19 09:54:17 2006
@@ -0,0 +1,80 @@
+/* ====================================================================
+   Copyright 2002-2004   Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+package org.apache.poi.hslf.model;
+
+import junit.framework.TestCase;
+import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.HSLFSlideShow;
+
+import java.awt.*;
+import java.awt.Rectangle;
+import java.io.ByteArrayOutputStream;
+import java.io.ByteArrayInputStream;
+
+/**
+ * Test drawing shapes via Graphics2D
+ *
+ * @author Yegor Kozlov
+ */
+public class TestShapes extends TestCase {
+    private SlideShow ppt;
+
+    protected void setUp() throws Exception {
+               String dirname = System.getProperty("HSLF.testdata.path");
+               String filename = dirname + "/empty.ppt";
+               ppt = new SlideShow(new HSLFSlideShow(filename));
+        getClass().getResourceAsStream("");
+    }
+
+    public void testGraphics() throws Exception {
+        Slide slide = ppt.createSlide();
+
+        Line line = new Line();
+        line.setAnchor(new Rectangle(1296, 2544, 1344, 528));
+        line.setLineWidth(3);
+        line.setLineStyle(Line.LineDashSys);
+        line.setLineColor(Color.red);
+        slide.addShape(line);
+
+        Ellipse ellipse = new Ellipse();
+        ellipse.setAnchor(new Rectangle(4000, 1000, 1000, 1000));
+        ellipse.setLineWidth(2);
+        ellipse.setLineStyle(Line.LineSolid);
+        ellipse.setLineColor(Color.green);
+        ellipse.setFillColor(Color.lightGray);
+        slide.addShape(ellipse);
+
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        ppt.write(out);
+        out.close();
+
+        //read ppt from byte array
+
+        ppt = new SlideShow(new HSLFSlideShow(new 
ByteArrayInputStream(out.toByteArray())));
+        assertEquals(ppt.getSlides().length, 1);
+
+        slide = ppt.getSlides()[0];
+        Shape[] shape = slide.getShapes();
+        assertEquals(shape.length, 2);
+
+        assertTrue(shape[0] instanceof Line); //group shape
+        assertEquals(shape[0].getAnchor(), new Rectangle(1296, 2544, 1344, 
528)); //group shape
+
+        assertTrue(shape[1] instanceof Ellipse); //group shape
+        assertEquals(shape[1].getAnchor(), new Rectangle(4000, 1000, 1000, 
1000)); //group shape
+    }
+
+}

Modified: 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java
URL: 
http://svn.apache.org/viewcvs/jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java?rev=387009&r1=387008&r2=387009&view=diff
==============================================================================
--- 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java
 (original)
+++ 
jakarta/poi/trunk/src/scratchpad/testcases/org/apache/poi/hslf/record/TestRecordContainer.java
 Sun Mar 19 09:54:17 2006
@@ -37,24 +37,30 @@
        }
        
        public void testAppendChildRecord() {
+               // Grab records for testing with
+               Record r = recordContainer.getChildRecords()[0];
+               Record rb = recordContainer.getChildRecords()[1];
+               Record rc = recordContainer.getChildRecords()[2];
+               Record rd = recordContainer.getChildRecords()[3];
+               
                // Start with an empty set
                Record[] rs = new Record[0];
-               Record r = recordContainer.getChildRecords()[0];
-               Record[] nrs = recordContainer.appendChildRecord(r, rs);
+               recordContainer._children = rs;
+               recordContainer.appendChildRecord(r);
+               Record[] nrs = recordContainer.getChildRecords();
                
                assertEquals(1, nrs.length);
                assertEquals(r, nrs[0]);
                
                // Now start with one with 3 entries
                rs = new Record[3];
-               Record rb = recordContainer.getChildRecords()[1];
-               Record rc = recordContainer.getChildRecords()[2];
-               Record rd = recordContainer.getChildRecords()[3];
+               recordContainer._children = rs;
                rs[0] = rb;
                rs[1] = rc;
                rs[2] = rd;
                
-               nrs = recordContainer.appendChildRecord(r, rs);
+               recordContainer.appendChildRecord(r);
+               nrs = recordContainer.getChildRecords();
                
                assertEquals(4, nrs.length);
                assertEquals(rb, nrs[0]);



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

Reply via email to