You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2015/07/24 23:47:58 UTC

svn commit: r1692593 [2/17] - in /poi: site/src/documentation/content/xdocs/ trunk/ trunk/src/examples/src/org/apache/poi/hslf/examples/ trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/ trunk/src/examples/src/org/apache/poi/xslf/usermodel...

Modified: poi/trunk/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java Fri Jul 24 21:47:55 2015
@@ -16,12 +16,12 @@
 ==================================================================== */
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.model.HeadersFooters;
-import org.apache.poi.hslf.model.Slide;
-
 import java.io.FileOutputStream;
 
+import org.apache.poi.hslf.model.HeadersFooters;
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+
 /**
  * Demonstrates how to set headers / footers
  *
@@ -29,7 +29,7 @@ import java.io.FileOutputStream;
  */
 public class HeadersFootersDemo {
     public static void main(String[] args) throws Exception {
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
         
         HeadersFooters slideHeaders = ppt.getSlideHeadersFooters();
         slideHeaders.setFootersText("Created by POI-HSLF");
@@ -40,7 +40,7 @@ public class HeadersFootersDemo {
         notesHeaders.setFootersText("My notes footers");
         notesHeaders.setHeaderText("My notes header");
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         FileOutputStream out = new FileOutputStream("headers_footers.ppt");
         ppt.write(out);

Modified: poi/trunk/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java Fri Jul 24 21:47:55 2015
@@ -17,13 +17,14 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.model.Slide;
-import org.apache.poi.hslf.model.TextRun;
-import org.apache.poi.hslf.model.Hyperlink;
-import org.apache.poi.hslf.model.Shape;
-
 import java.io.FileInputStream;
+import java.util.List;
+
+import org.apache.poi.hslf.usermodel.HSLFHyperlink;
+import org.apache.poi.hslf.usermodel.HSLFShape;
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTextParagraph;
 
 /**
  * Demonstrates how to read hyperlinks from  a presentation
@@ -35,47 +36,40 @@ public final class Hyperlinks {
     public static void main(String[] args) throws Exception {
         for (int i = 0; i < args.length; i++) {
             FileInputStream is = new FileInputStream(args[i]);
-            SlideShow ppt = new SlideShow(is);
+            HSLFSlideShow ppt = new HSLFSlideShow(is);
             is.close();
 
-            Slide[] slide = ppt.getSlides();
-            for (int j = 0; j < slide.length; j++) {
-                System.out.println("slide " + slide[j].getSlideNumber());
-
-                //read hyperlinks from the slide's text runs
-                System.out.println("reading hyperlinks from the text runs");
-                TextRun[] txt = slide[j].getTextRuns();
-                for (int k = 0; k < txt.length; k++) {
-                    String text = txt[k].getText();
-                    Hyperlink[] links = txt[k].getHyperlinks();
-                    if(links != null) for (int l = 0; l < links.length; l++) {
-                        Hyperlink link = links[l];
-                        String title = link.getTitle();
-                        String address = link.getAddress();
-                        System.out.println("  " + title);
-                        System.out.println("  " + address);
-                        String substring = text.substring(link.getStartIndex(), link.getEndIndex()-1);//in ppt end index is inclusive
-                        System.out.println("  " + substring);
+            for (HSLFSlide slide : ppt.getSlides()) {
+                System.out.println("\nslide " + slide.getSlideNumber());
+
+                // read hyperlinks from the slide's text runs
+                System.out.println("- reading hyperlinks from the text runs");
+                for (List<HSLFTextParagraph> txtParas : slide.getTextParagraphs()) {
+                    List<HSLFHyperlink> links = HSLFHyperlink.find(txtParas);
+                    String text = HSLFTextParagraph.getRawText(txtParas);
+
+                    for (HSLFHyperlink link : links) {
+                        System.out.println(toStr(link, text));
                     }
                 }
 
-                //in PowerPoint you can assign a hyperlink to a shape without text,
-                //for example to a Line object. The code below demonstrates how to
-                //read such hyperlinks
-                System.out.println("  reading hyperlinks from the slide's shapes");
-                Shape[] sh = slide[j].getShapes();
-                for (int k = 0; k < sh.length; k++) {
-                    Hyperlink link = sh[k].getHyperlink();
-                    if(link != null)  {
-                        String title = link.getTitle();
-                        String address = link.getAddress();
-                        System.out.println("  " + title);
-                        System.out.println("  " + address);
-                    }
+                // in PowerPoint you can assign a hyperlink to a shape without text,
+                // for example to a Line object. The code below demonstrates how to
+                // read such hyperlinks
+                System.out.println("- reading hyperlinks from the slide's shapes");
+                for (HSLFShape sh : slide.getShapes()) {
+                    HSLFHyperlink link = HSLFHyperlink.find(sh);
+                    if (link == null) continue;
+                    System.out.println(toStr(link, null));
                 }
             }
-
         }
-
    }
+
+    static String toStr(HSLFHyperlink link, String rawText) {
+        //in ppt end index is inclusive
+        String formatStr = "title: %1$s, address: %2$s" + (rawText == null ? "" : ", start: %3$s, end: %4$s, substring: %5$s");
+        String substring = (rawText == null) ? "" : rawText.substring(link.getStartIndex(), link.getEndIndex()-1);
+        return String.format(formatStr, link.getTitle(), link.getAddress(), link.getStartIndex(), link.getEndIndex(), substring);
+    }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java Fri Jul 24 21:47:55 2015
@@ -17,15 +17,19 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.*;
-import org.apache.poi.hslf.model.*;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 
 import javax.imageio.ImageIO;
-import java.io.FileOutputStream;
-import java.io.FileInputStream;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import java.awt.geom.Rectangle2D;
+
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 
 /**
  * Demonstrates how you can use HSLF to convert each slide into a PNG image
@@ -62,19 +66,18 @@ public final class PPT2PNG {
         }
 
         FileInputStream is = new FileInputStream(file);
-        SlideShow ppt = new SlideShow(is);
+        HSLFSlideShow ppt = new HSLFSlideShow(is);
         is.close();
 
         Dimension pgsize = ppt.getPageSize();
         int width = (int)(pgsize.width*scale);
         int height = (int)(pgsize.height*scale);
 
-        Slide[] slide = ppt.getSlides();
-        for (int i = 0; i < slide.length; i++) {
-            if (slidenum != -1 && slidenum != (i+1)) continue;
+        for (HSLFSlide slide : ppt.getSlides()) {
+            if (slidenum != -1 && slidenum != slide.getSlideNumber()) continue;
 
-            String title = slide[i].getTitle();
-            System.out.println("Rendering slide "+slide[i].getSlideNumber() + (title == null ? "" : ": " + title));
+            String title = slide.getTitle();
+            System.out.println("Rendering slide "+slide.getSlideNumber() + (title == null ? "" : ": " + title));
 
             BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
             Graphics2D graphics = img.createGraphics();
@@ -88,9 +91,9 @@ public final class PPT2PNG {
 
             graphics.scale((double)width/pgsize.width, (double)height/pgsize.height);
 
-            slide[i].draw(graphics);
+            slide.draw(graphics);
 
-            String fname = file.replaceAll("\\.ppt", "-" + (i+1) + ".png");
+            String fname = file.replaceAll("\\.ppt", "-" + slide.getSlideNumber() + ".png");
             FileOutputStream out = new FileOutputStream(fname);
             ImageIO.write(img, "png", out);
             out.close();

Modified: poi/trunk/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java Fri Jul 24 21:47:55 2015
@@ -15,15 +15,18 @@
    limitations under the License.
 ==================================================================== */
 package org.apache.poi.hslf.examples;
-import org.apache.poi.ddf.*;
-import org.apache.poi.hslf.model.*;
+import java.io.FileInputStream;
+
+import org.apache.poi.ddf.EscherClientDataRecord;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherRecord;
 import org.apache.poi.hslf.record.InteractiveInfo;
 import org.apache.poi.hslf.record.InteractiveInfoAtom;
 import org.apache.poi.hslf.record.Record;
-import org.apache.poi.hslf.usermodel.*;
-import java.io.FileInputStream;
-import java.util.Iterator;
-import java.util.List;
+import org.apache.poi.hslf.usermodel.HSLFShape;
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSoundData;
 
 /**
  * For each slide iterate over shapes and found associated sound data.
@@ -32,19 +35,18 @@ import java.util.List;
  */
 public class SoundFinder {
     public static void main(String[] args) throws Exception {
-        SlideShow ppt = new SlideShow(new FileInputStream(args[0]));
-        SoundData[] sounds = ppt.getSoundData();
+        HSLFSlideShow ppt = new HSLFSlideShow(new FileInputStream(args[0]));
+        HSLFSoundData[] sounds = ppt.getSoundData();
+
+        for (HSLFSlide slide : ppt.getSlides()) {
+            for (HSLFShape shape : slide.getShapes()) {
+                int soundRef = getSoundReference(shape);
+                if(soundRef == -1) continue;
 
-        Slide[] slide = ppt.getSlides();
-        for (int i = 0; i < slide.length; i++) {
-            Shape[] shape = slide[i].getShapes();
-            for (int j = 0; j < shape.length; j++) {
-                int soundRef = getSoundReference(shape[j]);
-                if(soundRef != -1) {
-                    System.out.println("Slide["+i+"], shape["+j+"], soundRef: "+soundRef);
-                    System.out.println("  " + sounds[soundRef].getSoundName());
-                    System.out.println("  " + sounds[soundRef].getSoundType());
-                }
+                
+                System.out.println("Slide["+slide.getSlideNumber()+"], shape["+shape.getShapeId()+"], soundRef: "+soundRef);
+                System.out.println("  " + sounds[soundRef].getSoundName());
+                System.out.println("  " + sounds[soundRef].getSoundType());
             }
         }
     }
@@ -54,20 +56,16 @@ public class SoundFinder {
      * @return 0-based reference to a sound in the sound collection
      * or -1 if the shape is not associated with a sound
      */
-    protected static int getSoundReference(Shape shape){
+    protected static int getSoundReference(HSLFShape shape){
         int soundRef = -1;
         //dive into the shape container and search for InteractiveInfoAtom
         EscherContainerRecord spContainer = shape.getSpContainer();
-        List spchild = spContainer.getChildRecords();
-        for (Iterator it = spchild.iterator(); it.hasNext();) {
-            EscherRecord obj = (EscherRecord) it.next();
+        for (EscherRecord obj : spContainer.getChildRecords()) {
             if (obj.getRecordId() == EscherClientDataRecord.RECORD_ID) {
                 byte[] data = obj.serialize();
-                Record[] records = Record.findChildRecords(data, 8,
-data.length - 8);
-                for (int j = 0; j < records.length; j++) {
-                    if (records[j] instanceof InteractiveInfo) {
-                        InteractiveInfoAtom info = ((InteractiveInfo)records[j]).getInteractiveInfoAtom();
+                for (Record record : Record.findChildRecords(data, 8, data.length - 8)) {
+                    if (record instanceof InteractiveInfo) {
+                        InteractiveInfoAtom info = ((InteractiveInfo)record).getInteractiveInfoAtom();
                         if (info.getAction() == InteractiveInfoAtom.ACTION_MEDIA) {
                             soundRef = info.getSoundRef();
                         }

Modified: poi/trunk/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java Fri Jul 24 21:47:55 2015
@@ -17,13 +17,18 @@
 
 package org.apache.poi.hslf.examples;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.usermodel.RichTextRun;
-import org.apache.poi.hslf.model.*;
-
-import java.awt.*;
+import java.awt.Color;
 import java.io.FileOutputStream;
 
+import org.apache.poi.hslf.model.Line;
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFTable;
+import org.apache.poi.hslf.usermodel.HSLFTableCell;
+import org.apache.poi.hslf.usermodel.HSLFTextRun;
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;
+import org.apache.poi.sl.usermodel.VerticalAlignment;
+
 /**
  * Demonstrates how to create tables
  *
@@ -43,26 +48,26 @@ public final class TableDemo {
             {"Total PO History Spend", "$10,172,038"}
         };
 
-        SlideShow ppt = new SlideShow();
+        HSLFSlideShow ppt = new HSLFSlideShow();
 
-        Slide slide = ppt.createSlide();
+        HSLFSlide slide = ppt.createSlide();
 
         //six rows, two columns
-        Table table1 = new Table(6, 2);
+        HSLFTable table1 = new HSLFTable(6, 2);
         for (int i = 0; i < txt1.length; i++) {
             for (int j = 0; j < txt1[i].length; j++) {
-                TableCell cell = table1.getCell(i, j);
-                cell.setText(txt1[i][j]);
-                RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
-                rt.setFontName("Arial");
-                rt.setFontSize(10);
+                HSLFTableCell cell = table1.getCell(i, j);
+                HSLFTextRun rt = cell.getTextParagraphs().get(0).getTextRuns().get(0);
+                rt.setFontFamily("Arial");
+                rt.setFontSize(10d);
                 if(i == 0){
                     cell.getFill().setForegroundColor(new Color(227, 227, 227));
                 } else {
                     rt.setBold(true);
                 }
-                cell.setVerticalAlignment(TextBox.AnchorMiddle);
-                cell.setHorizontalAlignment(TextBox.AlignCenter);
+                cell.setVerticalAlignment(VerticalAlignment.MIDDLE);
+                cell.setHorizontalCentered(true);
+                cell.setText(txt1[i][j]);
             }
         }
 
@@ -87,26 +92,27 @@ public final class TableDemo {
         };
 
         //two rows, one column
-        Table table2 = new Table(2, 1);
+        HSLFTable table2 = new HSLFTable(2, 1);
         for (int i = 0; i < txt2.length; i++) {
             for (int j = 0; j < txt2[i].length; j++) {
-                TableCell cell = table2.getCell(i, j);
-                cell.setText(txt2[i][j]);
-                RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
-                rt.setFontSize(10);
-                rt.setFontName("Arial");
+                HSLFTableCell cell = table2.getCell(i, j);
+                HSLFTextRun rt = cell.getTextParagraphs().get(0).getTextRuns().get(0);
+                rt.setFontSize(10d);
+                rt.setFontFamily("Arial");
                 if(i == 0){
                     cell.getFill().setForegroundColor(new Color(0, 51, 102));
                     rt.setFontColor(Color.white);
                     rt.setBold(true);
-                    rt.setFontSize(14);
-                    cell.setHorizontalAlignment(TextBox.AlignCenter);
+                    rt.setFontSize(14d);
+                    cell.setHorizontalCentered(true);
                 } else {
-                    rt.setBullet(true);
-                    rt.setFontSize(12);
-                    cell.setHorizontalAlignment(TextBox.AlignLeft);
+                    rt.getTextParagraph().setBullet(true);
+                    rt.setFontSize(12d);
+                    rt.getTextParagraph().setAlignment(TextAlign.LEFT);
+                    cell.setHorizontalCentered(false);
                 }
-                cell.setVerticalAlignment(TextBox.AnchorMiddle);
+                cell.setVerticalAlignment(VerticalAlignment.MIDDLE);
+                cell.setText(txt2[i][j]);
             }
         }
         table2.setColumnWidth(0, 300);

Modified: poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java Fri Jul 24 21:47:55 2015
@@ -16,21 +16,23 @@
 ==================================================================== */
 package org.apache.poi.hssf.usermodel.examples;
 
-import org.apache.poi.hssf.usermodel.*;
+import java.io.FileInputStream;
+import java.util.Iterator;
+
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
+import org.apache.poi.hssf.usermodel.HSSFObjectData;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.Entry;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.hwpf.HWPFDocument;
-import org.apache.poi.hslf.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.SlideShow;
-
-import java.io.FileInputStream;
-import java.util.Iterator;
 
 /**
  * Demonstrates how you can extract embedded data from a .xls file
  */
 public class EmeddedObjects {
+    @SuppressWarnings("unused")
     public static void main(String[] args) throws Exception {
         POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(args[0]));
         HSSFWorkbook workbook = new HSSFWorkbook(fs);
@@ -41,20 +43,21 @@ public class EmeddedObjects {
                 DirectoryNode dn = (DirectoryNode) obj.getDirectory();
                 HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(dn, fs, false);
                 //System.out.println(entry.getName() + ": " + embeddedWorkbook.getNumberOfSheets());
+                embeddedWorkbook.close();
             } else if (oleName.equals("Document")) {
                 DirectoryNode dn = (DirectoryNode) obj.getDirectory();
                 HWPFDocument embeddedWordDocument = new HWPFDocument(dn);
                 //System.out.println(entry.getName() + ": " + embeddedWordDocument.getRange().text());
             }  else if (oleName.equals("Presentation")) {
                 DirectoryNode dn = (DirectoryNode) obj.getDirectory();
-                SlideShow embeddedPowerPointDocument = new SlideShow(new HSLFSlideShow(dn));
+                HSLFSlideShow embeddedPowerPointDocument = new HSLFSlideShow(new HSLFSlideShowImpl(dn));
                 //System.out.println(entry.getName() + ": " + embeddedPowerPointDocument.getSlides().length);
             } else {
                 if(obj.hasDirectoryEntry()){
                     // The DirectoryEntry is a DocumentNode. Examine its entries to find out what it is
                     DirectoryNode dn = (DirectoryNode) obj.getDirectory();
-                    for (Iterator entries = dn.getEntries(); entries.hasNext();) {
-                        Entry entry = (Entry) entries.next();
+                    for (Iterator<Entry> entries = dn.getEntries(); entries.hasNext();) {
+                        Entry entry = entries.next();
                         //System.out.println(oleName + "." + entry.getName());
                     }
                 } else {
@@ -64,5 +67,6 @@ public class EmeddedObjects {
                 }
             }
         }
+        workbook.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java Fri Jul 24 21:47:55 2015
@@ -19,14 +19,13 @@
 
 package org.apache.poi.xslf.usermodel;
 
-import org.apache.poi.openxml4j.opc.PackagePart;
-
-import java.awt.*;
-import java.awt.geom.Rectangle2D;
+import java.awt.Dimension;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.List;
 
+import org.apache.poi.openxml4j.opc.PackagePart;
+
 /**
  * Demonstrates how you can extract data from a .pptx file
  *
@@ -34,6 +33,7 @@ import java.util.List;
  */
 public final class DataExtraction {
 
+    @SuppressWarnings("unused")
     public static void main(String args[]) throws Exception {
 
         if (args.length == 0) {
@@ -76,7 +76,6 @@ public final class DataExtraction {
         Dimension pageSize = ppt.getPageSize();  // size of the canvas in points
         for(XSLFSlide slide : ppt.getSlides()) {
             for(XSLFShape shape : slide){
-                Rectangle2D anchor = shape.getAnchor();  // position on the canvas
                 if(shape instanceof XSLFTextShape) {
                     XSLFTextShape txShape = (XSLFTextShape)shape;
                     System.out.println(txShape.getText());
@@ -89,6 +88,8 @@ public final class DataExtraction {
                 }
             }
         }
+        
+        ppt.close();
     }
 
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/MergePresentations.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/MergePresentations.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/MergePresentations.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/MergePresentations.java Fri Jul 24 21:47:55 2015
@@ -40,11 +40,15 @@ public final class MergePresentations {
             for(XSLFSlide srcSlide : src.getSlides()){
                 ppt.createSlide().importContent(srcSlide);
             }
+            
+            src.close();
         }
 
         FileOutputStream out = new FileOutputStream("merged.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java Fri Jul 24 21:47:55 2015
@@ -63,11 +63,12 @@ public class PieChartDemo {
         }
 
         BufferedReader modelReader = new BufferedReader(new FileReader(args[1]));
+        XMLSlideShow pptx = null;
         try {
             String chartTitle = modelReader.readLine();  // first line is chart title
     
-            XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(args[0]));
-            XSLFSlide slide = pptx.getSlides()[0];
+            pptx = new XMLSlideShow(new FileInputStream(args[0]));
+            XSLFSlide slide = pptx.getSlides().get(0);
     
             // find chart in the slide
             XSLFChart chart = null;
@@ -157,6 +158,7 @@ public class PieChartDemo {
                 wb.close();
             }
         } finally {
+            if (pptx != null) pptx.close();
             modelReader.close();
         }
     }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java Fri Jul 24 21:47:55 2015
@@ -37,7 +37,7 @@ public class Tutorial1 {
         /*XSLFSlide blankSlide =*/ ppt.createSlide();
 
         
-        XSLFSlideMaster master = ppt.getSlideMasters()[0];
+        XSLFSlideMaster master = ppt.getSlideMasters().get(0);
 
         XSLFSlideLayout layout1 = master.getLayout(SlideLayout.TITLE);
         XSLFSlide slide1 = ppt.createSlide(layout1) ;
@@ -56,17 +56,19 @@ public class Tutorial1 {
         // we are going to add text by paragraphs. Clear the default placehoder text before that
         bodyPlaceholder.clearText();
         XSLFTextParagraph p1 = bodyPlaceholder.addNewTextParagraph();
-        p1.setLevel(0);
+        p1.setIndentLevel(0);
         p1.addNewTextRun().setText("Level1 text");
         XSLFTextParagraph p2 = bodyPlaceholder.addNewTextParagraph();
-        p2.setLevel(1);
+        p2.setIndentLevel(1);
         p2.addNewTextRun().setText("Level2 text");
         XSLFTextParagraph p3 = bodyPlaceholder.addNewTextParagraph();
-        p3.setLevel(3);
+        p3.setIndentLevel(2);
         p3.addNewTextRun().setText("Level3 text");
 
         FileOutputStream out = new FileOutputStream("slides.pptx");
         ppt.write(out);
         out.close();
+
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java Fri Jul 24 21:47:55 2015
@@ -19,7 +19,8 @@
 
 package org.apache.poi.xslf.usermodel;
 
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Rectangle;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
@@ -42,30 +43,30 @@ public class Tutorial2 {
         XSLFTextParagraph p1 = shape1.addNewTextParagraph();
         XSLFTextRun r1 = p1.addNewTextRun();
         r1.setText("Paragraph Formatting");
-        r1.setFontSize(24);
+        r1.setFontSize(24d);
         r1.setFontColor(new Color(85, 142, 213));
 
         XSLFTextParagraph p2 = shape1.addNewTextParagraph();
         // If spaceBefore >= 0, then space is a percentage of normal line height.
         // If spaceBefore < 0, the absolute value of linespacing is the spacing in points
-        p2.setSpaceBefore(-20); // 20 pt from the previous paragraph
-        p2.setSpaceAfter(300); // 3 lines after the paragraph
+        p2.setSpaceBefore(-20d); // 20 pt from the previous paragraph
+        p2.setSpaceAfter(300d); // 3 lines after the paragraph
         XSLFTextRun r2 = p2.addNewTextRun();
         r2.setText("Paragraph  properties apply to all text residing within the corresponding paragraph.");
-        r2.setFontSize(16);
+        r2.setFontSize(16d);
 
         XSLFTextParagraph p3 = shape1.addNewTextParagraph();
 
         XSLFTextRun r3 = p3.addNewTextRun();
         r3.setText("Run Formatting");
-        r3.setFontSize(24);
+        r3.setFontSize(24d);
         r3.setFontColor(new Color(85, 142, 213));
 
         XSLFTextParagraph p4 = shape1.addNewTextParagraph();
-        p4.setSpaceBefore(-20); // 20 pt from the previous paragraph
-        p4.setSpaceAfter(300); // 3 lines after the paragraph
+        p4.setSpaceBefore(-20d); // 20 pt from the previous paragraph
+        p4.setSpaceAfter(300d); // 3 lines after the paragraph
         XSLFTextRun r4 = p4.addNewTextRun();
-        r4.setFontSize(16);
+        r4.setFontSize(16d);
         r4.setText(
                 "Run level formatting is the most granular property level and allows " +
                 "for the specifying of all low level text properties. The text run is " +
@@ -78,5 +79,7 @@ public class Tutorial2 {
         FileOutputStream out = new FileOutputStream("text.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial3.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial3.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial3.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial3.java Fri Jul 24 21:47:55 2015
@@ -19,7 +19,7 @@
 
 package org.apache.poi.xslf.usermodel;
 
-import java.awt.*;
+import java.awt.Rectangle;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
@@ -43,5 +43,7 @@ public class Tutorial3 {
         FileOutputStream out = new FileOutputStream("title.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java Fri Jul 24 21:47:55 2015
@@ -19,11 +19,13 @@
 
 package org.apache.poi.xslf.usermodel;
 
-import java.awt.*;
+import java.awt.Color;
 import java.awt.geom.Rectangle2D;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;
+
 /**
  * PPTX Tables
  *
@@ -85,5 +87,7 @@ public class Tutorial4 {
         FileOutputStream out = new FileOutputStream("table.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java Fri Jul 24 21:47:55 2015
@@ -46,5 +46,7 @@ public class Tutorial5 {
         FileOutputStream out = new FileOutputStream("images.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial6.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial6.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial6.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial6.java Fri Jul 24 21:47:55 2015
@@ -19,7 +19,7 @@
 
 package org.apache.poi.xslf.usermodel;
 
-import java.awt.*;
+import java.awt.Rectangle;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
@@ -55,5 +55,7 @@ public class Tutorial6 {
         FileOutputStream out = new FileOutputStream("hyperlinks.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java Fri Jul 24 21:47:55 2015
@@ -19,10 +19,13 @@
 
 package org.apache.poi.xslf.usermodel;
 
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Rectangle;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
+import org.apache.poi.sl.usermodel.AutoNumberingScheme;
+
 /**
  * Bullets and numbering
  *
@@ -38,41 +41,41 @@ public class Tutorial7 {
         shape.setAnchor(new Rectangle(50, 50, 400, 200));
 
         XSLFTextParagraph p1 = shape.addNewTextParagraph();
-        p1.setLevel(0);
+        p1.setIndentLevel(0);
         p1.setBullet(true);
         XSLFTextRun r1 = p1.addNewTextRun();
         r1.setText("Bullet1");
 
         XSLFTextParagraph p2 = shape.addNewTextParagraph();
         // indentation before text
-        p2.setLeftMargin(60);
+        p2.setLeftMargin(60d);
         // the bullet is set 40 pt before the text
-        p2.setIndent(-40);
+        p2.setIndent(-40d);
         p2.setBullet(true);
         // customize bullets
         p2.setBulletFontColor(Color.red);
         p2.setBulletFont("Wingdings");
         p2.setBulletCharacter("\u0075");
-        p2.setLevel(1);
+        p2.setIndentLevel(1);
         XSLFTextRun r2 = p2.addNewTextRun();
         r2.setText("Bullet2");
 
         // the next three paragraphs form an auto-numbered list
         XSLFTextParagraph p3 = shape.addNewTextParagraph();
-        p3.setBulletAutoNumber(ListAutoNumber.ALPHA_LC_PARENT_R, 1);
-        p3.setLevel(2);
+        p3.setBulletAutoNumber(AutoNumberingScheme.alphaLcParenRight, 1);
+        p3.setIndentLevel(2);
         XSLFTextRun r3 = p3.addNewTextRun();
         r3.setText("Numbered List Item - 1");
 
         XSLFTextParagraph p4 = shape.addNewTextParagraph();
-        p4.setBulletAutoNumber(ListAutoNumber.ALPHA_LC_PARENT_R, 2);
-        p4.setLevel(2);
+        p4.setBulletAutoNumber(AutoNumberingScheme.alphaLcParenRight, 2);
+        p4.setIndentLevel(2);
         XSLFTextRun r4 = p4.addNewTextRun();
         r4.setText("Numbered List Item - 2");
 
         XSLFTextParagraph p5 = shape.addNewTextParagraph();
-        p5.setBulletAutoNumber(ListAutoNumber.ALPHA_LC_PARENT_R, 3);
-        p5.setLevel(2);
+        p5.setBulletAutoNumber(AutoNumberingScheme.alphaLcParenRight, 3);
+        p5.setIndentLevel(2);
         XSLFTextRun r5 = p5.addNewTextRun();
         r5.setText("Numbered List Item - 3");
 
@@ -81,5 +84,7 @@ public class Tutorial7 {
         FileOutputStream out = new FileOutputStream("list.pptx");
         ppt.write(out);
         out.close();
+        
+        ppt.close();
     }
 }

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java Fri Jul 24 21:47:55 2015
@@ -50,12 +50,12 @@ public class Step1 {
                 if(shape instanceof XSLFTextShape) {
                     XSLFTextShape tsh = (XSLFTextShape)shape;
                     for(XSLFTextParagraph p : tsh){
-                        System.out.println("Paragraph level: " + p.getLevel());
+                        System.out.println("Paragraph level: " + p.getIndentLevel());
                         for(XSLFTextRun r : p){
-                            System.out.println(r.getText());
+                            System.out.println(r.getRawText());
                             System.out.println("  bold: " + r.isBold());
                             System.out.println("  italic: " + r.isItalic());
-                            System.out.println("  underline: " + r.isUnderline());
+                            System.out.println("  underline: " + r.isUnderlined());
                             System.out.println("  font.family: " + r.getFontFamily());
                             System.out.println("  font.size: " + r.getFontSize());
                             System.out.println("  font.color: " + r.getFontColor());

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java Fri Jul 24 21:47:55 2015
@@ -49,7 +49,7 @@ public class Step2 {
         // blank slide
         /*XSLFSlide blankSlide =*/ ppt.createSlide();
 
-        XSLFSlideMaster defaultMaster = ppt.getSlideMasters()[0];
+        XSLFSlideMaster defaultMaster = ppt.getSlideMasters().get(0);
 
         // title slide
         XSLFSlideLayout titleLayout = defaultMaster.getLayout(SlideLayout.TITLE);

Modified: poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java Fri Jul 24 21:47:55 2015
@@ -20,7 +20,7 @@ import org.apache.poi.xssf.usermodel.XSS
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
-import org.apache.poi.hslf.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -54,7 +54,7 @@ public class EmbeddedObjects {
             }
             // PowerPoint Document - binary file format
             else if (contentType.equals("application/vnd.ms-powerpoint")) {
-                HSLFSlideShow slideShow = new HSLFSlideShow(pPart.getInputStream());
+                HSLFSlideShowImpl slideShow = new HSLFSlideShowImpl(pPart.getInputStream());
             }
             // PowerPoint Document - OpenXML file format
             else if (contentType.equals("application/vnd.openxmlformats-officedocument.presentationml.presentation")) {

Modified: poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java (original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java Fri Jul 24 21:47:55 2015
@@ -22,14 +22,14 @@ import static org.junit.Assert.assertTru
 import java.io.FileInputStream;
 import java.io.InputStream;
 
-import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
 import org.junit.Test;
 
 public class HSLFFileHandler extends POIFSFileHandler {
 	@Override
 	public void handleFile(InputStream stream) throws Exception {
-		HSLFSlideShow slide = new HSLFSlideShow(stream);
+		HSLFSlideShowImpl slide = new HSLFSlideShowImpl(stream);
 		assertNotNull(slide.getCurrentUserAtom());
 		assertNotNull(slide.getEmbeddedObjects());
 		assertNotNull(slide.getUnderlyingBytes());

Modified: poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java (original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java Fri Jul 24 21:47:55 2015
@@ -29,6 +29,8 @@ import java.io.IOException;
 import java.io.InputStream;
 
 import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.sl.draw.DrawFactory;
+import org.apache.poi.sl.draw.Drawable;
 import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.xslf.usermodel.XMLSlideShow;
 import org.apache.poi.xslf.usermodel.XSLFNotes;
@@ -61,9 +63,7 @@ public class XSLFFileHandler extends Abs
     private void createBitmaps(ByteArrayOutputStream out) throws IOException {
         XMLSlideShow ppt = new XMLSlideShow(new ByteArrayInputStream(out.toByteArray()));
         Dimension pgsize = ppt.getPageSize();
-        XSLFSlide[] xmlSlide = ppt.getSlides();
-        int slideSize = xmlSlide.length;
-        for (int i = 0; i < slideSize; i++) {
+        for (XSLFSlide xmlSlide : ppt.getSlides()) {
 //            System.out.println("slide-" + (i + 1));
 //            System.out.println("" + xmlSlide[i].getTitle());
 
@@ -71,13 +71,15 @@ public class XSLFFileHandler extends Abs
             Graphics2D graphics = img.createGraphics();
 
             // draw stuff
-            xmlSlide[i].draw(graphics);
+            xmlSlide.draw(graphics);
 
             // Also try to read notes
-            XSLFNotes notes = xmlSlide[i].getNotes();
+            XSLFNotes notes = xmlSlide.getNotes();
             if(notes != null) {
                 for (XSLFShape note : notes) {
-                    note.draw(graphics);
+                    DrawFactory df = DrawFactory.getInstance(graphics);
+                    Drawable d = df.getDrawable(note);
+                    d.draw(graphics);
                     
                     if (note instanceof XSLFTextShape) {
                         XSLFTextShape txShape = (XSLFTextShape) note;

Modified: poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java Fri Jul 24 21:47:55 2015
@@ -117,7 +117,7 @@ public class DefaultEscherRecordFactory
      * @param recClasses The records to convert
      * @return The map containing the id/constructor pairs.
      */
-    private static Map<Short, Constructor<? extends EscherRecord>> recordsToMap(Class<?>[] recClasses) {
+    protected static Map<Short, Constructor<? extends EscherRecord>> recordsToMap(Class<?>[] recClasses) {
         Map<Short, Constructor<? extends EscherRecord>> result = new HashMap<Short, Constructor<? extends EscherRecord>>();
         final Class<?>[] EMPTY_CLASS_ARRAY = new Class[0];
 

Propchange: poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 24 21:47:55 2015
@@ -1,3 +1,4 @@
+/poi/branches/common_sl/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java:1661320-1691849
 /poi/branches/excelant/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java:1069732-1073692
 /poi/branches/gsoc2012/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java:1341450-1371657
 /poi/trunk/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java:693591-694881,695264-695420,695621,695649-711764

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java Fri Jul 24 21:47:55 2015
@@ -40,13 +40,26 @@ public class EscherChildAnchorRecord
     private int field_4_dy2;
 
     public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
-        /*int bytesRemaining =*/ readHeader( data, offset );
+        int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
-        field_1_dx1    =  LittleEndian.getInt( data, pos + size );size+=4;
-        field_2_dy1    =  LittleEndian.getInt( data, pos + size );size+=4;
-        field_3_dx2  =  LittleEndian.getInt( data, pos + size );size+=4;
-        field_4_dy2 =  LittleEndian.getInt( data, pos + size );size+=4;
+        switch (bytesRemaining) {
+        case 16: // RectStruct
+            field_1_dx1 =  LittleEndian.getInt( data, pos + size );size+=4;
+            field_2_dy1 =  LittleEndian.getInt( data, pos + size );size+=4;
+            field_3_dx2 =  LittleEndian.getInt( data, pos + size );size+=4;
+            field_4_dy2 =  LittleEndian.getInt( data, pos + size );size+=4;
+            break;
+        case 8: // SmallRectStruct
+            field_1_dx1 =  LittleEndian.getShort( data, pos + size );size+=2;
+            field_2_dy1 =  LittleEndian.getShort( data, pos + size );size+=2;
+            field_3_dx2 =  LittleEndian.getShort( data, pos + size );size+=2;
+            field_4_dy2 =  LittleEndian.getShort( data, pos + size );size+=2;
+            break;
+        default:
+            throw new RuntimeException("Invalid EscherChildAnchorRecord - neither 8 nor 16 bytes.");
+        }
+            
         return 8 + size;
     }
 
@@ -58,8 +71,8 @@ public class EscherChildAnchorRecord
         LittleEndian.putInt( data, pos, getRecordSize()-8 );       pos += 4;
         LittleEndian.putInt( data, pos, field_1_dx1 );             pos += 4;
         LittleEndian.putInt( data, pos, field_2_dy1 );             pos += 4;
-        LittleEndian.putInt( data, pos, field_3_dx2 );           pos += 4;
-        LittleEndian.putInt( data, pos, field_4_dy2 );          pos += 4;
+        LittleEndian.putInt( data, pos, field_3_dx2 );             pos += 4;
+        LittleEndian.putInt( data, pos, field_4_dy2 );             pos += 4;
 
         listener.afterRecordSerialize( pos, getRecordId(), pos - offset, this );
         return pos - offset;

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java Fri Jul 24 21:47:55 2015
@@ -18,10 +18,7 @@
 package org.apache.poi.ddf;
 
 import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
+import java.util.*;
 
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndian;
@@ -154,30 +151,9 @@ public final class EscherContainerRecord
     }
 
     public Iterator<EscherRecord> getChildIterator() {
-        return new ReadOnlyIterator(_childRecords);
+        return Collections.unmodifiableList(_childRecords).iterator();
     }
-    private static final class ReadOnlyIterator implements Iterator<EscherRecord> {
-        private final List<EscherRecord> _list;
-        private int _index;
-
-        public ReadOnlyIterator(List<EscherRecord> list) {
-            _list = list;
-            _index = 0;
-        }
 
-        public boolean hasNext() {
-            return _index < _list.size();
-        }
-        public EscherRecord next() {
-            if (!hasNext()) {
-                throw new NoSuchElementException();
-            }
-            return _list.get(_index++);
-        }
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
     /**
      * replaces the internal child list with the contents of the supplied <tt>childRecords</tt>
      */

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherProperties.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherProperties.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherProperties.java Fri Jul 24 21:47:55 2015
@@ -507,7 +507,7 @@ public final class EscherProperties {
 		addProp(m, SHADOWSTYLE__ORIGINX, "shadowstyle.originx");
 		addProp(m, SHADOWSTYLE__ORIGINY, "shadowstyle.originy");
 		addProp(m, SHADOWSTYLE__SHADOW, "shadowstyle.shadow");
-		addProp(m, SHADOWSTYLE__SHADOWOBSURED, "shadowstyle.shadowobsured");
+		addProp(m, SHADOWSTYLE__SHADOWOBSURED, "shadowstyle.shadowobscured");
 		addProp(m, PERSPECTIVE__TYPE, "perspective.type");
 		addProp(m, PERSPECTIVE__OFFSETX, "perspective.offsetx");
 		addProp(m, PERSPECTIVE__OFFSETY, "perspective.offsety");

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java?rev=1692593&r1=1692592&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java Fri Jul 24 21:47:55 2015
@@ -28,6 +28,7 @@ import java.awt.image.ImageObserver;
 import java.awt.image.RenderedImage;
 import java.awt.image.renderable.RenderableImage;
 import java.text.AttributedCharacterIterator;
+import java.util.Arrays;
 import java.util.Map;
 
 public class DummyGraphics2d
@@ -262,7 +263,7 @@ public class DummyGraphics2d
 
     public void setPaint( Paint paint )
     {
-        System.out.println( "setPain(Paint):" );
+        System.out.println( "setPaint(Paint):" );
         System.out.println( "paint = " + paint );
         g2D.setPaint( paint );
     }
@@ -285,7 +286,19 @@ public class DummyGraphics2d
     public void setStroke(Stroke s)
     {
         System.out.println( "setStroke(Stoke):" );
-        System.out.println( "s = " + s );
+        if (s instanceof BasicStroke) {
+            BasicStroke bs = (BasicStroke)s;
+            StringBuilder str = new StringBuilder("s = BasicStroke(");
+            str.append("dash[]: "+Arrays.toString(bs.getDashArray())+", ");
+            str.append("dashPhase: "+bs.getDashPhase()+", ");
+            str.append("endCap: "+bs.getEndCap()+", ");
+            str.append("lineJoin: "+bs.getLineJoin()+", ");
+            str.append("width: "+bs.getLineWidth()+", ");
+            str.append("miterLimit: "+bs.getMiterLimit()+")");
+            System.out.println(str.toString());
+        } else {
+            System.out.println( "s = " + s );
+        }
         g2D.setStroke( s );
     }
 

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawFreeformShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawFreeformShape.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/DrawFreeformShape.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawFreeformShape.java Fri Jul 24 21:47:55 2015
@@ -17,10 +17,31 @@
 
 package org.apache.poi.sl.draw;
 
-import org.apache.poi.sl.usermodel.*;
+import java.awt.Graphics2D;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.poi.sl.draw.geom.Outline;
+import org.apache.poi.sl.draw.geom.Path;
+import org.apache.poi.sl.usermodel.FillStyle;
+import org.apache.poi.sl.usermodel.FreeformShape;
+import org.apache.poi.sl.usermodel.StrokeStyle;
+import org.apache.poi.sl.usermodel.TextParagraph;
+import org.apache.poi.sl.usermodel.TextRun;
 
 public class DrawFreeformShape<T extends FreeformShape<? extends TextParagraph<? extends TextRun>>> extends DrawAutoShape<T> {
     public DrawFreeformShape(T shape) {
         super(shape);
     }
+    
+    protected Collection<Outline> computeOutlines(Graphics2D graphics) {
+        List<Outline> lst = new ArrayList<Outline>();
+        java.awt.Shape sh = shape.getPath();
+        FillStyle fs = shape.getFillStyle();
+        StrokeStyle ss = shape.getStrokeStyle();
+        Path path = new Path(fs != null, ss != null);
+        lst.add(new Outline(sh, path));
+        return lst;
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java Fri Jul 24 21:47:55 2015
@@ -122,7 +122,7 @@ public class DrawSimpleShape<T extends S
     
         Rectangle2D anchor = getAnchor(graphics, shape);
         double x2 = anchor.getX() + anchor.getWidth(),
-                y2 = anchor.getY() + anchor.getHeight();
+               y2 = anchor.getY() + anchor.getHeight();
     
         double alpha = Math.atan(anchor.getHeight() / anchor.getWidth());
     
@@ -130,8 +130,8 @@ public class DrawSimpleShape<T extends S
         java.awt.Shape shape = null;
         Path p = null;
         Rectangle2D bounds;
-        double scaleY = Math.pow(2, tailWidth.ordinal());
-        double scaleX = Math.pow(2, tailLength.ordinal());
+        final double scaleY = Math.pow(2, tailWidth.ordinal()+1);
+        final double scaleX = Math.pow(2, tailLength.ordinal()+1);
         switch (deco.getTailShape()) {
             case OVAL:
                 p = new Path();
@@ -140,20 +140,19 @@ public class DrawSimpleShape<T extends S
                 at.translate(x2 - bounds.getWidth() / 2, y2 - bounds.getHeight() / 2);
                 at.rotate(alpha, bounds.getX() + bounds.getWidth() / 2, bounds.getY() + bounds.getHeight() / 2);
                 break;
+            case STEALTH:
             case ARROW:
-                p = new Path();
+                p = new Path(false, true);
                 GeneralPath arrow = new GeneralPath();
-                arrow.moveTo((float) (-lineWidth * 3), (float) (-lineWidth * 2));
+                arrow.moveTo((float) (-lineWidth * scaleX), (float) (-lineWidth * scaleY / 2));
                 arrow.lineTo(0, 0);
-                arrow.lineTo((float) (-lineWidth * 3), (float) (lineWidth * 2));
+                arrow.lineTo((float) (-lineWidth * scaleX), (float) (lineWidth * scaleY / 2));
                 shape = arrow;
                 at.translate(x2, y2);
                 at.rotate(alpha);
                 break;
             case TRIANGLE:
                 p = new Path();
-                scaleY = tailWidth.ordinal() + 1;
-                scaleX = tailLength.ordinal() + 1;
                 GeneralPath triangle = new GeneralPath();
                 triangle.moveTo((float) (-lineWidth * scaleX), (float) (-lineWidth * scaleY / 2));
                 triangle.lineTo(0, 0);
@@ -173,7 +172,7 @@ public class DrawSimpleShape<T extends S
         return shape == null ? null : new Outline(shape, p);
     }
     
-    Outline getHeadDecoration(Graphics2D graphics, LineDecoration deco, BasicStroke stroke) {
+    protected Outline getHeadDecoration(Graphics2D graphics, LineDecoration deco, BasicStroke stroke) {
         DecorationSize headLength = deco.getHeadLength();
         DecorationSize headWidth = deco.getHeadWidth();
     
@@ -189,8 +188,8 @@ public class DrawSimpleShape<T extends S
         java.awt.Shape shape = null;
         Path p = null;
         Rectangle2D bounds;
-        double scaleY = 1;
-        double scaleX = 1;
+        final double scaleY = Math.pow(2, headWidth.ordinal()+1);
+        final double scaleX = Math.pow(2, headLength.ordinal()+1);
         switch (deco.getHeadShape()) {
             case OVAL:
                 p = new Path();
@@ -203,17 +202,15 @@ public class DrawSimpleShape<T extends S
             case ARROW:
                 p = new Path(false, true);
                 GeneralPath arrow = new GeneralPath();
-                arrow.moveTo((float) (lineWidth * 3 * scaleX), (float) (-lineWidth * scaleY * 2));
+                arrow.moveTo((float) (lineWidth * scaleX), (float) (-lineWidth * scaleY / 2));
                 arrow.lineTo(0, 0);
-                arrow.lineTo((float) (lineWidth * 3 * scaleX), (float) (lineWidth * scaleY * 2));
+                arrow.lineTo((float) (lineWidth * scaleX), (float) (lineWidth * scaleY / 2));
                 shape = arrow;
                 at.translate(x1, y1);
                 at.rotate(alpha);
                 break;
             case TRIANGLE:
                 p = new Path();
-                scaleY = headWidth.ordinal() + 1;
-                scaleX = headLength.ordinal() + 1;
                 GeneralPath triangle = new GeneralPath();
                 triangle.moveTo((float) (lineWidth * scaleX), (float) (-lineWidth * scaleY / 2));
                 triangle.lineTo(0, 0);

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java Fri Jul 24 21:47:55 2015
@@ -189,7 +189,7 @@ public class DrawTextParagraph<T extends
             if(wrappingWidth < 0) wrappingWidth = 1;
 
             int nextBreak = text.indexOf("\n", startIndex + 1);
-            if(nextBreak == -1) nextBreak = it.getEndIndex();
+            if (nextBreak == -1) nextBreak = it.getEndIndex();
 
             TextLayout layout = measurer.nextLayout((float)wrappingWidth, nextBreak, true);
             if (layout == null) {

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextShape.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextShape.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextShape.java Fri Jul 24 21:47:55 2015
@@ -35,6 +35,8 @@ public class DrawTextShape<T extends Tex
 
     @Override
     public void drawContent(Graphics2D graphics) {
+        fixFonts(graphics);
+        
         Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);
         Insets2D insets = shape.getInsets();
         double x = anchor.getX() + insets.left;
@@ -171,9 +173,12 @@ public class DrawTextShape<T extends Tex
     private static void fixFonts(Graphics2D graphics) {
         if (!JvmBugs.hasLineBreakMeasurerBug()) return;
         Map<String,String> fontMap = (Map<String,String>)graphics.getRenderingHint(Drawable.FONT_MAP);
-        if (fontMap == null) fontMap = new HashMap<String,String>();
-        fontMap.put("Calibri", "Lucida Sans");
-        fontMap.put("Cambria", "Lucida Bright");
-        graphics.setRenderingHint(Drawable.FONT_MAP, fontMap);        
+        if (fontMap == null) {
+            fontMap = new HashMap<String,String>();
+            graphics.setRenderingHint(Drawable.FONT_MAP, fontMap);
+        }
+        
+        if (!fontMap.containsKey("Calibri")) fontMap.put("Calibri", "Lucida Sans");
+        if (!fontMap.containsKey("Cambria")) fontMap.put("Cambria", "Lucida Bright");
     }
 }

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java Fri Jul 24 21:47:55 2015
@@ -45,9 +45,9 @@ import javax.xml.bind.annotation.XmlType
 @XmlType(name = "CT_AdjPoint2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTAdjPoint2D {
 
-    @XmlAttribute(name = "x", required = true)
+    @XmlAttribute(required = true)
     protected String x;
-    @XmlAttribute(name = "y", required = true)
+    @XmlAttribute(required = true)
     protected String y;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAngle.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAngle.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAngle.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTAngle.java Fri Jul 24 21:47:55 2015
@@ -44,7 +44,7 @@ import javax.xml.bind.annotation.XmlType
 @XmlType(name = "CT_Angle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTAngle {
 
-    @XmlAttribute(name = "val", required = true)
+    @XmlAttribute(required = true)
     protected int val;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java Fri Jul 24 21:47:55 2015
@@ -52,12 +52,12 @@ import javax.xml.bind.annotation.XmlType
 public class CTColorMRU {
 
     @XmlElements({
-        @XmlElement(name = "scrgbClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTScRgbColor.class),
-        @XmlElement(name = "srgbClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSRgbColor.class),
-        @XmlElement(name = "hslClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTHslColor.class),
+        @XmlElement(name = "prstClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPresetColor.class),
         @XmlElement(name = "sysClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSystemColor.class),
-        @XmlElement(name = "schemeClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSchemeColor.class),
-        @XmlElement(name = "prstClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPresetColor.class)
+        @XmlElement(name = "hslClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTHslColor.class),
+        @XmlElement(name = "srgbClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSRgbColor.class),
+        @XmlElement(name = "scrgbClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTScRgbColor.class),
+        @XmlElement(name = "schemeClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSchemeColor.class)
     })
     protected List<Object> egColorChoice;
 
@@ -79,12 +79,12 @@ public class CTColorMRU {
      * 
      * <p>
      * Objects of the following type(s) are allowed in the list
-     * {@link CTScRgbColor }
-     * {@link CTSRgbColor }
-     * {@link CTHslColor }
+     * {@link CTPresetColor }
      * {@link CTSystemColor }
+     * {@link CTHslColor }
+     * {@link CTSRgbColor }
+     * {@link CTScRgbColor }
      * {@link CTSchemeColor }
-     * {@link CTPresetColor }
      * 
      * 
      */

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnection.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnection.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnection.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnection.java Fri Jul 24 21:47:55 2015
@@ -46,9 +46,9 @@ import javax.xml.bind.annotation.XmlType
 @XmlType(name = "CT_Connection", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTConnection {
 
-    @XmlAttribute(name = "id", required = true)
+    @XmlAttribute(required = true)
     protected long id;
-    @XmlAttribute(name = "idx", required = true)
+    @XmlAttribute(required = true)
     @XmlSchemaType(name = "unsignedInt")
     protected long idx;
 

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java Fri Jul 24 21:47:55 2015
@@ -52,7 +52,7 @@ public class CTConnectionSite {
 
     @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
     protected CTAdjPoint2D pos;
-    @XmlAttribute(name = "ang", required = true)
+    @XmlAttribute(required = true)
     protected String ang;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java Fri Jul 24 21:47:55 2015
@@ -46,11 +46,11 @@ import javax.xml.bind.annotation.XmlType
 @XmlType(name = "CT_EmbeddedWAVAudioFile", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTEmbeddedWAVAudioFile {
 
-    @XmlAttribute(name = "embed", namespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", required = true)
+    @XmlAttribute(namespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", required = true)
     protected String embed;
-    @XmlAttribute(name = "name")
+    @XmlAttribute
     protected String name;
-    @XmlAttribute(name = "builtIn")
+    @XmlAttribute
     protected Boolean builtIn;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java Fri Jul 24 21:47:55 2015
@@ -44,7 +44,7 @@ import javax.xml.bind.annotation.XmlType
 @XmlType(name = "CT_FixedPercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTFixedPercentage {
 
-    @XmlAttribute(name = "val", required = true)
+    @XmlAttribute(required = true)
     protected int val;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java Fri Jul 24 21:47:55 2015
@@ -47,10 +47,10 @@ import javax.xml.bind.annotation.adapter
 @XmlType(name = "CT_GeomGuide", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTGeomGuide {
 
-    @XmlAttribute(name = "name", required = true)
+    @XmlAttribute(required = true)
     @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
     protected String name;
-    @XmlAttribute(name = "fmla", required = true)
+    @XmlAttribute(required = true)
     protected String fmla;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java Fri Jul 24 21:47:55 2015
@@ -47,13 +47,13 @@ import javax.xml.bind.annotation.XmlType
 @XmlType(name = "CT_GeomRect", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
 public class CTGeomRect {
 
-    @XmlAttribute(name = "l", required = true)
+    @XmlAttribute(required = true)
     protected String l;
-    @XmlAttribute(name = "t", required = true)
+    @XmlAttribute(required = true)
     protected String t;
-    @XmlAttribute(name = "r", required = true)
+    @XmlAttribute(required = true)
     protected String r;
-    @XmlAttribute(name = "b", required = true)
+    @XmlAttribute(required = true)
     protected String b;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java Fri Jul 24 21:47:55 2015
@@ -66,11 +66,11 @@ public class CTGroupTransform2D {
     protected CTPoint2D chOff;
     @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
     protected CTPositiveSize2D chExt;
-    @XmlAttribute(name = "rot")
+    @XmlAttribute
     protected Integer rot;
-    @XmlAttribute(name = "flipH")
+    @XmlAttribute
     protected Boolean flipH;
-    @XmlAttribute(name = "flipV")
+    @XmlAttribute
     protected Boolean flipV;
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java Fri Jul 24 21:47:55 2015
@@ -57,41 +57,41 @@ import javax.xml.bind.annotation.XmlType
 public class CTHslColor {
 
     @XmlElementRefs({
-        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
-        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class),
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class)
     })
     protected List<JAXBElement<?>> egColorTransform;
-    @XmlAttribute(name = "hue", required = true)
+    @XmlAttribute(required = true)
     protected int hue;
-    @XmlAttribute(name = "sat", required = true)
+    @XmlAttribute(required = true)
     protected int sat;
-    @XmlAttribute(name = "lum", required = true)
+    @XmlAttribute(required = true)
     protected int lum;
 
     /**
@@ -112,33 +112,33 @@ public class CTHslColor {
      * 
      * <p>
      * Objects of the following type(s) are allowed in the list
-     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}
      * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
      * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
-     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}
      * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
      * 
      * 

Modified: poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java?rev=1692593&r1=1691849&r2=1692593&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java Fri Jul 24 21:47:55 2015
@@ -63,21 +63,21 @@ public class CTHyperlink {
     protected CTEmbeddedWAVAudioFile snd;
     @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
     protected CTOfficeArtExtensionList extLst;
-    @XmlAttribute(name = "id", namespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships")
+    @XmlAttribute(namespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships")
     protected String id;
-    @XmlAttribute(name = "invalidUrl")
+    @XmlAttribute
     protected String invalidUrl;
-    @XmlAttribute(name = "action")
+    @XmlAttribute
     protected String action;
-    @XmlAttribute(name = "tgtFrame")
+    @XmlAttribute
     protected String tgtFrame;
-    @XmlAttribute(name = "tooltip")
+    @XmlAttribute
     protected String tooltip;
-    @XmlAttribute(name = "history")
+    @XmlAttribute
     protected Boolean history;
-    @XmlAttribute(name = "highlightClick")
+    @XmlAttribute
     protected Boolean highlightClick;
-    @XmlAttribute(name = "endSnd")
+    @XmlAttribute
     protected Boolean endSnd;
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org