merge trunk to common sl branch
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/common_sl@1691845 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/build.xml b/build.xml
index ca705de..d7b5482 100644
--- a/build.xml
+++ b/build.xml
@@ -107,6 +107,12 @@
<property name="scratchpad.output.test.dir" location="build/scratchpad-test-classes"/>
<property name="scratchpad.testokfile" location="build/scratchpad-testokfile.txt"/>
+ <!-- Scratchpad/Geometry -->
+ <property name="geometry.schema" value="src/resources/ooxml/org/apache/poi/xslf/usermodel/presetShapeDefinitions.xml"/>
+ <property name="geometry.pkg" value="org.apache.poi.sl.draw.binding"/>
+ <property name="geometry.output.tmpdir" value="build/geometry-java"/>
+
+
<!-- Examples: -->
<property name="examples.src" location="src/examples/src"/>
<property name="examples.output.dir" location="build/examples-classes"/>
@@ -378,6 +384,7 @@
<mkdir dir="${scratchpad.output.dir}"/>
<mkdir dir="${scratchpad.output.test.dir}"/>
<mkdir dir="${scratchpad.reports.test}"/>
+ <mkdir dir="${geometry.output.tmpdir}"/>
<mkdir dir="${ooxml.output.dir}"/>
<mkdir dir="${ooxml.output.test.dir}"/>
<mkdir dir="${ooxml.reports.test}"/>
@@ -702,7 +709,39 @@
</copy>
</target>
- <target name="compile-scratchpad" depends="compile-main">
+ <target name="generate-geometry" depends="fetch-ooxml-xsds">
+ <delete dir="${geometry.output.tmpdir}"/>
+ <!-- taskdef xjc -->
+ <!-- "D:\Program Files\Java\jdk1.6.0_45\bin\xjc" -p org.apache.poi.sl.model.geom.binding -readOnly -Xlocator -mark-generated ooxml-schemas\dml-shapeGeometry.xsd -->
+ <unzip src="${ooxml.lib}/${ooxml.xsds.izip.1}" dest="${geometry.output.tmpdir}"/>
+ <exec executable="${env.JAVA_HOME}/bin/xjc">
+ <arg value="-p"/>
+ <arg value="${geometry.pkg}"/>
+ <arg value="-b"/>
+ <arg file="src/types/definitions/dml-shapeGeometry.xjb"/>
+ <arg value="-readOnly"/>
+ <arg value="-npa"/>
+ <arg value="-no-header"/>
+ <!--arg value="-mark-generated"/ -->
+ <!--arg value="-Xlocator"/ -->
+ <arg file="${geometry.output.tmpdir}/dml-shapeGeometry.xsd"/>
+ <arg value="-d"/>
+ <arg file="${geometry.output.tmpdir}"/>
+ </exec>
+ <copy file="src/java/org/apache/poi/POIDocument.java" tofile="${geometry.output.tmpdir}/apache-license.txt">
+ <filterchain>
+ <headfilter lines="16"/>
+ </filterchain>
+ </copy>
+ <copy todir="${main.src}">
+ <fileset dir="${geometry.output.tmpdir}" includes="**/*.java"/>
+ <filterchain>
+ <concatfilter prepend="${geometry.output.tmpdir}/apache-license.txt"/>
+ </filterchain>
+ </copy>
+ </target>
+
+ <target name="compile-scratchpad" depends="compile-main,generate-geometry">
<javac target="${jdk.version.class}"
source="${jdk.version.source}"
destdir="${scratchpad.output.dir}"
diff --git a/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java b/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
index 25f1eab..ce6bf5d 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
@@ -17,13 +17,16 @@
package org.apache.poi.hslf.examples;
-import org.apache.poi.hslf.usermodel.*;
+import java.awt.*;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.List;
+
import org.apache.poi.hslf.model.*;
import org.apache.poi.hslf.record.TextHeaderAtom;
-
-import java.io.IOException;
-import java.io.FileOutputStream;
-import java.awt.*;
+import org.apache.poi.hslf.usermodel.*;
+import org.apache.poi.sl.usermodel.ShapeType;
+import org.apache.poi.sl.usermodel.VerticalAlignment;
/**
* Presentation for Fast Feather Track on ApacheconEU 2008
@@ -33,7 +36,7 @@
public final class ApacheconEU08 {
public static void main(String[] args) throws IOException {
- SlideShow ppt = new SlideShow();
+ HSLFSlideShow ppt = new HSLFSlideShow();
ppt.setPageSize(new Dimension(720, 540));
slide1(ppt);
@@ -55,48 +58,43 @@
}
- public static void slide1(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide1(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
- tr1.setText("POI-HSLF");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
+ box1.setText("POI-HSLF");
box1.setAnchor(new Rectangle(54, 78, 612, 115));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.CENTRE_BODY_TYPE);
- tr2.setText("Java API To Access Microsoft PowerPoint Format Files");
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.CENTRE_BODY_TYPE);
+ box2.setText("Java API To Access Microsoft PowerPoint Format Files");
box2.setAnchor(new Rectangle(108, 204, 504, 138));
slide.addShape(box2);
- TextBox box3 = new TextBox();
- TextRun tr3 = box3.getTextRun();
- tr3.getRichTextRuns()[0].setFontSize(32);
- box3.setHorizontalAlignment(TextBox.AlignCenter);
- tr3.setText(
+ HSLFTextBox box3 = new HSLFTextBox();
+ box3.getTextParagraphs().get(0).getTextRuns().get(0).setFontSize(32d);
+ box3.setText(
"Yegor Kozlov\r" +
"yegor - apache - org");
+ box3.setHorizontalCentered(true);
box3.setAnchor(new Rectangle(206, 348, 310, 84));
slide.addShape(box3);
}
- public static void slide2(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide2(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("What is HSLF?");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("What is HSLF?");
box1.setAnchor(new Rectangle(36, 21, 648, 90));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.BODY_TYPE);
- tr2.setText("HorribleSLideshowFormat is the POI Project's pure Java implementation " +
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.BODY_TYPE);
+ box2.setText("HorribleSLideshowFormat is the POI Project's pure Java implementation " +
"of the Powerpoint binary file format. \r" +
"POI sub-project since 2005\r" +
"Started by Nick Birch, Yegor Kozlov joined soon after");
@@ -106,74 +104,66 @@
}
- public static void slide3(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide3(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("HSLF in a Nutshell");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("HSLF in a Nutshell");
box1.setAnchor(new Rectangle(36, 15, 648, 65));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.BODY_TYPE);
- tr2.setText(
- "HSLF provides a way to read, create and modify MS PowerPoint presentations\r" +
- "Pure Java API - you don't need PowerPoint to read and write *.ppt files\r" +
- "Comprehensive support of PowerPoint objects");
- tr2.getRichTextRuns()[0].setFontSize(28);
- box2.setAnchor(new Rectangle(36, 80, 648, 200));
- slide.addShape(box2);
-
- TextBox box3 = new TextBox();
- TextRun tr3 = box3.getTextRun();
- tr3.setRunType(TextHeaderAtom.BODY_TYPE);
- tr3.setText(
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.BODY_TYPE);
+ box2.setText(
+ "HSLF provides a way to read, create and modify MS PowerPoint presentations\r" +
+ "Pure Java API - you don't need PowerPoint to read and write *.ppt files\r" +
+ "Comprehensive support of PowerPoint objects\r" +
"Rich text\r" +
"Tables\r" +
"Shapes\r" +
"Pictures\r" +
- "Master slides");
- tr3.getRichTextRuns()[0].setFontSize(24);
- tr3.getRichTextRuns()[0].setIndentLevel(1);
- box3.setAnchor(new Rectangle(36, 265, 648, 150));
- slide.addShape(box3);
+ "Master slides\r" +
+ "Access to low level data structures"
+ );
- TextBox box4 = new TextBox();
- TextRun tr4 = box4.getTextRun();
- tr4.setRunType(TextHeaderAtom.BODY_TYPE);
- tr4.setText("Access to low level data structures");
- box4.setAnchor(new Rectangle(36, 430, 648, 50));
- slide.addShape(box4);
+ List<HSLFTextParagraph> tp = box2.getTextParagraphs();
+ for (int i : new byte[]{0,1,2,8}) {
+ tp.get(i).getTextRuns().get(0).setFontSize(28d);
+ }
+ for (int i : new byte[]{3,4,5,6,7}) {
+ tp.get(i).getTextRuns().get(0).setFontSize(24d);
+ tp.get(i).setIndentLevel(1);
+ }
+ box2.setAnchor(new Rectangle(36, 80, 648, 400));
+ slide.addShape(box2);
}
- public static void slide4(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide4(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
String[][] txt1 = {
{"Note"},
{"This presentation was created programmatically using POI HSLF"}
};
- Table table1 = new Table(2, 1);
+ HSLFTable table1 = new HSLFTable(2, 1);
for (int i = 0; i < txt1.length; i++) {
for (int j = 0; j < txt1[i].length; j++) {
- TableCell cell = table1.getCell(i, j);
+ HSLFTableCell cell = table1.getCell(i, j);
cell.setText(txt1[i][j]);
- cell.getTextRun().getRichTextRuns()[0].setFontSize(10);
- RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
- rt.setFontName("Arial");
+ HSLFTextRun rt = cell.getTextParagraphs().get(0).getTextRuns().get(0);
+ rt.setFontSize(10d);
+ rt.setFontFamily("Arial");
rt.setBold(true);
if(i == 0){
- rt.setFontSize(32);
+ rt.setFontSize(32d);
rt.setFontColor(Color.white);
cell.getFill().setForegroundColor(new Color(0, 153, 204));
} else {
- rt.setFontSize(28);
+ rt.setFontSize(28d);
cell.getFill().setForegroundColor(new Color(235, 239, 241));
}
- cell.setVerticalAlignment(TextBox.AnchorMiddle);
+ cell.setVerticalAlignment(VerticalAlignment.MIDDLE);
}
}
@@ -194,32 +184,28 @@
table1.moveTo(100, 100);
- TextBox box1 = new TextBox();
- box1.setHorizontalAlignment(TextBox.AlignCenter);
- TextRun tr1 = box1.getTextRun();
- tr1.setText("The source code is available at\r" +
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setHorizontalCentered(true);
+ box1.getTextParagraphs().get(0).getTextRuns().get(0).setFontSize(24d);
+ box1.setText("The source code is available at\r" +
"http://people.apache.org/~yegor/apachecon_eu08/");
- RichTextRun rt = tr1.getRichTextRuns()[0];
- rt.setFontSize(24);
box1.setAnchor(new Rectangle(80, 356, 553, 65));
slide.addShape(box1);
}
- public static void slide5(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide5(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("HSLF in Action - 1\rData Extraction");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("HSLF in Action - 1\rData Extraction");
box1.setAnchor(new Rectangle(36, 21, 648, 100));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.BODY_TYPE);
- tr2.setText(
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.BODY_TYPE);
+ box2.setText(
"Text from slides and notes\r" +
"Images\r" +
"Shapes and their properties (type, position in the slide, color, font, etc.)");
@@ -229,90 +215,88 @@
}
- public static void slide6(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide6(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("HSLF in Action - 2");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("HSLF in Action - 2");
box1.setAnchor(new Rectangle(36, 20, 648, 90));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.getRichTextRuns()[0].setFontSize(18);
- tr2.setText("Creating a simple presentation from scratch");
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.getTextParagraphs().get(0).getTextRuns().get(0).setFontSize(18d);
+ box2.setText("Creating a simple presentation from scratch");
box2.setAnchor(new Rectangle(170, 100, 364, 30));
slide.addShape(box2);
- TextBox box3 = new TextBox();
- TextRun tr3 = box3.getTextRun();
- RichTextRun rt3 = tr3.getRichTextRuns()[0];
- rt3.setFontName("Courier New");
- rt3.setFontSize(8);
- tr3.setText(
- " SlideShow ppt = new SlideShow();\r" +
- " Slide slide = ppt.createSlide();\r" +
- "\r" +
- " TextBox box2 = new TextBox();\r" +
- " box2.setHorizontalAlignment(TextBox.AlignCenter);\r" +
- " box2.setVerticalAlignment(TextBox.AnchorMiddle);\r" +
- " box2.getTextRun().setText(\"Java Code\");\r" +
- " box2.getFill().setForegroundColor(new Color(187, 224, 227));\r" +
- " box2.setLineColor(Color.black);\r" +
- " box2.setLineWidth(0.75);\r" +
- " box2.setAnchor(new Rectangle(66, 243, 170, 170));\r" +
- " slide.addShape(box2);\r" +
- "\r" +
- " TextBox box3 = new TextBox();\r" +
- " box3.setHorizontalAlignment(TextBox.AlignCenter);\r" +
- " box3.setVerticalAlignment(TextBox.AnchorMiddle);\r" +
- " box3.getTextRun().setText(\"*.ppt file\");\r" +
- " box3.setLineWidth(0.75);\r" +
- " box3.setLineColor(Color.black);\r" +
- " box3.getFill().setForegroundColor(new Color(187, 224, 227));\r" +
- " box3.setAnchor(new Rectangle(473, 243, 170, 170));\r" +
- " slide.addShape(box3);\r" +
- "\r" +
- " AutoShape box4 = new AutoShape(ShapeTypes.Arrow);\r" +
- " box4.getFill().setForegroundColor(new Color(187, 224, 227));\r" +
- " box4.setLineWidth(0.75);\r" +
- " box4.setLineColor(Color.black);\r" +
- " box4.setAnchor(new Rectangle(253, 288, 198, 85));\r" +
- " slide.addShape(box4);\r" +
- "\r" +
- " FileOutputStream out = new FileOutputStream(\"hslf-demo.ppt\");\r" +
- " ppt.write(out);\r" +
- " out.close();");
+ HSLFTextBox box3 = new HSLFTextBox();
+ HSLFTextRun rt3 = box3.getTextParagraphs().get(0).getTextRuns().get(0);
+ rt3.setFontFamily("Courier New");
+ rt3.setFontSize(8d);
+ box3.setText(
+ "SlideShow ppt = new SlideShow();\u000b" +
+ "Slide slide = ppt.createSlide();\u000b" +
+ "\u000b" +
+ "TextBox box2 = new TextBox();\u000b" +
+ "box2.setHorizontalAlignment(TextBox.AlignCenter);\u000b" +
+ "box2.setVerticalAlignment(TextBox.AnchorMiddle);\u000b" +
+ "box2.getTextRun().setText(\"Java Code\");\u000b" +
+ "box2.getFill().setForegroundColor(new Color(187, 224, 227));\u000b" +
+ "box2.setLineColor(Color.black);\u000b" +
+ "box2.setLineWidth(0.75);\u000b" +
+ "box2.setAnchor(new Rectangle(66, 243, 170, 170));\u000b" +
+ "slide.addShape(box2);\u000b" +
+ "\u000b" +
+ "TextBox box3 = new TextBox();\u000b" +
+ "box3.setHorizontalAlignment(TextBox.AlignCenter);\u000b" +
+ "box3.setVerticalAlignment(TextBox.AnchorMiddle);\u000b" +
+ "box3.getTextRun().setText(\"*.ppt file\");\u000b" +
+ "box3.setLineWidth(0.75);\u000b" +
+ "box3.setLineColor(Color.black);\u000b" +
+ "box3.getFill().setForegroundColor(new Color(187, 224, 227));\u000b" +
+ "box3.setAnchor(new Rectangle(473, 243, 170, 170));\u000b" +
+ "slide.addShape(box3);\u000b" +
+ "\u000b" +
+ "AutoShape box4 = new AutoShape(ShapeTypes.Arrow);\u000b" +
+ "box4.getFill().setForegroundColor(new Color(187, 224, 227));\u000b" +
+ "box4.setLineWidth(0.75);\u000b" +
+ "box4.setLineColor(Color.black);\u000b" +
+ "box4.setAnchor(new Rectangle(253, 288, 198, 85));\u000b" +
+ "slide.addShape(box4);\u000b" +
+ "\u000b" +
+ "FileOutputStream out = new FileOutputStream(\"hslf-demo.ppt\");\u000b" +
+ "ppt.write(out);\u000b" +
+ "out.close();");
box3.setAnchor(new Rectangle(30, 150, 618, 411));
+ box3.setHorizontalCentered(true);
slide.addShape(box3);
}
- public static void slide7(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide7(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box2 = new TextBox();
- box2.setHorizontalAlignment(TextBox.AlignCenter);
- box2.setVerticalAlignment(TextBox.AnchorMiddle);
- box2.getTextRun().setText("Java Code");
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setHorizontalCentered(true);
+ box2.setVerticalAlignment(VerticalAlignment.MIDDLE);
+ box2.setText("Java Code");
box2.getFill().setForegroundColor(new Color(187, 224, 227));
box2.setLineColor(Color.black);
box2.setLineWidth(0.75);
box2.setAnchor(new Rectangle(66, 243, 170, 170));
slide.addShape(box2);
- TextBox box3 = new TextBox();
- box3.setHorizontalAlignment(TextBox.AlignCenter);
- box3.setVerticalAlignment(TextBox.AnchorMiddle);
- box3.getTextRun().setText("*.ppt file");
+ HSLFTextBox box3 = new HSLFTextBox();
+ box3.setHorizontalCentered(true);
+ box3.setVerticalAlignment(VerticalAlignment.MIDDLE);
+ box3.setText("*.ppt file");
box3.setLineWidth(0.75);
box3.setLineColor(Color.black);
box3.getFill().setForegroundColor(new Color(187, 224, 227));
box3.setAnchor(new Rectangle(473, 243, 170, 170));
slide.addShape(box3);
- AutoShape box4 = new AutoShape(ShapeTypes.Arrow);
+ HSLFAutoShape box4 = new HSLFAutoShape(ShapeType.RIGHT_ARROW);
box4.getFill().setForegroundColor(new Color(187, 224, 227));
box4.setLineWidth(0.75);
box4.setLineColor(Color.black);
@@ -320,20 +304,18 @@
slide.addShape(box4);
}
- public static void slide8(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide8(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("Wait, there is more!");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("Wait, there is more!");
box1.setAnchor(new Rectangle(36, 21, 648, 90));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.BODY_TYPE);
- tr2.setText(
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.BODY_TYPE);
+ box2.setText(
"Rich text\r" +
"Tables\r" +
"Pictures (JPEG, PNG, BMP, WMF, PICT)\r" +
@@ -342,72 +324,70 @@
slide.addShape(box2);
}
- public static void slide9(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide9(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("HSLF in Action - 3");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("HSLF in Action - 3");
box1.setAnchor(new Rectangle(36, 20, 648, 50));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.getRichTextRuns()[0].setFontSize(18);
- tr2.setText("PPGraphics2D: PowerPoint Graphics2D driver");
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.getTextParagraphs().get(0).getTextRuns().get(0).setFontSize(18d);
+ box2.setText("PPGraphics2D: PowerPoint Graphics2D driver");
box2.setAnchor(new Rectangle(178, 70, 387, 30));
slide.addShape(box2);
- TextBox box3 = new TextBox();
- TextRun tr3 = box3.getTextRun();
- RichTextRun rt3 = tr3.getRichTextRuns()[0];
- rt3.setFontName("Courier New");
- rt3.setFontSize(8);
- tr3.setText(
- " //bar chart data. The first value is the bar color, the second is the width\r" +
- " Object[] def = new Object[]{\r" +
- " Color.yellow, new Integer(100),\r" +
- " Color.green, new Integer(150),\r" +
- " Color.gray, new Integer(75),\r" +
- " Color.red, new Integer(200),\r" +
- " };\r" +
- "\r" +
- " SlideShow ppt = new SlideShow();\r" +
- " Slide slide = ppt.createSlide();\r" +
- "\r" +
- " ShapeGroup group = new ShapeGroup();\r" +
- " //define position of the drawing in the slide\r" +
- " Rectangle bounds = new java.awt.Rectangle(200, 100, 350, 300);\r" +
- " group.setAnchor(bounds);\r" +
- " slide.addShape(group);\r" +
- " Graphics2D graphics = new PPGraphics2D(group);\r" +
- "\r" +
- " //draw a simple bar graph\r" +
- " int x = bounds.x + 50, y = bounds.y + 50;\r" +
- " graphics.setFont(new Font(\"Arial\", Font.BOLD, 10));\r" +
- " for (int i = 0, idx = 1; i < def.length; i+=2, idx++) {\r" +
- " graphics.setColor(Color.black);\r" +
- " int width = ((Integer)def[i+1]).intValue();\r" +
- " graphics.drawString(\"Q\" + idx, x-20, y+20);\r" +
- " graphics.drawString(width + \"%\", x + width + 10, y + 20);\r" +
- " graphics.setColor((Color)def[i]);\r" +
- " graphics.fill(new Rectangle(x, y, width, 30));\r" +
- " y += 40;\r" +
- " }\r" +
- " graphics.setColor(Color.black);\r" +
- " graphics.setFont(new Font(\"Arial\", Font.BOLD, 14));\r" +
- " graphics.draw(bounds);\r" +
- " graphics.drawString(\"Performance\", x + 70, y + 40);\r" +
- "\r" +
- " FileOutputStream out = new FileOutputStream(\"hslf-demo.ppt\");\r" +
- " ppt.write(out);\r" +
- " out.close();");
+ HSLFTextBox box3 = new HSLFTextBox();
+ HSLFTextRun rt3 = box3.getTextParagraphs().get(0).getTextRuns().get(0);
+ rt3.setFontFamily("Courier New");
+ rt3.setFontSize(8d);
+ box3.setText(
+ "//bar chart data. The first value is the bar color, the second is the width\u000b" +
+ "Object[] def = new Object[]{\u000b" +
+ " Color.yellow, new Integer(100),\u000b" +
+ " Color.green, new Integer(150),\u000b" +
+ " Color.gray, new Integer(75),\u000b" +
+ " Color.red, new Integer(200),\u000b" +
+ "};\u000b" +
+ "\u000b" +
+ "SlideShow ppt = new SlideShow();\u000b" +
+ "Slide slide = ppt.createSlide();\u000b" +
+ "\u000b" +
+ "ShapeGroup group = new ShapeGroup();\u000b" +
+ "//define position of the drawing in the slide\u000b" +
+ "Rectangle bounds = new java.awt.Rectangle(200, 100, 350, 300);\u000b" +
+ "group.setAnchor(bounds);\u000b" +
+ "slide.addShape(group);\u000b" +
+ "Graphics2D graphics = new PPGraphics2D(group);\u000b" +
+ "\u000b" +
+ "//draw a simple bar graph\u000b" +
+ "int x = bounds.x + 50, y = bounds.y + 50;\u000b" +
+ "graphics.setFont(new Font(\"Arial\", Font.BOLD, 10));\u000b" +
+ "for (int i = 0, idx = 1; i < def.length; i+=2, idx++) {\u000b" +
+ " graphics.setColor(Color.black);\u000b" +
+ " int width = ((Integer)def[i+1]).intValue();\u000b" +
+ " graphics.drawString(\"Q\" + idx, x-20, y+20);\u000b" +
+ " graphics.drawString(width + \"%\", x + width + 10, y + 20);\u000b" +
+ " graphics.setColor((Color)def[i]);\u000b" +
+ " graphics.fill(new Rectangle(x, y, width, 30));\u000b" +
+ " y += 40;\u000b" +
+ "}\u000b" +
+ "graphics.setColor(Color.black);\u000b" +
+ "graphics.setFont(new Font(\"Arial\", Font.BOLD, 14));\u000b" +
+ "graphics.draw(bounds);\u000b" +
+ "graphics.drawString(\"Performance\", x + 70, y + 40);\u000b" +
+ "\u000b" +
+ "FileOutputStream out = new FileOutputStream(\"hslf-demo.ppt\");\u000b" +
+ "ppt.write(out);\u000b" +
+ "out.close();");
box3.setAnchor(new Rectangle(96, 110, 499, 378));
+ box3.setHorizontalCentered(true);
slide.addShape(box3);
}
- public static void slide10(SlideShow ppt) throws IOException {
+ public static void slide10(HSLFSlideShow ppt) throws IOException {
//bar chart data. The first value is the bar color, the second is the width
Object[] def = new Object[]{
Color.yellow, new Integer(100),
@@ -416,9 +396,9 @@
Color.red, new Integer(200),
};
- Slide slide = ppt.createSlide();
+ HSLFSlide slide = ppt.createSlide();
- ShapeGroup group = new ShapeGroup();
+ HSLFGroupShape group = new HSLFGroupShape();
//define position of the drawing in the slide
Rectangle bounds = new java.awt.Rectangle(200, 100, 350, 300);
group.setAnchor(bounds);
@@ -444,69 +424,51 @@
}
- public static void slide11(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide11(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.TITLE_TYPE);
- tr1.setText("HSLF Development Plans");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.TITLE_TYPE);
+ box1.setText("HSLF Development Plans");
box1.setAnchor(new Rectangle(36, 21, 648, 90));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.BODY_TYPE);
- tr2.getRichTextRuns()[0].setFontSize(32);
- tr2.setText(
- "Support for more PowerPoint functionality\r" +
- "Rendering slides into java.awt.Graphics2D");
- box2.setAnchor(new Rectangle(36, 126, 648, 100));
- slide.addShape(box2);
-
- TextBox box3 = new TextBox();
- TextRun tr3 = box3.getTextRun();
- tr3.setRunType(TextHeaderAtom.BODY_TYPE);
- tr3.getRichTextRuns()[0].setIndentLevel(1);
- tr3.setText(
- "A way to export slides into images or other formats");
- box3.setAnchor(new Rectangle(36, 220, 648, 70));
- slide.addShape(box3);
-
- TextBox box4 = new TextBox();
- TextRun tr4 = box4.getTextRun();
- tr4.setRunType(TextHeaderAtom.BODY_TYPE);
- tr4.getRichTextRuns()[0].setFontSize(32);
- tr4.setText(
- "Integration with Apache FOP - Formatting Objects Processor");
- box4.setAnchor(new Rectangle(36, 290, 648, 90));
- slide.addShape(box4);
-
- TextBox box5 = new TextBox();
- TextRun tr5 = box5.getTextRun();
- tr5.setRunType(TextHeaderAtom.BODY_TYPE);
- tr5.getRichTextRuns()[0].setIndentLevel(1);
- tr5.setText(
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.BODY_TYPE);
+ box2.setText(
+ "Support for more PowerPoint functionality\r" +
+ "Rendering slides into java.awt.Graphics2D\r" +
+ "A way to export slides into images or other formats\r" +
+ "Integration with Apache FOP - Formatting Objects Processor\r" +
"Transformation of XSL-FO into PPT\r" +
- "PPT2PDF transcoder");
- box5.setAnchor(new Rectangle(36, 380, 648, 100));
- slide.addShape(box5);
+ "PPT2PDF transcoder"
+ );
+
+ List<HSLFTextParagraph> tp = box2.getTextParagraphs();
+ for (int i : new byte[]{0,1,3}) {
+ tp.get(i).getTextRuns().get(0).setFontSize(28d);
+ }
+ for (int i : new byte[]{2,4,5}) {
+ tp.get(i).getTextRuns().get(0).setFontSize(24d);
+ tp.get(i).setIndentLevel(1);
+ }
+
+ box2.setAnchor(new Rectangle(36, 126, 648, 400));
+ slide.addShape(box2);
}
- public static void slide12(SlideShow ppt) throws IOException {
- Slide slide = ppt.createSlide();
+ public static void slide12(HSLFSlideShow ppt) throws IOException {
+ HSLFSlide slide = ppt.createSlide();
- TextBox box1 = new TextBox();
- TextRun tr1 = box1.getTextRun();
- tr1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
- tr1.setText("Questions?");
+ HSLFTextBox box1 = new HSLFTextBox();
+ box1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
+ box1.setText("Questions?");
box1.setAnchor(new Rectangle(54, 167, 612, 115));
slide.addShape(box1);
- TextBox box2 = new TextBox();
- TextRun tr2 = box2.getTextRun();
- tr2.setRunType(TextHeaderAtom.CENTRE_BODY_TYPE);
- tr2.setText(
+ HSLFTextBox box2 = new HSLFTextBox();
+ box2.setRunType(TextHeaderAtom.CENTRE_BODY_TYPE);
+ box2.setText(
"http://poi.apache.org/hslf/\r" +
"http://people.apache.org/~yegor");
box2.setAnchor(new Rectangle(108, 306, 504, 138));
diff --git a/src/examples/src/org/apache/poi/hslf/examples/BulletsDemo.java b/src/examples/src/org/apache/poi/hslf/examples/BulletsDemo.java
index 3a97b61..a047d8b 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/BulletsDemo.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/BulletsDemo.java
@@ -17,10 +17,7 @@
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.Slide;
-import org.apache.poi.hslf.model.TextBox;
+import org.apache.poi.hslf.usermodel.*;
import java.io.FileOutputStream;
@@ -34,22 +31,22 @@
public static void main(String[] args) throws Exception {
- SlideShow ppt = new SlideShow();
+ HSLFSlideShow ppt = new HSLFSlideShow();
- Slide slide = ppt.createSlide();
+ HSLFSlide slide = ppt.createSlide();
- TextBox shape = new TextBox();
- RichTextRun rt = shape.getTextRun().getRichTextRuns()[0];
+ HSLFTextBox shape = new HSLFTextBox();
+ HSLFTextParagraph rt = shape.getTextParagraphs().get(0);
+ rt.getTextRuns().get(0).setFontSize(42d);
+ rt.setBullet(true);
+ rt.setIndent(0d); //bullet offset
+ rt.setLeftMargin(50d); //text offset (should be greater than bullet offset)
+ rt.setBulletChar('\u263A'); //bullet character
shape.setText(
"January\r" +
"February\r" +
"March\r" +
"April");
- rt.setFontSize(42);
- rt.setBullet(true);
- rt.setBulletOffset(0); //bullet offset
- rt.setTextOffset(50); //text offset (should be greater than bullet offset)
- rt.setBulletChar('\u263A'); //bullet character
slide.addShape(shape);
shape.setAnchor(new java.awt.Rectangle(50, 50, 500, 300)); //position of the text box in the slide
diff --git a/src/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java b/src/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
index 0aa8db3..8732152 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/CreateHyperlink.java
@@ -17,7 +17,7 @@
package org.apache.poi.hslf.examples;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.*;
import org.apache.poi.hslf.model.*;
import java.io.FileOutputStream;
@@ -31,19 +31,19 @@
public final class CreateHyperlink {
public static void main(String[] args) throws Exception {
- SlideShow ppt = new SlideShow();
+ HSLFSlideShow ppt = new HSLFSlideShow();
- Slide slideA = ppt.createSlide();
- Slide slideB = ppt.createSlide();
- Slide slideC = ppt.createSlide();
+ HSLFSlide slideA = ppt.createSlide();
+ HSLFSlide slideB = ppt.createSlide();
+ HSLFSlide slideC = ppt.createSlide();
// link to a URL
- TextBox textBox1 = new TextBox();
+ HSLFTextBox textBox1 = new HSLFTextBox();
textBox1.setText("Apache POI");
textBox1.setAnchor(new Rectangle(100, 100, 200, 50));
String text = textBox1.getText();
- Hyperlink link = new Hyperlink();
+ HSLFHyperlink link = new HSLFHyperlink();
link.setAddress("http://www.apache.org");
link.setTitle(textBox1.getText());
int linkId = ppt.addHyperlink(link);
@@ -54,11 +54,11 @@
slideA.addShape(textBox1);
// link to another slide
- TextBox textBox2 = new TextBox();
+ HSLFTextBox textBox2 = new HSLFTextBox();
textBox2.setText("Go to slide #3");
textBox2.setAnchor(new Rectangle(100, 300, 200, 50));
- Hyperlink link2 = new Hyperlink();
+ HSLFHyperlink link2 = new HSLFHyperlink();
link2.setAddress(slideC);
ppt.addHyperlink(link2);
diff --git a/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java b/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
index a278e89..d1e9a21 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
@@ -41,11 +41,11 @@
}
FileInputStream is = new FileInputStream(args[0]);
- SlideShow ppt = new SlideShow(is);
+ HSLFSlideShow ppt = new HSLFSlideShow(is);
is.close();
//extract all sound files embedded in this presentation
- SoundData[] sound = ppt.getSoundData();
+ HSLFSoundData[] sound = ppt.getSoundData();
for (int i = 0; i < sound.length; i++) {
String type = sound[i].getSoundType(); //*.wav
String name = sound[i].getSoundName(); //typically file name
@@ -57,14 +57,14 @@
out.close();
}
- //extract embedded OLE documents
- 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++) {
- if (shape[j] instanceof OLEShape) {
- OLEShape ole = (OLEShape) shape[j];
- ObjectData data = ole.getObjectData();
+ int oleIdx=-1, picIdx=-1;
+ for (HSLFSlide slide : ppt.getSlides()) {
+ //extract embedded OLE documents
+ for (HSLFShape shape : slide.getShapes()) {
+ if (shape instanceof OLEShape) {
+ oleIdx++;
+ OLEShape ole = (OLEShape) shape;
+ HSLFObjectData data = ole.getObjectData();
String name = ole.getInstanceName();
if ("Worksheet".equals(name)) {
@@ -81,11 +81,11 @@
}
//save on disk
- FileOutputStream out = new FileOutputStream(name + "-("+(j)+").doc");
+ FileOutputStream out = new FileOutputStream(name + "-("+(oleIdx)+").doc");
doc.write(out);
out.close();
} else {
- FileOutputStream out = new FileOutputStream(ole.getProgID() + "-"+(j+1)+".dat");
+ FileOutputStream out = new FileOutputStream(ole.getProgID() + "-"+(oleIdx+1)+".dat");
InputStream dis = data.getData();
byte[] chunk = new byte[2048];
int count;
@@ -96,50 +96,44 @@
out.close();
}
}
-
- }
- }
-
- //Pictures
- for (int i = 0; i < slide.length; i++) {
- Shape[] shape = slide[i].getShapes();
- for (int j = 0; j < shape.length; j++) {
- if (shape[j] instanceof Picture) {
- Picture p = (Picture) shape[j];
- PictureData data = p.getPictureData();
+
+ //Pictures
+ else if (shape instanceof HSLFPictureShape) {
+ picIdx++;
+ HSLFPictureShape p = (HSLFPictureShape) shape;
+ HSLFPictureData data = p.getPictureData();
String name = p.getPictureName();
int type = data.getType();
String ext;
switch (type) {
- case Picture.JPEG:
+ case HSLFPictureShape.JPEG:
ext = ".jpg";
break;
- case Picture.PNG:
+ case HSLFPictureShape.PNG:
ext = ".png";
break;
- case Picture.WMF:
+ case HSLFPictureShape.WMF:
ext = ".wmf";
break;
- case Picture.EMF:
+ case HSLFPictureShape.EMF:
ext = ".emf";
break;
- case Picture.PICT:
+ case HSLFPictureShape.PICT:
ext = ".pict";
break;
- case Picture.DIB:
+ case HSLFPictureShape.DIB:
ext = ".dib";
break;
default:
continue;
}
- FileOutputStream out = new FileOutputStream("pict-" + j + ext);
+ FileOutputStream out = new FileOutputStream("pict-" + picIdx + ext);
out.write(data.getData());
out.close();
}
-
}
- }
+ }
}
private static void usage(){
diff --git a/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java b/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java
index 8d79211..cd90090 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java
@@ -17,7 +17,7 @@
package org.apache.poi.hslf.examples;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.*;
import org.apache.poi.hslf.model.*;
import java.awt.*;
@@ -34,7 +34,7 @@
* A simple bar chart demo
*/
public static void main(String[] args) throws Exception {
- SlideShow ppt = new SlideShow();
+ HSLFSlideShow ppt = new HSLFSlideShow();
//bar chart data. The first value is the bar color, the second is the width
Object[] def = new Object[]{
@@ -44,13 +44,13 @@
Color.red, new Integer(80),
};
- Slide slide = ppt.createSlide();
+ HSLFSlide slide = ppt.createSlide();
- ShapeGroup group = new ShapeGroup();
+ HSLFGroupShape group = new HSLFGroupShape();
//define position of the drawing in the slide
Rectangle bounds = new java.awt.Rectangle(200, 100, 350, 300);
group.setAnchor(bounds);
- group.setCoordinates(new java.awt.Rectangle(0, 0, 100, 100));
+ group.setInteriorAnchor(new java.awt.Rectangle(0, 0, 100, 100));
slide.addShape(group);
Graphics2D graphics = new PPGraphics2D(group);
@@ -68,7 +68,7 @@
}
graphics.setColor(Color.black);
graphics.setFont(new Font("Arial", Font.BOLD, 14));
- graphics.draw(group.getCoordinates());
+ graphics.draw(group.getInteriorAnchor());
graphics.drawString("Performance", x + 30, y + 10);
FileOutputStream out = new FileOutputStream("hslf-graphics.ppt");
diff --git a/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java b/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java
index 3ebcecc..b335e1f 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/HeadersFootersDemo.java
@@ -16,9 +16,9 @@
==================================================================== */
package org.apache.poi.hslf.examples;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.model.HeadersFooters;
-import org.apache.poi.hslf.model.Slide;
import java.io.FileOutputStream;
@@ -29,7 +29,7 @@
*/
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 @@
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);
diff --git a/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java b/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
index 968426c..9e88082 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
@@ -17,13 +17,10 @@
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.*;
/**
* Demonstrates how to read hyperlinks from a presentation
@@ -35,47 +32,40 @@
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());
+ 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");
- 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);
+ // 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);
+ }
}
diff --git a/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java b/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java
index 99037d3..8981c64 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/PPT2PNG.java
@@ -17,15 +17,16 @@
package org.apache.poi.hslf.examples;
-import org.apache.poi.hslf.usermodel.*;
-import org.apache.poi.hslf.model.*;
+import java.awt.*;
+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 +63,18 @@
}
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 +88,9 @@
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();
diff --git a/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java b/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
index b31019d..3cdb101 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
@@ -15,16 +15,14 @@
limitations under the License.
==================================================================== */
package org.apache.poi.hslf.examples;
-import org.apache.poi.ddf.*;
-import org.apache.poi.hslf.model.*;
-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.ddf.*;
+import org.apache.poi.hslf.record.*;
+import org.apache.poi.hslf.usermodel.*;
+
/**
* For each slide iterate over shapes and found associated sound data.
*
@@ -32,19 +30,18 @@
*/
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();
- 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());
- }
+ for (HSLFSlide slide : ppt.getSlides()) {
+ for (HSLFShape shape : slide.getShapes()) {
+ int soundRef = getSoundReference(shape);
+ if(soundRef == -1) continue;
+
+
+ System.out.println("Slide["+slide.getSlideNumber()+"], shape["+shape.getShapeId()+"], soundRef: "+soundRef);
+ System.out.println(" " + sounds[soundRef].getSoundName());
+ System.out.println(" " + sounds[soundRef].getSoundType());
}
}
}
@@ -54,7 +51,7 @@
* @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();
diff --git a/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java b/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java
index 44935c0..93463aa 100644
--- a/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java
+++ b/src/examples/src/org/apache/poi/hslf/examples/TableDemo.java
@@ -17,9 +17,10 @@
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.usermodel.*;
import org.apache.poi.hslf.model.*;
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;
+import org.apache.poi.sl.usermodel.VerticalAlignment;
import java.awt.*;
import java.io.FileOutputStream;
@@ -43,26 +44,26 @@
{"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 +88,27 @@
};
//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);
diff --git a/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java b/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java
index bb6f19d..c656e7c 100644
--- a/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java
+++ b/src/examples/src/org/apache/poi/hssf/usermodel/examples/EmeddedObjects.java
@@ -21,8 +21,8 @@
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 org.apache.poi.hslf.usermodel.HSLFSlideShow;
+import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
import java.io.FileInputStream;
import java.util.Iterator;
@@ -47,7 +47,7 @@
//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()){
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java b/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java
index b7e08fc..5437b5d 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java
@@ -76,7 +76,6 @@
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());
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java b/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java
index de90c52..e399d3d 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/PieChartDemo.java
@@ -67,7 +67,7 @@
String chartTitle = modelReader.readLine(); // first line is chart title
XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(args[0]));
- XSLFSlide slide = pptx.getSlides()[0];
+ XSLFSlide slide = pptx.getSlides().get(0);
// find chart in the slide
XSLFChart chart = null;
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java
index 93d437b..f552ea8 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial1.java
@@ -37,7 +37,7 @@
/*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,13 +56,13 @@
// 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(3);
p3.addNewTextRun().setText("Level3 text");
FileOutputStream out = new FileOutputStream("slides.pptx");
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java
index 373f01f..dcd0dea 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial2.java
@@ -42,30 +42,30 @@
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 " +
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
index ea4fba3..926bc0d 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
@@ -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
*
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java
index a80f23c..443d568 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial7.java
@@ -23,6 +23,8 @@
import java.io.FileOutputStream;
import java.io.IOException;
+import org.apache.poi.sl.usermodel.AutoNumberingScheme;
+
/**
* Bullets and numbering
*
@@ -38,41 +40,41 @@
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");
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java b/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java
index a83a17e..41c6cc2 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step1.java
@@ -50,12 +50,12 @@
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());
diff --git a/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java b/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java
index b006eb8..cd01d60c8 100644
--- a/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java
+++ b/src/examples/src/org/apache/poi/xslf/usermodel/tutorial/Step2.java
@@ -49,7 +49,7 @@
// 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);
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
index b50e959..69b570f 100644
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/EmbeddedObjects.java
@@ -20,7 +20,7 @@
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 @@
}
// 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")) {
diff --git a/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java b/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
index 51e54f6..a946b18 100644
--- a/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
+++ b/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
@@ -22,14 +22,14 @@
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());
diff --git a/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java b/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java
index b6f5f7c..2669238 100644
--- a/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java
+++ b/src/integrationtest/org/apache/poi/stress/XSLFFileHandler.java
@@ -29,6 +29,8 @@
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 @@
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 @@
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;
diff --git a/src/java/org/apache/poi/common/usermodel/Fill.java b/src/java/org/apache/poi/common/usermodel/Fill.java
deleted file mode 100644
index 9e1ab45..0000000
--- a/src/java/org/apache/poi/common/usermodel/Fill.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.common.usermodel;
-
-import java.awt.Color;
-
-public interface Fill {
- public Color getColor();
- public void setColor(Color color);
-}
diff --git a/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java b/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
index cf48a38..05a3246 100644
--- a/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
+++ b/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
@@ -117,7 +117,7 @@
* @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];
diff --git a/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java b/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java
index b6193ce..bbb84ba 100644
--- a/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java
+++ b/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java
@@ -40,13 +40,26 @@
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 @@
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;
diff --git a/src/java/org/apache/poi/ddf/EscherContainerRecord.java b/src/java/org/apache/poi/ddf/EscherContainerRecord.java
index 8454231..d613943 100644
--- a/src/java/org/apache/poi/ddf/EscherContainerRecord.java
+++ b/src/java/org/apache/poi/ddf/EscherContainerRecord.java
@@ -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 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>
*/
diff --git a/src/java/org/apache/poi/ddf/EscherProperties.java b/src/java/org/apache/poi/ddf/EscherProperties.java
index 7ec2190..2bee6b9 100644
--- a/src/java/org/apache/poi/ddf/EscherProperties.java
+++ b/src/java/org/apache/poi/ddf/EscherProperties.java
@@ -507,7 +507,7 @@
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");
diff --git a/src/java/org/apache/poi/ddf/EscherTextboxRecord.java b/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
index c21c227..1a0147f 100644
--- a/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
+++ b/src/java/org/apache/poi/ddf/EscherTextboxRecord.java
@@ -17,9 +17,7 @@
package org.apache.poi.ddf;
-import org.apache.poi.util.HexDump;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.RecordFormatException;
+import org.apache.poi.util.*;
/**
* Holds data from the parent application. Most commonly used to store
@@ -32,7 +30,7 @@
*/
public class EscherTextboxRecord extends EscherRecord
{
- public static final short RECORD_ID = (short)0xF00D;
+ public static final short RECORD_ID = (short)0xf00d;
public static final String RECORD_DESCRIPTION = "msofbtClientTextbox";
private static final byte[] NO_BYTES = new byte[0];
diff --git a/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java b/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java
index beadac4..8ada601 100644
--- a/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java
+++ b/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java
@@ -28,6 +28,7 @@
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 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 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 );
}
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java b/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
index 04f57b4..667c83c 100644
--- a/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
@@ -518,7 +518,7 @@
}
public Chart createChart(ClientAnchor anchor) {
- throw new RuntimeException("NotImplemented");
+ throw new UnsupportedOperationException("NotImplemented");
}
diff --git a/src/java/org/apache/poi/common/usermodel/LineStyle.java b/src/java/org/apache/poi/sl/draw/DrawAutoShape.java
similarity index 78%
copy from src/java/org/apache/poi/common/usermodel/LineStyle.java
copy to src/java/org/apache/poi/sl/draw/DrawAutoShape.java
index db676f5..6af2b4b 100644
--- a/src/java/org/apache/poi/common/usermodel/LineStyle.java
+++ b/src/java/org/apache/poi/sl/draw/DrawAutoShape.java
@@ -1,21 +1,27 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.common.usermodel;
-
-public interface LineStyle {
-
-}
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import org.apache.poi.sl.usermodel.*;
+
+
+public class DrawAutoShape<T extends AutoShape<? extends TextParagraph<? extends TextRun>>> extends DrawTextShape<T> {
+ public DrawAutoShape(T shape) {
+ super(shape);
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawBackground.java b/src/java/org/apache/poi/sl/draw/DrawBackground.java
new file mode 100644
index 0000000..35c844d
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawBackground.java
@@ -0,0 +1,60 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.*;
+import java.awt.geom.Rectangle2D;
+
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.Shape;
+
+
+public class DrawBackground<T extends Background> extends DrawShape<T> {
+ public DrawBackground(T shape) {
+ super(shape);
+ }
+
+ public void draw(Graphics2D graphics) {
+ Dimension pg = shape.getSheet().getSlideShow().getPageSize();
+ final Rectangle2D anchor = new Rectangle2D.Double(0, 0, pg.getWidth(), pg.getHeight());
+
+ PlaceableShape ps = new PlaceableShape(){
+ public ShapeContainer<? extends Shape> getParent() { return null; }
+ public Rectangle2D getAnchor() { return anchor; }
+ public void setAnchor(Rectangle2D anchor) {}
+ public double getRotation() { return 0; }
+ public void setRotation(double theta) {}
+ public void setFlipHorizontal(boolean flip) {}
+ public void setFlipVertical(boolean flip) {}
+ public boolean getFlipHorizontal() { return false; }
+ public boolean getFlipVertical() { return false; }
+ };
+
+ DrawFactory drawFact = DrawFactory.getInstance(graphics);
+ DrawPaint dp = drawFact.getPaint(ps);
+ Paint fill = dp.getPaint(graphics, shape.getFillStyle().getPaint());
+ Rectangle2D anchor2 = getAnchor(graphics, anchor);
+
+ if(fill != null) {
+ graphics.setPaint(fill);
+ graphics.fill(anchor2);
+ }
+ }
+
+
+}
diff --git a/src/java/org/apache/poi/common/usermodel/LineStyle.java b/src/java/org/apache/poi/sl/draw/DrawConnectorShape.java
similarity index 80%
rename from src/java/org/apache/poi/common/usermodel/LineStyle.java
rename to src/java/org/apache/poi/sl/draw/DrawConnectorShape.java
index db676f5..0fee07c 100644
--- a/src/java/org/apache/poi/common/usermodel/LineStyle.java
+++ b/src/java/org/apache/poi/sl/draw/DrawConnectorShape.java
@@ -1,21 +1,26 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.common.usermodel;
-
-public interface LineStyle {
-
-}
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import org.apache.poi.sl.usermodel.*;
+
+public class DrawConnectorShape<T extends ConnectorShape> extends DrawSimpleShape<T> {
+ public DrawConnectorShape(T shape) {
+ super(shape);
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawFactory.java b/src/java/org/apache/poi/sl/draw/DrawFactory.java
new file mode 100644
index 0000000..97b3f52
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawFactory.java
@@ -0,0 +1,148 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import static org.apache.poi.sl.draw.Drawable.DRAW_FACTORY;
+
+import java.awt.Graphics2D;
+import java.awt.font.TextLayout;
+import java.text.AttributedString;
+
+import org.apache.poi.sl.usermodel.*;
+
+public class DrawFactory {
+ protected static ThreadLocal<DrawFactory> defaultFactory = new ThreadLocal<DrawFactory>();
+
+ /**
+ * Set a custom draw factory for the current thread.
+ * This is a fallback, for operations where usercode can't set a graphics context.
+ * Preferably use the rendering hint {@link Drawable#DRAW_FACTORY} to set the factory.
+ *
+ * @param factory
+ */
+ public static void setDefaultFactory(DrawFactory factory) {
+ defaultFactory.set(factory);
+ }
+
+ public static DrawFactory getInstance(Graphics2D graphics) {
+ // first try to find the factory over the rendering hint
+ DrawFactory factory = null;
+ boolean isHint = false;
+ if (graphics != null) {
+ factory = (DrawFactory)graphics.getRenderingHint(DRAW_FACTORY);
+ isHint = (factory != null);
+ }
+ // secondly try the thread local default
+ if (factory == null) {
+ factory = defaultFactory.get();
+ }
+ // and at last, use the default factory
+ if (factory == null) {
+ factory = new DrawFactory();
+ }
+ if (graphics != null && !isHint) {
+ graphics.setRenderingHint(DRAW_FACTORY, factory);
+ }
+ return factory;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Drawable getDrawable(Shape shape) {
+ if (shape instanceof TextBox) {
+ return getDrawable((TextBox<? extends TextParagraph<? extends TextRun>>)shape);
+ } else if (shape instanceof FreeformShape) {
+ return getDrawable((FreeformShape<? extends TextParagraph<? extends TextRun>>)shape);
+ } else if (shape instanceof TextShape) {
+ return getDrawable((TextShape<? extends TextParagraph<? extends TextRun>>)shape);
+ } else if (shape instanceof GroupShape) {
+ return getDrawable((GroupShape<? extends Shape>)shape);
+ } else if (shape instanceof PictureShape) {
+ return getDrawable((PictureShape)shape);
+ } else if (shape instanceof Background) {
+ return getDrawable((Background)shape);
+ } else if (shape instanceof ConnectorShape) {
+ return getDrawable((ConnectorShape)shape);
+ } else if (shape instanceof TableShape) {
+ return getDrawable((TableShape)shape);
+ } else if (shape instanceof Slide) {
+ return getDrawable((Slide<? extends Shape, ? extends SlideShow, ? extends Notes<?,?>>)shape);
+ } else if (shape instanceof MasterSheet) {
+ return getDrawable((MasterSheet<? extends Shape, ? extends SlideShow>)shape);
+ } else if (shape instanceof Sheet) {
+ return getDrawable((Sheet<? extends Shape, ? extends SlideShow>)shape);
+ }
+
+ throw new IllegalArgumentException("Unsupported shape type: "+shape.getClass());
+ }
+
+ public <T extends Slide<? extends Shape, ? extends SlideShow, ? extends Notes<?,?>>> DrawSlide<T> getDrawable(T sheet) {
+ return new DrawSlide<T>(sheet);
+ }
+
+ public <T extends Sheet<? extends Shape, ? extends SlideShow>> DrawSheet<T> getDrawable(T sheet) {
+ return new DrawSheet<T>(sheet);
+ }
+
+ public <T extends MasterSheet<? extends Shape, ? extends SlideShow>> DrawMasterSheet<T> getDrawable(T sheet) {
+ return new DrawMasterSheet<T>(sheet);
+ }
+
+ public <T extends TextBox<? extends TextParagraph<?>>> DrawTextBox<T> getDrawable(T shape) {
+ return new DrawTextBox<T>(shape);
+ }
+
+ public <T extends FreeformShape<? extends TextParagraph<? extends TextRun>>> DrawFreeformShape<T> getDrawable(T shape) {
+ return new DrawFreeformShape<T>(shape);
+ }
+
+ public <T extends ConnectorShape> DrawConnectorShape<T> getDrawable(T shape) {
+ return new DrawConnectorShape<T>(shape);
+ }
+
+ public <T extends TableShape> DrawTableShape<T> getDrawable(T shape) {
+ return new DrawTableShape<T>(shape);
+ }
+
+ public <T extends TextShape<? extends TextParagraph<? extends TextRun>>> DrawTextShape<T> getDrawable(T shape) {
+ return new DrawTextShape<T>(shape);
+ }
+
+ public <T extends GroupShape<? extends Shape>> DrawGroupShape<T> getDrawable(T shape) {
+ return new DrawGroupShape<T>(shape);
+ }
+
+ public <T extends PictureShape> DrawPictureShape<T> getDrawable(T shape) {
+ return new DrawPictureShape<T>(shape);
+ }
+
+ public <T extends TextRun> DrawTextParagraph<T> getDrawable(TextParagraph<T> paragraph) {
+ return new DrawTextParagraph<T>(paragraph);
+ }
+
+ public <T extends Background> DrawBackground<T> getDrawable(T shape) {
+ return new DrawBackground<T>(shape);
+ }
+
+ public DrawTextFragment getTextFragment(TextLayout layout, AttributedString str) {
+ return new DrawTextFragment(layout, str);
+ }
+
+ public DrawPaint getPaint(PlaceableShape shape) {
+ return new DrawPaint(shape);
+ }
+}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/IAdjustableShape.java b/src/java/org/apache/poi/sl/draw/DrawFontManager.java
similarity index 67%
copy from src/ooxml/java/org/apache/poi/xslf/model/geom/IAdjustableShape.java
copy to src/java/org/apache/poi/sl/draw/DrawFontManager.java
index 44f5a56..9c49489 100644
--- a/src/ooxml/java/org/apache/poi/xslf/model/geom/IAdjustableShape.java
+++ b/src/java/org/apache/poi/sl/draw/DrawFontManager.java
@@ -1,37 +1,38 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.xslf.model.geom;
-
-
-/**
- * A bridge to the consumer application.
- *
- * To get a shape geometry one needs to pass shape bounds and adjust values.
- *
- * @author Yegor Kozlov
- */
-public interface IAdjustableShape {
- /**
- *
- * @param name name of a adjust value, e.g. adj1
- * @return adjust guide defined in the shape or null
- */
- Guide getAdjustValue(String name);
-}
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.sl.draw;
+
+/**
+ * Manages fonts when rendering slides.
+ *
+ * Use this class to handle unknown / missing fonts or to substitute fonts
+ */
+public interface DrawFontManager {
+
+ /**
+ * select a font to be used to paint text
+ *
+ * @param typeface the font family as defined in the .pptx file.
+ * This can be unknown or missing in the graphic environment.
+ *
+ * @return the font to be used to paint text
+ */
+ String getRendererableFont(String typeface, int pitchFamily);
+}
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java b/src/java/org/apache/poi/sl/draw/DrawFreeformShape.java
similarity index 77%
rename from src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java
rename to src/java/org/apache/poi/sl/draw/DrawFreeformShape.java
index 71891f8..b8dd7c3 100644
--- a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java
+++ b/src/java/org/apache/poi/sl/draw/DrawFreeformShape.java
@@ -14,21 +14,13 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-package org.apache.poi.xslf.usermodel;
-/**
- * @author Yegor Kozlov
- */
-public enum LineDash {
- SOLID,
- DOT,
- DASH,
- LG_DASH,
- DASH_DOT,
- LG_DASH_DOT,
- LG_DASH_DOT_DOT,
- SYS_DASH,
- SYS_DOT,
- SYS_DASH_DOT,
- SYS_DASH_DOT_DOT;
+package org.apache.poi.sl.draw;
+
+import org.apache.poi.sl.usermodel.*;
+
+public class DrawFreeformShape<T extends FreeformShape<? extends TextParagraph<? extends TextRun>>> extends DrawAutoShape<T> {
+ public DrawFreeformShape(T shape) {
+ super(shape);
+ }
}
diff --git a/src/java/org/apache/poi/sl/draw/DrawGroupShape.java b/src/java/org/apache/poi/sl/draw/DrawGroupShape.java
new file mode 100644
index 0000000..60af5f7
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawGroupShape.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+
+import org.apache.poi.sl.usermodel.*;
+
+
+public class DrawGroupShape<T extends GroupShape<? extends Shape>> extends DrawShape<T> implements Drawable {
+
+ public DrawGroupShape(T shape) {
+ super(shape);
+ }
+
+ public void draw(Graphics2D graphics) {
+
+ // the coordinate system of this group of shape
+ Rectangle2D interior = shape.getInteriorAnchor();
+ // anchor of this group relative to the parent shape
+ Rectangle2D exterior = shape.getAnchor();
+
+ AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM);
+ AffineTransform tx0 = new AffineTransform(tx);
+
+ double scaleX = interior.getWidth() == 0. ? 1.0 : exterior.getWidth() / interior.getWidth();
+ double scaleY = interior.getHeight() == 0. ? 1.0 : exterior.getHeight() / interior.getHeight();
+
+ tx.translate(exterior.getX(), exterior.getY());
+ tx.scale(scaleX, scaleY);
+ tx.translate(-interior.getX(), -interior.getY());
+
+ DrawFactory drawFact = DrawFactory.getInstance(graphics);
+ AffineTransform at2 = graphics.getTransform();
+
+ for (Shape child : shape) {
+ // remember the initial transform and restore it after we are done with the drawing
+ AffineTransform at = graphics.getTransform();
+ graphics.setRenderingHint(Drawable.GSAVE, true);
+
+ Drawable draw = drawFact.getDrawable(child);
+ draw.applyTransform(graphics);
+ draw.draw(graphics);
+
+ // restore the coordinate system
+ graphics.setTransform(at);
+ graphics.setRenderingHint(Drawable.GRESTORE, true);
+ }
+
+ graphics.setTransform(at2);
+ graphics.setRenderingHint(Drawable.GROUP_TRANSFORM, tx0);
+ }
+}
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java b/src/java/org/apache/poi/sl/draw/DrawMasterSheet.java
similarity index 60%
rename from src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java
rename to src/java/org/apache/poi/sl/draw/DrawMasterSheet.java
index 55b4c84..6b5d078 100644
--- a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java
+++ b/src/java/org/apache/poi/sl/draw/DrawMasterSheet.java
@@ -14,25 +14,25 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-package org.apache.poi.xslf.usermodel;
-/**
- *
- *
- * @author Yegor Kozlov
- */
-public enum LineCap {
- /**
- * Rounded ends
- */
- ROUND,
- /**
- * Square protrudes by half line width
- */
- SQUARE,
+package org.apache.poi.sl.draw;
+
+import org.apache.poi.sl.usermodel.*;
+
+
+public class DrawMasterSheet<T extends MasterSheet<? extends Shape, ? extends SlideShow>> extends DrawSheet<T> {
+
+ public DrawMasterSheet(T sheet) {
+ super(sheet);
+ }
/**
- * Line ends at end point
+ * Checks if this <code>sheet</code> displays the specified shape.
+ *
+ * Subclasses can override it and skip certain shapes from drawings,
+ * for instance, slide masters and layouts don't display placeholders
*/
- FLAT;
-}
\ No newline at end of file
+ protected boolean canDraw(Shape shape){
+ return !(shape instanceof SimpleShape) || !((SimpleShape)shape).isPlaceholder();
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawPaint.java b/src/java/org/apache/poi/sl/draw/DrawPaint.java
new file mode 100644
index 0000000..16562b8
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawPaint.java
@@ -0,0 +1,444 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import static org.apache.poi.sl.usermodel.PaintStyle.TRANSPARENT_PAINT;
+
+import java.awt.*;
+import java.awt.MultipleGradientPaint.ColorSpaceType;
+import java.awt.MultipleGradientPaint.CycleMethod;
+import java.awt.geom.*;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.PaintStyle.GradientPaint;
+import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
+import org.apache.poi.sl.usermodel.PaintStyle.TexturePaint;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+
+/**
+ * This class handles color transformations
+ *
+ * @see HSL code taken from <a href="https://tips4java.wordpress.com/2009/07/05/hsl-color/">Java Tips Weblog</a>
+ */
+public class DrawPaint {
+ // HSL code is public domain - see https://tips4java.wordpress.com/contact-us/
+
+ private final static POILogger LOG = POILogFactory.getLogger(DrawPaint.class);
+
+ protected PlaceableShape shape;
+
+ public DrawPaint(PlaceableShape shape) {
+ this.shape = shape;
+ }
+
+ public static SolidPaint createSolidPaint(final Color color) {
+ return new SolidPaint() {
+ public ColorStyle getSolidColor() {
+ return new ColorStyle(){
+ public Color getColor() { return color; }
+ public int getAlpha() { return -1; }
+ public int getLumOff() { return -1; }
+ public int getLumMod() { return -1; }
+ public int getShade() { return -1; }
+ public int getTint() { return -1; }
+ };
+ }
+ };
+ }
+
+ public Paint getPaint(Graphics2D graphics, PaintStyle paint) {
+ if (paint instanceof SolidPaint) {
+ return getSolidPaint((SolidPaint)paint, graphics);
+ } else if (paint instanceof GradientPaint) {
+ return getGradientPaint((GradientPaint)paint, graphics);
+ } else if (paint instanceof TexturePaint) {
+ return getTexturePaint((TexturePaint)paint, graphics);
+ }
+ return null;
+ }
+
+ protected Paint getSolidPaint(SolidPaint fill, Graphics2D graphics) {
+ return applyColorTransform(fill.getSolidColor());
+ }
+
+ protected Paint getGradientPaint(GradientPaint fill, Graphics2D graphics) {
+ switch (fill.getGradientType()) {
+ case linear:
+ return createLinearGradientPaint(fill, graphics);
+ case circular:
+ return createRadialGradientPaint(fill, graphics);
+ case shape:
+ return createPathGradientPaint(fill, graphics);
+ default:
+ throw new UnsupportedOperationException("gradient fill of type "+fill+" not supported.");
+ }
+ }
+
+ protected Paint getTexturePaint(TexturePaint fill, Graphics2D graphics) {
+ InputStream is = fill.getImageData();
+ if (is == null) return TRANSPARENT_PAINT.getSolidColor().getColor();
+ assert(graphics != null);
+
+ ImageRenderer renderer = (ImageRenderer)graphics.getRenderingHint(Drawable.IMAGE_RENDERER);
+ if (renderer == null) renderer = new ImageRenderer();
+
+ try {
+ renderer.loadImage(fill.getImageData(), fill.getContentType());
+ } catch (IOException e) {
+ LOG.log(POILogger.ERROR, "Can't load image data - using transparent color", e);
+ return TRANSPARENT_PAINT.getSolidColor().getColor();
+ }
+
+ int alpha = fill.getAlpha();
+ if (alpha != -1) {
+ renderer.setAlpha(alpha/100000.f);
+ }
+
+ Dimension dim = renderer.getDimension();
+ Rectangle2D textAnchor = new Rectangle2D.Double(0, 0, dim.getWidth(), dim.getHeight());
+ Paint paint = new java.awt.TexturePaint(renderer.getImage(), textAnchor);
+
+ return paint;
+ }
+
+ /**
+ * Convert color transformations in {@link ColorStyle} to a {@link Color} instance
+ */
+ public static Color applyColorTransform(ColorStyle color){
+ Color result = color.getColor();
+
+ if (result == null || color.getAlpha() == 100) {
+ return TRANSPARENT_PAINT.getSolidColor().getColor();
+ }
+
+ result = applyAlpha(result, color);
+ result = applyLuminance(result, color);
+ result = applyShade(result, color);
+ result = applyTint(result, color);
+
+ return result;
+ }
+
+ protected static Color applyAlpha(Color c, ColorStyle fc) {
+ int alpha = c.getAlpha();
+ return (alpha == 255) ? c : new Color(c.getRed(), c.getGreen(), c.getBlue(), alpha);
+ }
+
+ /**
+ * Apply lumMod / lumOff adjustments
+ *
+ * @param c the color to modify
+ * @param lumMod luminance modulation in the range [0..100000]
+ * @param lumOff luminance offset in the range [0..100000]
+ * @return modified color
+ *
+ * @see <a href="https://msdn.microsoft.com/en-us/library/dd560821%28v=office.12%29.aspx">Using Office Open XML to Customize Document Formatting in the 2007 Office System</a>
+ */
+ protected static Color applyLuminance(Color c, ColorStyle fc) {
+ int lumMod = fc.getLumMod();
+ if (lumMod == -1) lumMod = 100000;
+
+ int lumOff = fc.getLumOff();
+ if (lumOff == -1) lumOff = 0;
+
+ if (lumMod == 100000 && lumOff == 0) return c;
+
+ // The lumMod value is the percent luminance. A lumMod value of "60000",
+ // is 60% of the luminance of the original color.
+ // When the color is a shade of the original theme color, the lumMod
+ // attribute is the only one of the tags shown here that appears.
+ // The <a:lumOff> tag appears after the <a:lumMod> tag when the color is a
+ // tint of the original. The lumOff value always equals 1-lumMod, which is used in the tint calculation
+ //
+ // Despite having different ways to display the tint and shade percentages,
+ // all of the programs use the same method to calculate the resulting color.
+ // Convert the original RGB value to HSL ... and then adjust the luminance (L)
+ // with one of the following equations before converting the HSL value back to RGB.
+ // (The % tint in the following equations refers to the tint, themetint, themeshade,
+ // or lumMod values, as applicable.)
+ //
+ // For a shade, the equation is luminance * %tint.
+ //
+ // For a tint, the equation is luminance * %tint + (1-%tint).
+ // (Note that 1-%tint is equal to the lumOff value in DrawingML.)
+
+ double fLumOff = lumOff / 100000d;
+ double fLumMod = lumMod / 100000d;
+
+ double hsl[] = RGB2HSL(c);
+ hsl[2] = hsl[2]*fLumMod+fLumOff;
+
+ Color c2 = HSL2RGB(hsl[0], hsl[1], hsl[2], c.getAlpha()/255d);
+ return c2;
+ }
+
+ /**
+ * This algorithm returns result different from PowerPoint.
+ * TODO: revisit and improve
+ */
+ protected static Color applyShade(Color c, ColorStyle fc) {
+ int shade = fc.getShade();
+ if (shade == -1) return c;
+
+ float fshade = shade / 100000.f;
+
+ float red = c.getRed() * fshade;
+ float green = c.getGreen() * fshade;
+ float blue = c.getGreen() * fshade;
+
+ return new Color(Math.round(red), Math.round(green), Math.round(blue), c.getAlpha());
+ }
+
+ /**
+ * This algorithm returns result different from PowerPoint.
+ * TODO: revisit and improve
+ */
+ protected static Color applyTint(Color c, ColorStyle fc) {
+ int tint = fc.getTint();
+ if (tint == -1) return c;
+
+ float ftint = tint / 100000.f;
+
+ float red = ftint * c.getRed() + (1.f - ftint) * 255.f;
+ float green = ftint * c.getGreen() + (1.f - ftint) * 255.f;
+ float blue = ftint * c.getBlue() + (1.f - ftint) * 255.f;
+
+ return new Color(Math.round(red), Math.round(green), Math.round(blue), c.getAlpha());
+ }
+
+
+ protected Paint createLinearGradientPaint(GradientPaint fill, Graphics2D graphics) {
+ double angle = fill.getGradientAngle();
+ Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);
+
+ AffineTransform at = AffineTransform.getRotateInstance(
+ Math.toRadians(angle),
+ anchor.getX() + anchor.getWidth() / 2,
+ anchor.getY() + anchor.getHeight() / 2);
+
+ double diagonal = Math.sqrt(anchor.getHeight() * anchor.getHeight() + anchor.getWidth() * anchor.getWidth());
+ Point2D p1 = new Point2D.Double(anchor.getX() + anchor.getWidth() / 2 - diagonal / 2,
+ anchor.getY() + anchor.getHeight() / 2);
+ p1 = at.transform(p1, null);
+
+ Point2D p2 = new Point2D.Double(anchor.getX() + anchor.getWidth(), anchor.getY() + anchor.getHeight() / 2);
+ p2 = at.transform(p2, null);
+
+ snapToAnchor(p1, anchor);
+ snapToAnchor(p2, anchor);
+
+ float[] fractions = fill.getGradientFractions();
+ Color[] colors = new Color[fractions.length];
+
+ int i = 0;
+ for (ColorStyle fc : fill.getGradientColors()) {
+ colors[i++] = applyColorTransform(fc);
+ }
+
+ AffineTransform grAt = new AffineTransform();
+ if(fill.isRotatedWithShape()) {
+ double rotation = shape.getRotation();
+ if (rotation != 0.) {
+ double centerX = anchor.getX() + anchor.getWidth() / 2;
+ double centerY = anchor.getY() + anchor.getHeight() / 2;
+
+ grAt.translate(centerX, centerY);
+ grAt.rotate(Math.toRadians(-rotation));
+ grAt.translate(-centerX, -centerY);
+ }
+ }
+
+ return new LinearGradientPaint
+ (p1, p2, fractions, colors, CycleMethod.NO_CYCLE, ColorSpaceType.SRGB, grAt);
+ }
+
+ protected Paint createRadialGradientPaint(GradientPaint fill, Graphics2D graphics) {
+ Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);
+
+ Point2D pCenter = new Point2D.Double(anchor.getX() + anchor.getWidth()/2,
+ anchor.getY() + anchor.getHeight()/2);
+
+ float radius = (float)Math.max(anchor.getWidth(), anchor.getHeight());
+
+ float[] fractions = fill.getGradientFractions();
+ Color[] colors = new Color[fractions.length];
+
+ int i=0;
+ for (ColorStyle fc : fill.getGradientColors()) {
+ colors[i++] = applyColorTransform(fc);
+ }
+
+ return new RadialGradientPaint(pCenter, radius, fractions, colors);
+ }
+
+ protected Paint createPathGradientPaint(GradientPaint fill, Graphics2D graphics) {
+ // currently we ignore an eventually center setting
+
+ float[] fractions = fill.getGradientFractions();
+ Color[] colors = new Color[fractions.length];
+
+ int i=0;
+ for (ColorStyle fc : fill.getGradientColors()) {
+ colors[i++] = applyColorTransform(fc);
+ }
+
+ return new PathGradientPaint(colors, fractions);
+ }
+
+ protected void snapToAnchor(Point2D p, Rectangle2D anchor) {
+ if (p.getX() < anchor.getX()) {
+ p.setLocation(anchor.getX(), p.getY());
+ } else if (p.getX() > (anchor.getX() + anchor.getWidth())) {
+ p.setLocation(anchor.getX() + anchor.getWidth(), p.getY());
+ }
+
+ if (p.getY() < anchor.getY()) {
+ p.setLocation(p.getX(), anchor.getY());
+ } else if (p.getY() > (anchor.getY() + anchor.getHeight())) {
+ p.setLocation(p.getX(), anchor.getY() + anchor.getHeight());
+ }
+ }
+
+ /**
+ * Convert HSL values to a RGB Color.
+ *
+ * @param h Hue is specified as degrees in the range 0 - 360.
+ * @param s Saturation is specified as a percentage in the range 1 - 100.
+ * @param l Luminance is specified as a percentage in the range 1 - 100.
+ * @param alpha the alpha value between 0 - 1
+ *
+ * @returns the RGB Color object
+ */
+ private static Color HSL2RGB(double h, double s, double l, double alpha) {
+ if (s <0.0f || s > 100.0f) {
+ String message = "Color parameter outside of expected range - Saturation";
+ throw new IllegalArgumentException( message );
+ }
+
+ if (l <0.0f || l > 100.0f) {
+ String message = "Color parameter outside of expected range - Luminance";
+ throw new IllegalArgumentException( message );
+ }
+
+ if (alpha <0.0f || alpha > 1.0f) {
+ String message = "Color parameter outside of expected range - Alpha";
+ throw new IllegalArgumentException( message );
+ }
+
+ // Formula needs all values between 0 - 1.
+
+ h = h % 360.0f;
+ h /= 360f;
+ s /= 100f;
+ l /= 100f;
+
+ double q = (l < 0.5d)
+ ? l * (1d + s)
+ : (l + s) - (s * l);
+
+ double p = 2d * l - q;
+
+ double r = Math.max(0, HUE2RGB(p, q, h + (1.0d / 3.0d)));
+ double g = Math.max(0, HUE2RGB(p, q, h));
+ double b = Math.max(0, HUE2RGB(p, q, h - (1.0d / 3.0d)));
+
+ r = Math.min(r, 1.0d);
+ g = Math.min(g, 1.0d);
+ b = Math.min(b, 1.0d);
+
+ return new Color((float)r, (float)g, (float)b, (float)alpha);
+ }
+
+ private static double HUE2RGB(double p, double q, double h) {
+ if (h < 0d) h += 1d;
+
+ if (h > 1d) h -= 1d;
+
+ if (6d * h < 1d) {
+ return p + ((q - p) * 6d * h);
+ }
+
+ if (2d * h < 1d) {
+ return q;
+ }
+
+ if (3d * h < 2d) {
+ return p + ( (q - p) * 6d * ((2.0d / 3.0d) - h) );
+ }
+
+ return p;
+ }
+
+
+ /**
+ * Convert a RGB Color to it corresponding HSL values.
+ *
+ * @return an array containing the 3 HSL values.
+ */
+ private static double[] RGB2HSL(Color color)
+ {
+ // Get RGB values in the range 0 - 1
+
+ float[] rgb = color.getRGBColorComponents( null );
+ double r = rgb[0];
+ double g = rgb[1];
+ double b = rgb[2];
+
+ // Minimum and Maximum RGB values are used in the HSL calculations
+
+ double min = Math.min(r, Math.min(g, b));
+ double max = Math.max(r, Math.max(g, b));
+
+ // Calculate the Hue
+
+ double h = 0;
+
+ if (max == min) {
+ h = 0;
+ } else if (max == r) {
+ h = ((60d * (g - b) / (max - min)) + 360d) % 360d;
+ } else if (max == g) {
+ h = (60d * (b - r) / (max - min)) + 120d;
+ } else if (max == b) {
+ h = (60d * (r - g) / (max - min)) + 240d;
+ }
+
+ // Calculate the Luminance
+
+ double l = (max + min) / 2d;
+
+ // Calculate the Saturation
+
+ double s = 0;
+
+ if (max == min) {
+ s = 0;
+ } else if (l <= .5d) {
+ s = (max - min) / (max + min);
+ } else {
+ s = (max - min) / (2d - max - min);
+ }
+
+ return new double[] {h, s * 100, l * 100};
+ }
+
+}
\ No newline at end of file
diff --git a/src/java/org/apache/poi/sl/draw/DrawPictureShape.java b/src/java/org/apache/poi/sl/draw/DrawPictureShape.java
new file mode 100644
index 0000000..3d00b4e
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawPictureShape.java
@@ -0,0 +1,54 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Graphics2D;
+import java.awt.Insets;
+import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+
+import org.apache.poi.sl.usermodel.PictureData;
+import org.apache.poi.sl.usermodel.PictureShape;
+
+
+public class DrawPictureShape<T extends PictureShape> extends DrawSimpleShape<T> {
+ public DrawPictureShape(T shape) {
+ super(shape);
+ }
+
+ @Override
+ public void drawContent(Graphics2D graphics) {
+ PictureData data = shape.getPictureData();
+ if(data == null) return;
+
+ ImageRenderer renderer = (ImageRenderer)graphics.getRenderingHint(Drawable.IMAGE_RENDERER);
+ if (renderer == null) renderer = new ImageRenderer();
+
+ Rectangle2D anchor = getAnchor(graphics, shape);
+
+ Insets insets = shape.getClipping();
+
+ try {
+ renderer.loadImage(data.getData(), data.getContentType());
+ renderer.drawImage(graphics, anchor, insets);
+ } catch (IOException e) {
+ // TODO: draw specific runtime exception?
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawShape.java b/src/java/org/apache/poi/sl/draw/DrawShape.java
new file mode 100644
index 0000000..13ef429
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawShape.java
@@ -0,0 +1,143 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+
+import org.apache.poi.sl.usermodel.PlaceableShape;
+import org.apache.poi.sl.usermodel.Shape;
+
+
+public class DrawShape<T extends Shape> implements Drawable {
+
+ protected final T shape;
+
+ public DrawShape(T shape) {
+ this.shape = shape;
+ }
+
+ /**
+ * Apply 2-D transforms before drawing this shape. This includes rotation and flipping.
+ *
+ * @param graphics the graphics whos transform matrix will be modified
+ */
+ public void applyTransform(Graphics2D graphics) {
+ if (!(shape instanceof PlaceableShape)) return;
+
+ PlaceableShape ps = (PlaceableShape)shape;
+ AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM);
+ if (tx == null) tx = new AffineTransform();
+ final Rectangle2D anchor = tx.createTransformedShape(ps.getAnchor()).getBounds2D();
+
+ // rotation
+ double rotation = ps.getRotation();
+ if (rotation != 0.) {
+ // PowerPoint rotates shapes relative to the geometric center
+ double centerX = anchor.getCenterX();
+ double centerY = anchor.getCenterY();
+
+ // normalize rotation
+ rotation %= 360.;
+ if (rotation < 0) rotation += 360.;
+
+ int quadrant = (((int)rotation+45)/90)%4;
+ double scaleX = 1.0, scaleY = 1.0;
+
+ // scale to bounding box (bug #53176)
+ if (quadrant == 1 || quadrant == 3) {
+ // In quadrant 1 and 3, which is basically a shape in a more or less portrait orientation
+ // (45-135 degrees and 225-315 degrees), we need to first rotate the shape by a multiple
+ // of 90 degrees and then resize the bounding box to its original bbox. After that we can
+ // rotate the shape to the exact rotation amount.
+ // It's strange that you'll need to rotate the shape back and forth again, but you can
+ // think of it, as if you paint the shape on a canvas. First you rotate the canvas, which might
+ // be already (differently) scaled, so you can paint the shape in its default orientation
+ // and later on, turn it around again to compare it with its original size ...
+
+ AffineTransform txs;
+ if (ps.getClass().getCanonicalName().toLowerCase().contains("hslf")) {
+ txs = new AffineTransform(tx);
+ } else {
+ // this handling is only based on try and error ... not sure why xslf is handled differently.
+ txs = new AffineTransform();
+ txs.translate(centerX, centerY);
+ txs.rotate(Math.PI/2.); // actually doesn't matter if +/- 90 degrees
+ txs.translate(-centerX, -centerY);
+ txs.concatenate(tx);
+ }
+
+ txs.translate(centerX, centerY);
+ txs.rotate(Math.PI/2.);
+ txs.translate(-centerX, -centerY);
+
+ Rectangle2D anchor2 = txs.createTransformedShape(ps.getAnchor()).getBounds2D();
+
+ scaleX = anchor.getWidth() == 0. ? 1.0 : anchor.getWidth() / anchor2.getWidth();
+ scaleY = anchor.getHeight() == 0. ? 1.0 : anchor.getHeight() / anchor2.getHeight();
+ } else {
+ quadrant = 0;
+ }
+
+ // transformation is applied reversed ...
+ graphics.translate(centerX, centerY);
+ graphics.rotate(Math.toRadians(rotation-quadrant*90.));
+ graphics.scale(scaleX, scaleY);
+ graphics.rotate(Math.toRadians(quadrant*90));
+ graphics.translate(-centerX, -centerY);
+ }
+
+ //flip horizontal
+ if (ps.getFlipHorizontal()) {
+ graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());
+ graphics.scale(-1, 1);
+ graphics.translate(-anchor.getX(), -anchor.getY());
+ }
+
+ //flip vertical
+ if (ps.getFlipVertical()) {
+ graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());
+ graphics.scale(1, -1);
+ graphics.translate(-anchor.getX(), -anchor.getY());
+ }
+ }
+
+
+ public void draw(Graphics2D graphics) {
+ }
+
+ public void drawContent(Graphics2D context) {
+ }
+
+ public static Rectangle2D getAnchor(Graphics2D graphics, PlaceableShape shape) {
+ return getAnchor(graphics, shape.getAnchor());
+ }
+
+ public static Rectangle2D getAnchor(Graphics2D graphics, Rectangle2D anchor) {
+ if(graphics == null) {
+ return anchor;
+ }
+
+ AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM);
+ if(tx != null) {
+ anchor = tx.createTransformedShape(anchor).getBounds2D();
+ }
+ return anchor;
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawSheet.java b/src/java/org/apache/poi/sl/draw/DrawSheet.java
new file mode 100644
index 0000000..e4c7e18
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawSheet.java
@@ -0,0 +1,91 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Dimension;
+import java.awt.Color;
+import java.awt.Graphics2D;
+
+import java.awt.geom.AffineTransform;
+
+import org.apache.poi.sl.usermodel.*;
+
+
+public class DrawSheet<T extends Sheet<? extends Shape, ? extends SlideShow>> implements Drawable {
+
+ protected final T sheet;
+
+ public DrawSheet(T sheet) {
+ this.sheet = sheet;
+ }
+
+ public void draw(Graphics2D graphics) {
+ Dimension dim = sheet.getSlideShow().getPageSize();
+ Color whiteTrans = new Color(1f,1f,1f,0f);
+ graphics.setColor(whiteTrans);
+ graphics.fillRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());
+
+ DrawFactory drawFact = DrawFactory.getInstance(graphics);
+ MasterSheet<? extends Shape, ? extends SlideShow> master = sheet.getMasterSheet();
+
+ if(sheet.getFollowMasterGraphics() && master != null) {
+ Drawable drawer = drawFact.getDrawable(master);
+ drawer.draw(graphics);
+ }
+
+ graphics.setRenderingHint(Drawable.GROUP_TRANSFORM, new AffineTransform());
+
+ for (Shape shape : sheet.getShapes()) {
+ if(!canDraw(shape)) continue;
+
+ // remember the initial transform and restore it after we are done with drawing
+ AffineTransform at = graphics.getTransform();
+
+ // concrete implementations can make sense of this hint,
+ // for example PSGraphics2D or PDFGraphics2D would call gsave() / grestore
+ graphics.setRenderingHint(Drawable.GSAVE, true);
+
+ // apply rotation and flipping
+ Drawable drawer = drawFact.getDrawable(shape);
+ drawer.applyTransform(graphics);
+ // draw stuff
+ drawer.draw(graphics);
+
+ // restore the coordinate system
+ graphics.setTransform(at);
+
+ graphics.setRenderingHint(Drawable.GRESTORE, true);
+ }
+ }
+
+ public void applyTransform(Graphics2D context) {
+ }
+
+ public void drawContent(Graphics2D context) {
+ }
+
+ /**
+ * Checks if this <code>sheet</code> displays the specified shape.
+ *
+ * Subclasses can override it and skip certain shapes from drawings,
+ * for instance, slide masters and layouts don't display placeholders
+ */
+ protected boolean canDraw(Shape shape){
+ return true;
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java b/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java
new file mode 100644
index 0000000..e674166
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawSimpleShape.java
@@ -0,0 +1,420 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.*;
+import java.awt.geom.*;
+import java.io.*;
+import java.nio.charset.Charset;
+import java.util.*;
+import java.util.List;
+
+import javax.xml.bind.*;
+import javax.xml.stream.*;
+import javax.xml.stream.EventFilter;
+import javax.xml.stream.events.StartElement;
+import javax.xml.stream.events.XMLEvent;
+
+import org.apache.poi.sl.draw.binding.CTCustomGeometry2D;
+import org.apache.poi.sl.draw.geom.*;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.LineDecoration.DecorationSize;
+import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
+import org.apache.poi.sl.usermodel.StrokeStyle.*;
+import org.apache.poi.util.Units;
+
+
+public class DrawSimpleShape<T extends SimpleShape> extends DrawShape<T> {
+
+ public DrawSimpleShape(T shape) {
+ super(shape);
+ }
+
+ @Override
+ public void draw(Graphics2D graphics) {
+// RenderableShape rShape = new RenderableShape(this);
+// rShape.render(graphics);
+
+ DrawPaint drawPaint = DrawFactory.getInstance(graphics).getPaint(shape);
+ Paint fill = drawPaint.getPaint(graphics, shape.getFillStyle().getPaint());
+ Paint line = drawPaint.getPaint(graphics, shape.getStrokeStyle().getPaint());
+ BasicStroke stroke = getStroke(); // the stroke applies both to the shadow and the shape
+ graphics.setStroke(stroke);
+
+ Collection<Outline> elems = computeOutlines(graphics);
+
+ // first paint the shadow
+ drawShadow(graphics, elems, fill, line);
+
+ // then fill the shape interior
+ if (fill != null) {
+ graphics.setPaint(fill);
+ for (Outline o : elems) {
+ if (o.getPath().isFilled()){
+ java.awt.Shape s = o.getOutline();
+ graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);
+ graphics.fill(s);
+ }
+ }
+ }
+
+ // then draw any content within this shape (text, image, etc.)
+ drawContent(graphics);
+
+ // then stroke the shape outline
+ if(line != null) {
+ graphics.setPaint(line);
+ for(Outline o : elems){
+ if(o.getPath().isStroked()){
+ java.awt.Shape s = o.getOutline();
+ graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);
+ graphics.draw(s);
+ }
+ }
+ }
+
+ // draw line decorations
+ drawDecoration(graphics, line, stroke);
+ }
+
+ protected void drawDecoration(Graphics2D graphics, Paint line, BasicStroke stroke) {
+ if(line == null) return;
+ graphics.setPaint(line);
+
+ List<Outline> lst = new ArrayList<Outline>();
+ LineDecoration deco = shape.getLineDecoration();
+ Outline head = getHeadDecoration(graphics, deco, stroke);
+ if (head != null) lst.add(head);
+ Outline tail = getTailDecoration(graphics, deco, stroke);
+ if (tail != null) lst.add(tail);
+
+
+ for(Outline o : lst){
+ java.awt.Shape s = o.getOutline();
+ Path p = o.getPath();
+ graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);
+
+ if(p.isFilled()) graphics.fill(s);
+ if(p.isStroked()) graphics.draw(s);
+ }
+ }
+
+ protected Outline getTailDecoration(Graphics2D graphics, LineDecoration deco, BasicStroke stroke) {
+ DecorationSize tailLength = deco.getTailLength();
+ DecorationSize tailWidth = deco.getTailWidth();
+
+ double lineWidth = Math.max(2.5, stroke.getLineWidth());
+
+ Rectangle2D anchor = getAnchor(graphics, shape);
+ double x2 = anchor.getX() + anchor.getWidth(),
+ y2 = anchor.getY() + anchor.getHeight();
+
+ double alpha = Math.atan(anchor.getHeight() / anchor.getWidth());
+
+ AffineTransform at = new AffineTransform();
+ java.awt.Shape shape = null;
+ Path p = null;
+ Rectangle2D bounds;
+ double scaleY = Math.pow(2, tailWidth.ordinal());
+ double scaleX = Math.pow(2, tailLength.ordinal());
+ switch (deco.getTailShape()) {
+ case OVAL:
+ p = new Path();
+ shape = new Ellipse2D.Double(0, 0, lineWidth * scaleX, lineWidth * scaleY);
+ bounds = shape.getBounds2D();
+ 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 ARROW:
+ p = new Path();
+ GeneralPath arrow = new GeneralPath();
+ arrow.moveTo((float) (-lineWidth * 3), (float) (-lineWidth * 2));
+ arrow.lineTo(0, 0);
+ arrow.lineTo((float) (-lineWidth * 3), (float) (lineWidth * 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);
+ triangle.lineTo((float) (-lineWidth * scaleX), (float) (lineWidth * scaleY / 2));
+ triangle.closePath();
+ shape = triangle;
+ at.translate(x2, y2);
+ at.rotate(alpha);
+ break;
+ default:
+ break;
+ }
+
+ if (shape != null) {
+ shape = at.createTransformedShape(shape);
+ }
+ return shape == null ? null : new Outline(shape, p);
+ }
+
+ Outline getHeadDecoration(Graphics2D graphics, LineDecoration deco, BasicStroke stroke) {
+ DecorationSize headLength = deco.getHeadLength();
+ DecorationSize headWidth = deco.getHeadWidth();
+
+ double lineWidth = Math.max(2.5, stroke.getLineWidth());
+
+ Rectangle2D anchor = getAnchor(graphics, shape);
+ double x1 = anchor.getX(),
+ y1 = anchor.getY();
+
+ double alpha = Math.atan(anchor.getHeight() / anchor.getWidth());
+
+ AffineTransform at = new AffineTransform();
+ java.awt.Shape shape = null;
+ Path p = null;
+ Rectangle2D bounds;
+ double scaleY = 1;
+ double scaleX = 1;
+ switch (deco.getHeadShape()) {
+ case OVAL:
+ p = new Path();
+ shape = new Ellipse2D.Double(0, 0, lineWidth * scaleX, lineWidth * scaleY);
+ bounds = shape.getBounds2D();
+ at.translate(x1 - bounds.getWidth() / 2, y1 - bounds.getHeight() / 2);
+ at.rotate(alpha, bounds.getX() + bounds.getWidth() / 2, bounds.getY() + bounds.getHeight() / 2);
+ break;
+ case STEALTH:
+ case ARROW:
+ p = new Path(false, true);
+ GeneralPath arrow = new GeneralPath();
+ arrow.moveTo((float) (lineWidth * 3 * scaleX), (float) (-lineWidth * scaleY * 2));
+ arrow.lineTo(0, 0);
+ arrow.lineTo((float) (lineWidth * 3 * 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);
+ triangle.lineTo((float) (lineWidth * scaleX), (float) (lineWidth * scaleY / 2));
+ triangle.closePath();
+ shape = triangle;
+ at.translate(x1, y1);
+ at.rotate(alpha);
+ break;
+ default:
+ break;
+ }
+
+ if (shape != null) {
+ shape = at.createTransformedShape(shape);
+ }
+ return shape == null ? null : new Outline(shape, p);
+ }
+
+ public BasicStroke getStroke() {
+ StrokeStyle strokeStyle = shape.getStrokeStyle();
+
+ float lineWidth = (float) strokeStyle.getLineWidth();
+ if (lineWidth == 0.0f) lineWidth = 0.25f; // Both PowerPoint and OOo draw zero-length lines as 0.25pt
+
+ LineDash lineDash = strokeStyle.getLineDash();
+ if (lineDash == null) {
+ lineDash = LineDash.SOLID;
+ }
+
+ int dashPatI[] = lineDash.pattern;
+ final float dash_phase = 0;
+ float[] dashPatF = null;
+ if (dashPatI != null) {
+ dashPatF = new float[dashPatI.length];
+ for (int i=0; i<dashPatI.length; i++) {
+ dashPatF[i] = dashPatI[i]*Math.max(1, lineWidth);
+ }
+ }
+
+ LineCap lineCapE = strokeStyle.getLineCap();
+ if (lineCapE == null) lineCapE = LineCap.FLAT;
+ int lineCap;
+ switch (lineCapE) {
+ case ROUND:
+ lineCap = BasicStroke.CAP_ROUND;
+ break;
+ case SQUARE:
+ lineCap = BasicStroke.CAP_SQUARE;
+ break;
+ default:
+ case FLAT:
+ lineCap = BasicStroke.CAP_BUTT;
+ break;
+ }
+
+ int lineJoin = BasicStroke.JOIN_ROUND;
+
+ return new BasicStroke(lineWidth, lineCap, lineJoin, lineWidth, dashPatF, dash_phase);
+ }
+
+ protected void drawShadow(
+ Graphics2D graphics
+ , Collection<Outline> outlines
+ , Paint fill
+ , Paint line
+ ) {
+ Shadow shadow = shape.getShadow();
+ if (shadow == null || (fill == null && line == null)) return;
+
+ SolidPaint shadowPaint = shadow.getFillStyle();
+ Color shadowColor = DrawPaint.applyColorTransform(shadowPaint.getSolidColor());
+
+ double shapeRotation = shape.getRotation();
+ if(shape.getFlipVertical()) {
+ shapeRotation += 180;
+ }
+ double angle = shadow.getAngle() - shapeRotation;
+ double dist = shadow.getDistance();
+ double dx = dist * Math.cos(Math.toRadians(angle));
+ double dy = dist * Math.sin(Math.toRadians(angle));
+
+ graphics.translate(dx, dy);
+
+ for(Outline o : outlines){
+ java.awt.Shape s = o.getOutline();
+ Path p = o.getPath();
+ graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);
+ graphics.setPaint(shadowColor);
+
+ if(fill != null && p.isFilled()){
+ graphics.fill(s);
+ } else if (line != null && p.isStroked()) {
+ graphics.draw(s);
+ }
+ }
+
+ graphics.translate(-dx, -dy);
+ }
+
+ protected static CustomGeometry getCustomGeometry(String name) {
+ return getCustomGeometry(name, null);
+ }
+
+ protected static CustomGeometry getCustomGeometry(String name, Graphics2D graphics) {
+ @SuppressWarnings("unchecked")
+ Map<String, CustomGeometry> presets = (graphics == null)
+ ? null
+ : (Map<String, CustomGeometry>)graphics.getRenderingHint(Drawable.PRESET_GEOMETRY_CACHE);
+
+ if (presets == null) {
+ presets = new HashMap<String,CustomGeometry>();
+ if (graphics != null) {
+ graphics.setRenderingHint(Drawable.PRESET_GEOMETRY_CACHE, presets);
+ }
+
+ String packageName = "org.apache.poi.sl.draw.binding";
+ InputStream presetIS = Drawable.class.getResourceAsStream("presetShapeDefinitions.xml");
+ Reader xml = new InputStreamReader( presetIS, Charset.forName("UTF-8") );
+
+ // StAX:
+ EventFilter startElementFilter = new EventFilter() {
+ @Override
+ public boolean accept(XMLEvent event) {
+ return event.isStartElement();
+ }
+ };
+
+ try {
+ XMLInputFactory staxFactory = XMLInputFactory.newInstance();
+ XMLEventReader staxReader = staxFactory.createXMLEventReader(xml);
+ XMLEventReader staxFiltRd = staxFactory.createFilteredReader(staxReader, startElementFilter);
+ // Ignore StartElement:
+ staxFiltRd.nextEvent();
+ // JAXB:
+ JAXBContext jaxbContext = JAXBContext.newInstance(packageName);
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+ while (staxFiltRd.peek() != null) {
+ StartElement evRoot = (StartElement)staxFiltRd.peek();
+ String cusName = evRoot.getName().getLocalPart();
+ // XMLEvent ev = staxReader.nextEvent();
+ JAXBElement<org.apache.poi.sl.draw.binding.CTCustomGeometry2D> el = unmarshaller.unmarshal(staxReader, CTCustomGeometry2D.class);
+ CTCustomGeometry2D cusGeom = el.getValue();
+
+ presets.put(cusName, new CustomGeometry(cusGeom));
+ }
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to load preset geometries.", e);
+ }
+ }
+
+ return presets.get(name);
+ }
+
+ protected Collection<Outline> computeOutlines(Graphics2D graphics) {
+
+ List<Outline> lst = new ArrayList<Outline>();
+ CustomGeometry geom = shape.getGeometry();
+ if(geom == null) {
+ return lst;
+ }
+
+ Rectangle2D anchor = getAnchor(graphics, shape);
+ for (Path p : geom) {
+
+ double w = p.getW() == -1 ? anchor.getWidth() * Units.EMU_PER_POINT : p.getW();
+ double h = p.getH() == -1 ? anchor.getHeight() * Units.EMU_PER_POINT : p.getH();
+
+ // the guides in the shape definitions are all defined relative to each other,
+ // so we build the path starting from (0,0).
+ final Rectangle2D pathAnchor = new Rectangle2D.Double(0,0,w,h);
+
+ Context ctx = new Context(geom, pathAnchor, shape);
+
+ java.awt.Shape gp = p.getPath(ctx);
+
+ // translate the result to the canvas coordinates in points
+ AffineTransform at = new AffineTransform();
+ at.translate(anchor.getX(), anchor.getY());
+
+ double scaleX, scaleY;
+ if (p.getW() != -1) {
+ scaleX = anchor.getWidth() / p.getW();
+ } else {
+ scaleX = 1.0 / Units.EMU_PER_POINT;
+ }
+ if (p.getH() != -1) {
+ scaleY = anchor.getHeight() / p.getH();
+ } else {
+ scaleY = 1.0 / Units.EMU_PER_POINT;
+ }
+
+ at.scale(scaleX, scaleY);
+
+ java.awt.Shape canvasShape = at.createTransformedShape(gp);
+
+ lst.add(new Outline(canvasShape, p));
+ }
+
+ return lst;
+ }
+
+}
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java b/src/java/org/apache/poi/sl/draw/DrawSlide.java
similarity index 60%
copy from src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java
copy to src/java/org/apache/poi/sl/draw/DrawSlide.java
index 71891f8..cfa3167 100644
--- a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java
+++ b/src/java/org/apache/poi/sl/draw/DrawSlide.java
@@ -14,21 +14,28 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-package org.apache.poi.xslf.usermodel;
-/**
- * @author Yegor Kozlov
- */
-public enum LineDash {
- SOLID,
- DOT,
- DASH,
- LG_DASH,
- DASH_DOT,
- LG_DASH_DOT,
- LG_DASH_DOT_DOT,
- SYS_DASH,
- SYS_DOT,
- SYS_DASH_DOT,
- SYS_DASH_DOT_DOT;
+package org.apache.poi.sl.draw;
+
+import java.awt.Graphics2D;
+
+import org.apache.poi.sl.usermodel.*;
+
+
+public class DrawSlide<T extends Slide<? extends Shape, ? extends SlideShow, ? extends Notes<?,?>>> extends DrawSheet<T> {
+
+ public DrawSlide(T slide) {
+ super(slide);
+ }
+
+ public void draw(Graphics2D graphics) {
+ Background bg = sheet.getBackground();
+ if(bg != null) {
+ DrawFactory drawFact = DrawFactory.getInstance(graphics);
+ Drawable db = drawFact.getDrawable(bg);
+ db.draw(graphics);
+ }
+
+ super.draw(graphics);
+ }
}
diff --git a/src/java/org/apache/poi/common/usermodel/LineStyle.java b/src/java/org/apache/poi/sl/draw/DrawTableShape.java
similarity index 79%
copy from src/java/org/apache/poi/common/usermodel/LineStyle.java
copy to src/java/org/apache/poi/sl/draw/DrawTableShape.java
index db676f5..ceb6450 100644
--- a/src/java/org/apache/poi/common/usermodel/LineStyle.java
+++ b/src/java/org/apache/poi/sl/draw/DrawTableShape.java
@@ -1,21 +1,27 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.common.usermodel;
-
-public interface LineStyle {
-
-}
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import org.apache.poi.sl.usermodel.*;
+
+public class DrawTableShape<T extends TableShape> extends DrawShape<T> {
+ // to be implemented ...
+ public DrawTableShape(T shape) {
+ super(shape);
+ }
+}
diff --git a/src/java/org/apache/poi/common/usermodel/LineStyle.java b/src/java/org/apache/poi/sl/draw/DrawTextBox.java
similarity index 78%
copy from src/java/org/apache/poi/common/usermodel/LineStyle.java
copy to src/java/org/apache/poi/sl/draw/DrawTextBox.java
index db676f5..89d6922 100644
--- a/src/java/org/apache/poi/common/usermodel/LineStyle.java
+++ b/src/java/org/apache/poi/sl/draw/DrawTextBox.java
@@ -1,21 +1,26 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.common.usermodel;
-
-public interface LineStyle {
-
-}
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import org.apache.poi.sl.usermodel.*;
+
+public class DrawTextBox<T extends TextBox<? extends TextParagraph<? extends TextRun>>> extends DrawAutoShape<T> {
+ public DrawTextBox(T shape) {
+ super(shape);
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawTextFragment.java b/src/java/org/apache/poi/sl/draw/DrawTextFragment.java
new file mode 100644
index 0000000..acb6b4c
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawTextFragment.java
@@ -0,0 +1,105 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Graphics2D;
+import java.awt.font.TextLayout;
+import java.text.*;
+
+public class DrawTextFragment implements Drawable {
+ final TextLayout layout;
+ final AttributedString str;
+ double x, y;
+
+ public DrawTextFragment(TextLayout layout, AttributedString str) {
+ this.layout = layout;
+ this.str = str;
+ }
+
+ public void setPosition(double x, double y) {
+ // TODO: replace it, by applyTransform????
+ this.x = x;
+ this.y = y;
+ }
+
+ public void draw(Graphics2D graphics){
+ if(str == null) {
+ return;
+ }
+
+ double yBaseline = y + layout.getAscent();
+
+ Integer textMode = (Integer)graphics.getRenderingHint(Drawable.TEXT_RENDERING_MODE);
+ if(textMode != null && textMode == Drawable.TEXT_AS_SHAPES){
+ layout.draw(graphics, (float)x, (float)yBaseline);
+ } else {
+ graphics.drawString(str.getIterator(), (float)x, (float)yBaseline );
+ }
+ }
+
+ public void applyTransform(Graphics2D graphics) {
+ }
+
+ public void drawContent(Graphics2D graphics) {
+ }
+
+ public TextLayout getLayout() {
+ return layout;
+ }
+
+ public AttributedString getAttributedString() {
+ return str;
+ }
+
+ /**
+ * @return full height of this text run which is sum of ascent, descent and leading
+ */
+ public float getHeight(){
+ double h = Math.ceil(layout.getAscent()) + Math.ceil(layout.getDescent()) + layout.getLeading();
+ return (float)h;
+ }
+
+ /**
+ *
+ * @return width if this text run
+ */
+ public float getWidth(){
+ return layout.getAdvance();
+ }
+
+ /**
+ *
+ * @return the string to be painted
+ */
+ public String getString(){
+ if (str == null) return "";
+
+ AttributedCharacterIterator it = str.getIterator();
+ StringBuilder buf = new StringBuilder();
+ for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) {
+ buf.append(c);
+ }
+ return buf.toString();
+ }
+
+ @Override
+ public String toString(){
+ return "[" + getClass().getSimpleName() + "] " + getString();
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java b/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java
new file mode 100644
index 0000000..e2db501
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java
@@ -0,0 +1,462 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.font.*;
+import java.awt.geom.Rectangle2D;
+import java.text.*;
+import java.text.AttributedCharacterIterator.Attribute;
+import java.util.*;
+
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.TextParagraph.BulletStyle;
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;
+import org.apache.poi.sl.usermodel.TextRun.TextCap;
+import org.apache.poi.util.Units;
+
+public class DrawTextParagraph<T extends TextRun> implements Drawable {
+ protected TextParagraph<T> paragraph;
+ double x, y;
+ protected List<DrawTextFragment> lines = new ArrayList<DrawTextFragment>();
+ protected String rawText;
+ protected DrawTextFragment bullet;
+ protected int autoNbrIdx = 0;
+
+ /**
+ * the highest line in this paragraph. Used for line spacing.
+ */
+ protected double maxLineHeight;
+
+ public DrawTextParagraph(TextParagraph<T> paragraph) {
+ this.paragraph = paragraph;
+ }
+
+ public void setPosition(double x, double y) {
+ // TODO: replace it, by applyTransform????
+ this.x = x;
+ this.y = y;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ /**
+ * Sets the auto numbering index of the handled paragraph
+ * @param index the auto numbering index
+ */
+ public void setAutoNumberingIdx(int index) {
+ autoNbrIdx = index;
+ }
+
+ public void draw(Graphics2D graphics){
+ if (lines.isEmpty()) return;
+
+ Insets2D insets = paragraph.getParentShape().getInsets();
+ double leftInset = insets.left;
+ double rightInset = insets.right;
+ double penY = y;
+
+ boolean firstLine = true;
+ int indentLevel = paragraph.getIndentLevel();
+ Double leftMargin = paragraph.getLeftMargin();
+ if (leftMargin == null) {
+ // if the marL attribute is omitted, then a value of 347663 is implied
+ leftMargin = Units.toPoints(347663*(indentLevel+1));
+ }
+ Double indent = paragraph.getIndent();
+ if (indent == null) {
+ indent = Units.toPoints(347663*indentLevel);
+ }
+ Double rightMargin = paragraph.getRightMargin();
+ if (rightMargin == null) {
+ rightMargin = 0d;
+ }
+
+ //The vertical line spacing
+ Double spacing = paragraph.getLineSpacing();
+ if (spacing == null) spacing = 100d;
+
+ for(DrawTextFragment line : lines){
+ double penX;
+
+ if(firstLine) {
+ if (!isEmptyParagraph()) {
+ // TODO: find out character style for empty, but bulleted/numbered lines
+ bullet = getBullet(graphics, line.getAttributedString().getIterator());
+ }
+
+ if (bullet != null){
+ bullet.setPosition(x + indent, penY);
+ bullet.draw(graphics);
+ // don't let text overlay the bullet and advance by the bullet width
+ double bulletWidth = bullet.getLayout().getAdvance() + 1;
+ penX = x + Math.max(leftMargin, indent+bulletWidth);
+ } else {
+ penX = x + indent;
+ }
+ } else {
+ penX = x + leftMargin;
+ }
+
+ Rectangle2D anchor = DrawShape.getAnchor(graphics, paragraph.getParentShape());
+
+ TextAlign ta = paragraph.getTextAlign();
+ if (ta == null) ta = TextAlign.LEFT;
+ switch (ta) {
+ case CENTER:
+ penX += (anchor.getWidth() - leftMargin - line.getWidth() - leftInset - rightInset) / 2;
+ break;
+ case RIGHT:
+ penX += (anchor.getWidth() - line.getWidth() - leftInset - rightInset);
+ break;
+ default:
+ break;
+ }
+
+ line.setPosition(penX, penY);
+ line.draw(graphics);
+
+ if(spacing > 0) {
+ // If linespacing >= 0, then linespacing is a percentage of normal line height.
+ penY += spacing*0.01* line.getHeight();
+ } else {
+ // negative value means absolute spacing in points
+ penY += -spacing;
+ }
+
+ firstLine = false;
+ }
+
+ y = penY - y;
+ }
+
+ public float getFirstLineHeight() {
+ return (lines.isEmpty()) ? 0 : lines.get(0).getHeight();
+ }
+
+ public float getLastLineHeight() {
+ return (lines.isEmpty()) ? 0 : lines.get(lines.size()-1).getHeight();
+ }
+
+ public boolean isEmptyParagraph() {
+ return (lines.isEmpty() || rawText.trim().isEmpty());
+ }
+
+ public void applyTransform(Graphics2D graphics) {
+ }
+
+ public void drawContent(Graphics2D graphics) {
+ }
+
+ /**
+ * break text into lines, each representing a line of text that fits in the wrapping width
+ *
+ * @param graphics
+ */
+ protected void breakText(Graphics2D graphics){
+ lines.clear();
+
+ DrawFactory fact = DrawFactory.getInstance(graphics);
+ StringBuilder text = new StringBuilder();
+ AttributedString at = getAttributedString(graphics, text);
+ boolean emptyParagraph = ("".equals(text.toString().trim()));
+
+ AttributedCharacterIterator it = at.getIterator();
+ LineBreakMeasurer measurer = new LineBreakMeasurer(it, graphics.getFontRenderContext());
+ for (;;) {
+ int startIndex = measurer.getPosition();
+
+ double wrappingWidth = getWrappingWidth(lines.size() == 0, graphics) + 1; // add a pixel to compensate rounding errors
+ // shape width can be smaller that the sum of insets (this was proved by a test file)
+ if(wrappingWidth < 0) wrappingWidth = 1;
+
+ int nextBreak = text.indexOf("\n", startIndex + 1);
+ if(nextBreak == -1) nextBreak = it.getEndIndex();
+
+ TextLayout layout = measurer.nextLayout((float)wrappingWidth, nextBreak, true);
+ if (layout == null) {
+ // layout can be null if the entire word at the current position
+ // does not fit within the wrapping width. Try with requireNextWord=false.
+ layout = measurer.nextLayout((float)wrappingWidth, nextBreak, false);
+ }
+
+ if(layout == null) {
+ // exit if can't break any more
+ break;
+ }
+
+ int endIndex = measurer.getPosition();
+ // skip over new line breaks (we paint 'clear' text runs not starting or ending with \n)
+ if(endIndex < it.getEndIndex() && text.charAt(endIndex) == '\n'){
+ measurer.setPosition(endIndex + 1);
+ }
+
+ TextAlign hAlign = paragraph.getTextAlign();
+ if(hAlign == TextAlign.JUSTIFY || hAlign == TextAlign.JUSTIFY_LOW) {
+ layout = layout.getJustifiedLayout((float)wrappingWidth);
+ }
+
+ AttributedString str = (emptyParagraph)
+ ? null // we will not paint empty paragraphs
+ : new AttributedString(it, startIndex, endIndex);
+ DrawTextFragment line = fact.getTextFragment(layout, str);
+ lines.add(line);
+
+ maxLineHeight = Math.max(maxLineHeight, line.getHeight());
+
+ if(endIndex == it.getEndIndex()) break;
+ }
+
+ rawText = text.toString();
+ }
+
+ protected DrawTextFragment getBullet(Graphics2D graphics, AttributedCharacterIterator firstLineAttr) {
+ BulletStyle bulletStyle = paragraph.getBulletStyle();
+ if (bulletStyle == null) return null;
+
+ String buCharacter;
+ AutoNumberingScheme ans = bulletStyle.getAutoNumberingScheme();
+ if (ans != null) {
+ buCharacter = ans.format(autoNbrIdx);
+ } else {
+ buCharacter = bulletStyle.getBulletCharacter();
+ }
+ if (buCharacter == null) return null;
+
+ String buFont = bulletStyle.getBulletFont();
+ if (buFont == null) buFont = paragraph.getDefaultFontFamily();
+ assert(buFont != null);
+
+ Color buColor = bulletStyle.getBulletFontColor();
+ if (buColor == null) buColor = (Color)firstLineAttr.getAttribute(TextAttribute.FOREGROUND);
+
+ float fontSize = (Float)firstLineAttr.getAttribute(TextAttribute.SIZE);
+ Double buSz = bulletStyle.getBulletFontSize();
+ if (buSz == null) buSz = 100d;
+ if (buSz > 0) fontSize *= buSz* 0.01;
+ else fontSize = (float)-buSz;
+
+
+ AttributedString str = new AttributedString(buCharacter);
+ str.addAttribute(TextAttribute.FOREGROUND, buColor);
+ str.addAttribute(TextAttribute.FAMILY, buFont);
+ str.addAttribute(TextAttribute.SIZE, fontSize);
+
+ TextLayout layout = new TextLayout(str.getIterator(), graphics.getFontRenderContext());
+ DrawFactory fact = DrawFactory.getInstance(graphics);
+ return fact.getTextFragment(layout, str);
+ }
+
+ protected String getRenderableText(TextRun tr) {
+ StringBuilder buf = new StringBuilder();
+ TextCap cap = tr.getTextCap();
+ String tabs = null;
+ for (char c : tr.getRawText().toCharArray()) {
+ if(c == '\t') {
+ if (tabs == null) {
+ tabs = tab2space(tr);
+ }
+ buf.append(tabs);
+ continue;
+ }
+
+ switch (cap) {
+ case ALL: c = Character.toUpperCase(c); break;
+ case SMALL: c = Character.toLowerCase(c); break;
+ case NONE: break;
+ }
+
+ buf.append(c);
+ }
+
+ return buf.toString();
+ }
+
+ /**
+ * Replace a tab with the effective number of white spaces.
+ */
+ private String tab2space(TextRun tr) {
+ AttributedString string = new AttributedString(" ");
+ String typeFace = tr.getFontFamily();
+ if (typeFace == null) typeFace = "Lucida Sans";
+ string.addAttribute(TextAttribute.FAMILY, typeFace);
+
+ Double fs = tr.getFontSize();
+ if (fs == null) fs = 12d;
+ string.addAttribute(TextAttribute.SIZE, fs.floatValue());
+
+ TextLayout l = new TextLayout(string.getIterator(), new FontRenderContext(null, true, true));
+ double wspace = l.getAdvance();
+
+ Double tabSz = paragraph.getDefaultTabSize();
+ if (tabSz == null) tabSz = wspace*4;
+
+ int numSpaces = (int)Math.ceil(tabSz / wspace);
+ StringBuilder buf = new StringBuilder();
+ for(int i = 0; i < numSpaces; i++) {
+ buf.append(' ');
+ }
+ return buf.toString();
+ }
+
+
+ /**
+ * Returns wrapping width to break lines in this paragraph
+ *
+ * @param firstLine whether the first line is breaking
+ *
+ * @return wrapping width in points
+ */
+ protected double getWrappingWidth(boolean firstLine, Graphics2D graphics){
+ // internal margins for the text box
+
+ Insets2D insets = paragraph.getParentShape().getInsets();
+ double leftInset = insets.left;
+ double rightInset = insets.right;
+
+ Rectangle2D anchor = DrawShape.getAnchor(graphics, paragraph.getParentShape());
+
+ int indentLevel = paragraph.getIndentLevel();
+ Double leftMargin = paragraph.getLeftMargin();
+ if (leftMargin == null) {
+ // if the marL attribute is omitted, then a value of 347663 is implied
+ leftMargin = Units.toPoints(347663*(indentLevel+1));
+ }
+ Double indent = paragraph.getIndent();
+ if (indent == null) {
+ indent = Units.toPoints(347663*indentLevel);
+ }
+ Double rightMargin = paragraph.getRightMargin();
+ if (rightMargin == null) {
+ rightMargin = 0d;
+ }
+
+ double width;
+ TextShape<? extends TextParagraph<T>> ts = paragraph.getParentShape();
+ if (!ts.getWordWrap()) {
+ // if wordWrap == false then we return the advance to the right border of the sheet
+ width = ts.getSheet().getSlideShow().getPageSize().getWidth() - anchor.getX();
+ } else {
+ width = anchor.getWidth() - leftInset - rightInset - leftMargin - rightMargin;
+ if (firstLine) {
+ if (bullet != null){
+ if (indent > 0) width -= indent;
+ } else {
+ if (indent > 0) width -= indent; // first line indentation
+ else if (indent < 0) { // hanging indentation: the first line start at the left margin
+ width += leftMargin;
+ }
+ }
+ }
+ }
+
+ return width;
+ }
+
+ private static class AttributedStringData {
+ Attribute attribute;
+ Object value;
+ int beginIndex, endIndex;
+ AttributedStringData(Attribute attribute, Object value, int beginIndex, int endIndex) {
+ this.attribute = attribute;
+ this.value = value;
+ this.beginIndex = beginIndex;
+ this.endIndex = endIndex;
+ }
+ }
+
+ protected AttributedString getAttributedString(Graphics2D graphics, StringBuilder text){
+ List<AttributedStringData> attList = new ArrayList<AttributedStringData>();
+ if (text == null) text = new StringBuilder();
+
+ DrawFontManager fontHandler = (DrawFontManager)graphics.getRenderingHint(Drawable.FONT_HANDLER);
+
+ for (TextRun run : paragraph){
+ String runText = getRenderableText(run);
+ // skip empty runs
+ if (runText.isEmpty()) continue;
+
+ int beginIndex = text.length();
+ text.append(runText);
+ int endIndex = text.length();
+
+ Color fgColor = run.getFontColor();
+ if (fgColor == null) fgColor = Color.BLACK;
+ attList.add(new AttributedStringData(TextAttribute.FOREGROUND, fgColor, beginIndex, endIndex));
+
+ // user can pass an custom object to convert fonts
+ String fontFamily = run.getFontFamily();
+ @SuppressWarnings("unchecked")
+ Map<String,String> fontMap = (Map<String,String>)graphics.getRenderingHint(Drawable.FONT_MAP);
+ if (fontMap != null && fontMap.containsKey(fontFamily)) {
+ fontFamily = fontMap.get(fontFamily);
+ }
+ if(fontHandler != null) {
+ fontFamily = fontHandler.getRendererableFont(fontFamily, run.getPitchAndFamily());
+ }
+ if (fontFamily == null) {
+ fontFamily = paragraph.getDefaultFontFamily();
+ }
+ attList.add(new AttributedStringData(TextAttribute.FAMILY, fontFamily, beginIndex, endIndex));
+
+ Double fontSz = run.getFontSize();
+ if (fontSz == null) fontSz = paragraph.getDefaultFontSize();
+ attList.add(new AttributedStringData(TextAttribute.SIZE, fontSz.floatValue(), beginIndex, endIndex));
+
+ if(run.isBold()) {
+ attList.add(new AttributedStringData(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, beginIndex, endIndex));
+ }
+ if(run.isItalic()) {
+ attList.add(new AttributedStringData(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE, beginIndex, endIndex));
+ }
+ if(run.isUnderlined()) {
+ attList.add(new AttributedStringData(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, beginIndex, endIndex));
+ attList.add(new AttributedStringData(TextAttribute.INPUT_METHOD_UNDERLINE, TextAttribute.UNDERLINE_LOW_TWO_PIXEL, beginIndex, endIndex));
+ }
+ if(run.isStrikethrough()) {
+ attList.add(new AttributedStringData(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON, beginIndex, endIndex));
+ }
+ if(run.isSubscript()) {
+ attList.add(new AttributedStringData(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUB, beginIndex, endIndex));
+ }
+ if(run.isSuperscript()) {
+ attList.add(new AttributedStringData(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUPER, beginIndex, endIndex));
+ }
+ }
+
+ // ensure that the paragraph contains at least one character
+ // We need this trick to correctly measure text
+ if (text.length() == 0) {
+ Double fontSz = paragraph.getDefaultFontSize();
+ text.append(" ");
+ attList.add(new AttributedStringData(TextAttribute.SIZE, fontSz.floatValue(), 0, 1));
+ }
+
+ AttributedString string = new AttributedString(text.toString());
+ for (AttributedStringData asd : attList) {
+ string.addAttribute(asd.attribute, asd.value, asd.beginIndex, asd.endIndex);
+ }
+
+ return string;
+ }
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/DrawTextShape.java b/src/java/org/apache/poi/sl/draw/DrawTextShape.java
new file mode 100644
index 0000000..5862ac5
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/DrawTextShape.java
@@ -0,0 +1,179 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.util.*;
+
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.TextParagraph.BulletStyle;
+import org.apache.poi.util.JvmBugs;
+
+public class DrawTextShape<T extends TextShape<? extends TextParagraph<? extends TextRun>>> extends DrawSimpleShape<T> {
+
+ public DrawTextShape(T shape) {
+ super(shape);
+ }
+
+ @Override
+ public void drawContent(Graphics2D graphics) {
+ Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);
+ Insets2D insets = shape.getInsets();
+ double x = anchor.getX() + insets.left;
+ double y = anchor.getY();
+
+ // remember the initial transform
+ AffineTransform tx = graphics.getTransform();
+
+ // Transform of text in flipped shapes is special.
+ // At this point the flip and rotation transform is already applied
+ // (see DrawShape#applyTransform ), but we need to restore it to avoid painting "upside down".
+ // See Bugzilla 54210.
+
+ if(shape.getFlipVertical()){
+ graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());
+ graphics.scale(1, -1);
+ graphics.translate(-anchor.getX(), -anchor.getY());
+
+ // text in vertically flipped shapes is rotated by 180 degrees
+ double centerX = anchor.getX() + anchor.getWidth()/2;
+ double centerY = anchor.getY() + anchor.getHeight()/2;
+ graphics.translate(centerX, centerY);
+ graphics.rotate(Math.toRadians(180));
+ graphics.translate(-centerX, -centerY);
+ }
+
+ // Horizontal flipping applies only to shape outline and not to the text in the shape.
+ // Applying flip second time restores the original not-flipped transform
+ if(shape.getFlipHorizontal()){
+ graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());
+ graphics.scale(-1, 1);
+ graphics.translate(-anchor.getX() , -anchor.getY());
+ }
+
+
+ // first dry-run to calculate the total height of the text
+ double textHeight = shape.getTextHeight();
+
+ switch (shape.getVerticalAlignment()){
+ case TOP:
+ y += insets.top;
+ break;
+ case BOTTOM:
+ y += anchor.getHeight() - textHeight - insets.bottom;
+ break;
+ default:
+ case MIDDLE:
+ double delta = anchor.getHeight() - textHeight - insets.top - insets.bottom;
+ y += insets.top + delta/2;
+ break;
+ }
+
+ drawParagraphs(graphics, x, y);
+
+ // restore the transform
+ graphics.setTransform(tx);
+ }
+
+ /**
+ * paint the paragraphs starting from top left (x,y)
+ *
+ * @return the vertical advance, i.e. the cumulative space occupied by the text
+ */
+ public double drawParagraphs(Graphics2D graphics, double x, double y) {
+ DrawFactory fact = DrawFactory.getInstance(graphics);
+ Insets2D shapePadding = shape.getInsets();
+
+ double y0 = y;
+ Iterator<? extends TextParagraph<? extends TextRun>> paragraphs = shape.iterator();
+
+ boolean isFirstLine = true;
+ for (int autoNbrIdx=0; paragraphs.hasNext(); autoNbrIdx++){
+ TextParagraph<? extends TextRun> p = paragraphs.next();
+ DrawTextParagraph<? extends TextRun> dp = fact.getDrawable(p);
+ BulletStyle bs = p.getBulletStyle();
+ if (bs == null || bs.getAutoNumberingScheme() == null) {
+ autoNbrIdx = -1;
+ } else {
+ Integer startAt = bs.getAutoNumberingStartAt();
+ if (startAt == null) startAt = 1;
+ // TODO: handle reset auto number indexes
+ if (startAt > autoNbrIdx) autoNbrIdx = startAt;
+ }
+ dp.setAutoNumberingIdx(autoNbrIdx);
+ dp.breakText(graphics);
+
+ if (!isFirstLine) {
+ // the amount of vertical white space before the paragraph
+ Double spaceBefore = p.getSpaceBefore();
+ if (spaceBefore == null) spaceBefore = 0d;
+ if(spaceBefore > 0) {
+ // positive value means percentage spacing of the height of the first line, e.g.
+ // the higher the first line, the bigger the space before the paragraph
+ y += spaceBefore*0.01*dp.getFirstLineHeight();
+ } else {
+ // negative value means the absolute spacing in points
+ y += -spaceBefore;
+ }
+ }
+ isFirstLine = false;
+
+ dp.setPosition(x, y);
+ dp.draw(graphics);
+ y += dp.getY();
+
+ if (paragraphs.hasNext()) {
+ Double spaceAfter = p.getSpaceAfter();
+ if (spaceAfter == null) spaceAfter = 0d;
+ if(spaceAfter > 0) {
+ // positive value means percentage spacing of the height of the last line, e.g.
+ // the higher the last line, the bigger the space after the paragraph
+ y += spaceAfter*0.01*dp.getLastLineHeight();
+ } else {
+ // negative value means the absolute spacing in points
+ y += -spaceAfter;
+ }
+ }
+ }
+ return y - y0;
+ }
+
+ /**
+ * Compute the cumulative height occupied by the text
+ */
+ public double getTextHeight(){
+ // dry-run in a 1x1 image and return the vertical advance
+ BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
+ Graphics2D graphics = img.createGraphics();
+ fixFonts(graphics);
+ return drawParagraphs(graphics, 0, 0);
+ }
+
+ @SuppressWarnings("unchecked")
+ 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);
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/Drawable.java b/src/java/org/apache/poi/sl/draw/Drawable.java
new file mode 100644
index 0000000..54128b8
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/Drawable.java
@@ -0,0 +1,140 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+
+import org.apache.poi.util.Internal;
+
+
+public interface Drawable {
+ class DrawableHint extends RenderingHints.Key {
+ protected DrawableHint(int id) {
+ super(id);
+ }
+
+ public boolean isCompatibleValue(Object val) {
+ return true;
+ }
+
+ public String toString() {
+ switch (intKey()) {
+ case 1: return "DRAW_FACTORY";
+ case 2: return "GROUP_TRANSFORM";
+ case 3: return "IMAGE_RENDERER";
+ case 4: return "TEXT_RENDERING_MODE";
+ case 5: return "GRADIENT_SHAPE";
+ case 6: return "PRESET_GEOMETRY_CACHE";
+ case 7: return "FONT_HANDLER";
+ case 8: return "FONT_FALLBACK";
+ case 9: return "FONT_MAP";
+ case 10: return "GSAVE";
+ case 11: return "GRESTORE";
+ default: return "UNKNOWN_ID "+intKey();
+ }
+ }
+ }
+
+ /**
+ * {@link DrawFactory} which will be used to draw objects into this graphics context
+ */
+ DrawableHint DRAW_FACTORY = new DrawableHint(1);
+
+ /**
+ * Key will be internally used to store affine transformation temporarily within group shapes
+ */
+ @Internal
+ DrawableHint GROUP_TRANSFORM = new DrawableHint(2);
+
+ /**
+ * Use a custom image renderer of an instance of {@link ImageRenderer}
+ */
+ DrawableHint IMAGE_RENDERER = new DrawableHint(3);
+
+ /**
+ * how to render text:
+ *
+ * {@link #TEXT_AS_CHARACTERS} (default) means to draw via
+ * {@link java.awt.Graphics2D#drawString(java.text.AttributedCharacterIterator, float, float)}.
+ * This mode draws text as characters. Use it if the target graphics writes the actual
+ * character codes instead of glyph outlines (PDFGraphics2D, SVGGraphics2D, etc.)
+ *
+ * {@link #TEXT_AS_SHAPES} means to render via
+ * {@link java.awt.font.TextLayout#draw(java.awt.Graphics2D, float, float)}.
+ * This mode draws glyphs as shapes and provides some advanced capabilities such as
+ * justification and font substitution. Use it if the target graphics is an image.
+ *
+ */
+ DrawableHint TEXT_RENDERING_MODE = new DrawableHint(4);
+
+ /**
+ * PathGradientPaint needs the shape to be set.
+ * It will be achieved through setting it in the rendering hints
+ */
+ DrawableHint GRADIENT_SHAPE = new DrawableHint(5);
+
+
+ /**
+ * Internal key for caching the preset geometries
+ */
+ DrawableHint PRESET_GEOMETRY_CACHE = new DrawableHint(6);
+
+ /**
+ * draw text via {@link java.awt.Graphics2D#drawString(java.text.AttributedCharacterIterator, float, float)}
+ */
+ int TEXT_AS_CHARACTERS = 1;
+
+ /**
+ * draw text via {@link java.awt.font.TextLayout#draw(java.awt.Graphics2D, float, float)}
+ */
+ int TEXT_AS_SHAPES = 2;
+
+ /**
+ * Use this object to resolve unknown / missing fonts when rendering slides
+ */
+ DrawableHint FONT_HANDLER = new DrawableHint(7);
+ DrawableHint FONT_FALLBACK = new DrawableHint(8);
+ DrawableHint FONT_MAP = new DrawableHint(9);
+
+ DrawableHint GSAVE = new DrawableHint(10);
+ DrawableHint GRESTORE = new DrawableHint(11);
+
+
+
+ /**
+ * Apply 2-D transforms before drawing this shape. This includes rotation and flipping.
+ *
+ * @param graphics the graphics whos transform matrix will be modified
+ */
+ void applyTransform(Graphics2D graphics);
+
+ /**
+ * Draw this shape into the supplied canvas
+ *
+ * @param graphics the graphics to draw into
+ */
+ void draw(Graphics2D graphics);
+
+ /**
+ * draw any content within this shape (image, text, etc.).
+ *
+ * @param graphics the graphics to draw into
+ */
+ void drawContent(Graphics2D graphics);
+}
diff --git a/src/java/org/apache/poi/sl/draw/ImageRenderer.java b/src/java/org/apache/poi/sl/draw/ImageRenderer.java
new file mode 100644
index 0000000..87561ae
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/ImageRenderer.java
@@ -0,0 +1,192 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.*;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.awt.image.RescaleOp;
+import java.io.*;
+
+import javax.imageio.ImageIO;
+
+/**
+ * For now this class renders only images supported by the javax.imageio.ImageIO
+ * framework. Subclasses can override this class to support other formats, for
+ * example, use Apache Batik to render WMF, PICT can be rendered using Apple QuickTime API for Java:
+ *
+ * <pre>
+ * <code>
+ * public class MyImageRendener extends ImageRendener {
+ * InputStream data;
+ *
+ * public boolean drawImage(Graphics2D graphics,Rectangle2D anchor,Insets clip) {
+ * // draw image
+ * DataInputStream is = new DataInputStream(data);
+ * org.apache.batik.transcoder.wmf.tosvg.WMFRecordStore wmfStore =
+ * new org.apache.batik.transcoder.wmf.tosvg.WMFRecordStore();
+ * try {
+ * wmfStore.read(is);
+ * } catch (IOException e){
+ * return;
+ * }
+ *
+ * float scale = (float)anchor.width/wmfStore.getWidthPixels();
+ *
+ * org.apache.batik.transcoder.wmf.tosvg.WMFPainter painter =
+ * new org.apache.batik.transcoder.wmf.tosvg.WMFPainter(wmfStore, 0, 0, scale);
+ * graphics.translate(anchor.x, anchor.y);
+ * painter.paint(graphics);
+ * }
+ *
+ * public void loadImage(InputStream data, String contentType) throws IOException {
+ * if ("image/wmf".equals(contentType)) {
+ * this.data = data;
+ * // use Apache Batik to handle WMF
+ * } else {
+ * super.loadImage(data,contentType);
+ * }
+ * }
+ * }
+ * </code>
+ * </pre>
+ *
+ * and then pass this class to your instance of java.awt.Graphics2D:
+ *
+ * <pre>
+ * <code>
+ * graphics.setRenderingHint(Drawable.IMAGE_RENDERER, new MyImageRendener());
+ * </code>
+ * </pre>
+ */
+public class ImageRenderer {
+ protected BufferedImage img;
+
+ /**
+ * Load and buffer the image
+ *
+ * @param data the raw image stream
+ * @param contentType the content type
+ */
+ public void loadImage(InputStream data, String contentType) throws IOException {
+ img = convertBufferedImage(ImageIO.read(data));
+ }
+
+ /**
+ * Load and buffer the image
+ *
+ * @param data the raw image stream
+ * @param contentType the content type
+ */
+ public void loadImage(byte data[], String contentType) throws IOException {
+ img = convertBufferedImage(ImageIO.read(new ByteArrayInputStream(data)));
+ }
+
+ protected static BufferedImage convertBufferedImage(BufferedImage img) {
+ BufferedImage bi = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
+ Graphics g = bi.getGraphics();
+ g.drawImage(img, 0, 0, null);
+ g.dispose();
+ return bi;
+ }
+
+
+ /**
+ * @return the buffered image
+ */
+ public BufferedImage getImage() {
+ return img;
+ }
+
+ /**
+ * @return the dimension of the buffered image
+ */
+ public Dimension getDimension() {
+ return (img == null)
+ ? new Dimension(0,0)
+ : new Dimension(img.getWidth(),img.getHeight());
+ }
+
+ /**
+ * @param alpha the alpha [0..1] to be added to the image (possibly already containing an alpha channel)
+ */
+ public void setAlpha(double alpha) {
+ if (img == null) return;
+
+ Dimension dim = getDimension();
+ BufferedImage newImg = new BufferedImage((int)dim.getWidth(), (int)dim.getHeight(), BufferedImage.TYPE_INT_ARGB);
+ Graphics2D g = newImg.createGraphics();
+ RescaleOp op = new RescaleOp(new float[]{1.0f, 1.0f, 1.0f, (float)alpha}, new float[]{0,0,0,0}, null);
+ g.drawImage(img, op, 0, 0);
+ g.dispose();
+
+ img = newImg;
+ }
+
+
+ /**
+ * Render picture data into the supplied graphics
+ *
+ * @return true if the picture data was successfully rendered
+ */
+ public boolean drawImage(
+ Graphics2D graphics,
+ Rectangle2D anchor) {
+ return drawImage(graphics, anchor, null);
+ }
+
+ /**
+ * Render picture data into the supplied graphics
+ *
+ * @return true if the picture data was successfully rendered
+ */
+ public boolean drawImage(
+ Graphics2D graphics,
+ Rectangle2D anchor,
+ Insets clip) {
+ if (img == null) return false;
+
+ boolean isClipped = true;
+ if (clip == null) {
+ isClipped = false;
+ clip = new Insets(0,0,0,0);
+ }
+
+ int iw = img.getWidth();
+ int ih = img.getHeight();
+
+
+ double cw = (100000-clip.left-clip.right) / 100000.0;
+ double ch = (100000-clip.top-clip.bottom) / 100000.0;
+ double sx = anchor.getWidth()/(iw*cw);
+ double sy = anchor.getHeight()/(ih*ch);
+ double tx = anchor.getX()-(iw*sx*clip.left/100000.0);
+ double ty = anchor.getY()-(ih*sy*clip.top/100000.0);
+
+ AffineTransform at = new AffineTransform(sx, 0, 0, sy, tx, ty) ;
+
+ Shape clipOld = graphics.getClip();
+ if (isClipped) graphics.clip(anchor.getBounds2D());
+ graphics.drawRenderedImage(img, at);
+ graphics.setClip(clipOld);
+
+ return true;
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/PathGradientPaint.java b/src/java/org/apache/poi/sl/draw/PathGradientPaint.java
new file mode 100644
index 0000000..c5ad799
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/PathGradientPaint.java
@@ -0,0 +1,186 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw;
+
+import java.awt.*;
+import java.awt.MultipleGradientPaint.ColorSpaceType;
+import java.awt.MultipleGradientPaint.CycleMethod;
+import java.awt.geom.*;
+import java.awt.image.*;
+
+class PathGradientPaint implements Paint {
+
+ // http://asserttrue.blogspot.de/2010/01/how-to-iimplement-custom-paint-in-50.html
+ protected final Color colors[];
+ protected final float fractions[];
+ protected final int capStyle;
+ protected final int joinStyle;
+ protected final int transparency;
+
+
+ public PathGradientPaint(Color colors[], float fractions[]) {
+ this(colors,fractions,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
+ }
+
+ public PathGradientPaint(Color colors[], float fractions[], int capStyle, int joinStyle) {
+ this.colors = colors;
+ this.fractions = fractions;
+ this.capStyle = capStyle;
+ this.joinStyle = joinStyle;
+
+ // determine transparency
+ boolean opaque = true;
+ for (int i = 0; i < colors.length; i++){
+ opaque = opaque && (colors[i].getAlpha() == 0xff);
+ }
+ this.transparency = opaque ? OPAQUE : TRANSLUCENT;
+ }
+
+ public PaintContext createContext(ColorModel cm,
+ Rectangle deviceBounds,
+ Rectangle2D userBounds,
+ AffineTransform transform,
+ RenderingHints hints) {
+ return new PathGradientContext(cm, deviceBounds, userBounds, transform, hints);
+ }
+
+ public int getTransparency() {
+ return transparency;
+ }
+
+ class PathGradientContext implements PaintContext {
+ protected final Rectangle deviceBounds;
+ protected final Rectangle2D userBounds;
+ protected final AffineTransform xform;
+ protected final RenderingHints hints;
+
+ /**
+ * for POI: the shape will be only known when the subclasses determines the concrete implementation
+ * in the draw/-content method, so we need to postpone the setting/creation as long as possible
+ **/
+ protected final Shape shape;
+ protected final PaintContext pCtx;
+ protected final int gradientSteps;
+ WritableRaster raster;
+
+ public PathGradientContext(
+ ColorModel cm
+ , Rectangle deviceBounds
+ , Rectangle2D userBounds
+ , AffineTransform xform
+ , RenderingHints hints
+ ) {
+ shape = (Shape)hints.get(Drawable.GRADIENT_SHAPE);
+ if (shape == null) {
+ throw new IllegalPathStateException("PathGradientPaint needs a shape to be set via the rendering hint PathGradientPaint.GRADIANT_SHAPE.");
+ }
+
+ this.deviceBounds = deviceBounds;
+ this.userBounds = userBounds;
+ this.xform = xform;
+ this.hints = hints;
+
+ gradientSteps = getGradientSteps(shape);
+
+ Point2D start = new Point2D.Double(0, 0);
+ Point2D end = new Point2D.Double(gradientSteps, 0);
+ LinearGradientPaint gradientPaint = new LinearGradientPaint(start, end, fractions, colors, CycleMethod.NO_CYCLE, ColorSpaceType.SRGB, new AffineTransform());
+
+ Rectangle bounds = new Rectangle(0, 0, gradientSteps, 1);
+ pCtx = gradientPaint.createContext(cm, bounds, bounds, new AffineTransform(), hints);
+ }
+
+ public void dispose() {}
+
+ public ColorModel getColorModel() {
+ return pCtx.getColorModel();
+ }
+
+ public Raster getRaster(int xOffset, int yOffset, int w, int h) {
+ ColorModel cm = getColorModel();
+ if (raster == null) createRaster();
+
+ // TODO: eventually use caching here
+ WritableRaster childRaster = cm.createCompatibleWritableRaster(w, h);
+ Rectangle2D childRect = new Rectangle2D.Double(xOffset, yOffset, w, h);
+ if (!childRect.intersects(deviceBounds)) {
+ // usually doesn't happen ...
+ return childRaster;
+ }
+
+ Rectangle2D destRect = new Rectangle2D.Double();
+ Rectangle2D.intersect(childRect, deviceBounds, destRect);
+ int dx = (int)(destRect.getX()-deviceBounds.getX());
+ int dy = (int)(destRect.getY()-deviceBounds.getY());
+ int dw = (int)destRect.getWidth();
+ int dh = (int)destRect.getHeight();
+ Object data = raster.getDataElements(dx, dy, dw, dh, null);
+ dx = (int)(destRect.getX()-childRect.getX());
+ dy = (int)(destRect.getY()-childRect.getY());
+ childRaster.setDataElements(dx, dy, dw, dh, data);
+
+ return childRaster;
+ }
+
+ protected int getGradientSteps(Shape shape) {
+ Rectangle rect = shape.getBounds();
+ int lower = 1;
+ int upper = (int)(Math.max(rect.getWidth(),rect.getHeight())/2.0);
+ while (lower < upper-1) {
+ int mid = lower + (upper - lower) / 2;
+ BasicStroke bs = new BasicStroke(mid, capStyle, joinStyle);
+ Area area = new Area(bs.createStrokedShape(shape));
+ if (area.isSingular()) {
+ upper = mid;
+ } else {
+ lower = mid;
+ }
+ }
+ return upper;
+ }
+
+
+
+ protected void createRaster() {
+ ColorModel cm = getColorModel();
+ raster = cm.createCompatibleWritableRaster((int)deviceBounds.getWidth(), (int)deviceBounds.getHeight());
+ BufferedImage img = new BufferedImage(cm, raster, false, null);
+ Graphics2D graphics = img.createGraphics();
+ graphics.setRenderingHints(hints);
+ graphics.translate(-deviceBounds.getX(), -deviceBounds.getY());
+ graphics.transform(xform);
+
+ Raster img2 = pCtx.getRaster(0, 0, gradientSteps, 1);
+ int rgb[] = new int[cm.getNumComponents()];
+
+ for (int i = gradientSteps-1; i>=0; i--) {
+ img2.getPixel(i, 0, rgb);
+ Color c = new Color(rgb[0],rgb[1],rgb[2]);
+ if (rgb.length == 4) {
+ // it doesn't work to use just a color with transparency ...
+ graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, rgb[3]/255.0f));
+ }
+ graphics.setStroke(new BasicStroke(i+1, capStyle, joinStyle));
+ graphics.setColor(c);
+ graphics.draw(shape);
+ }
+
+ graphics.dispose();
+ }
+ }
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java b/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java
new file mode 100644
index 0000000..d7fc0ae
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java
@@ -0,0 +1,109 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_AdjPoint2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_AdjPoint2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_AdjPoint2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTAdjPoint2D {
+
+ @XmlAttribute(name = "x", required = true)
+ protected String x;
+ @XmlAttribute(name = "y", required = true)
+ protected String y;
+
+ /**
+ * Gets the value of the x property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getX() {
+ return x;
+ }
+
+ /**
+ * Sets the value of the x property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setX(String value) {
+ this.x = value;
+ }
+
+ public boolean isSetX() {
+ return (this.x!= null);
+ }
+
+ /**
+ * Gets the value of the y property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getY() {
+ return y;
+ }
+
+ /**
+ * Sets the value of the y property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setY(String value) {
+ this.y = value;
+ }
+
+ public boolean isSetY() {
+ return (this.y!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java b/src/java/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java
new file mode 100644
index 0000000..d684ccc
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java
@@ -0,0 +1,99 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_AdjustHandleList complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_AdjustHandleList">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="ahXY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_XYAdjustHandle"/>
+ * <element name="ahPolar" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PolarAdjustHandle"/>
+ * </choice>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_AdjustHandleList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "ahXYOrAhPolar"
+})
+public class CTAdjustHandleList {
+
+ @XmlElements({
+ @XmlElement(name = "ahXY", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTXYAdjustHandle.class),
+ @XmlElement(name = "ahPolar", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPolarAdjustHandle.class)
+ })
+ protected List<Object> ahXYOrAhPolar;
+
+ /**
+ * Gets the value of the ahXYOrAhPolar property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the ahXYOrAhPolar property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAhXYOrAhPolar().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTXYAdjustHandle }
+ * {@link CTPolarAdjustHandle }
+ *
+ *
+ */
+ public List<Object> getAhXYOrAhPolar() {
+ if (ahXYOrAhPolar == null) {
+ ahXYOrAhPolar = new ArrayList<Object>();
+ }
+ return this.ahXYOrAhPolar;
+ }
+
+ public boolean isSetAhXYOrAhPolar() {
+ return ((this.ahXYOrAhPolar!= null)&&(!this.ahXYOrAhPolar.isEmpty()));
+ }
+
+ public void unsetAhXYOrAhPolar() {
+ this.ahXYOrAhPolar = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTAngle.java b/src/java/org/apache/poi/sl/draw/binding/CTAngle.java
new file mode 100644
index 0000000..2da2373
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTAngle.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Angle complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Angle">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Angle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Angle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTAngle {
+
+ @XmlAttribute(name = "val", required = true)
+ protected int val;
+
+ /**
+ * Gets the value of the val property.
+ *
+ */
+ public int getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ */
+ public void setVal(int value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTColor.java b/src/java/org/apache/poi/sl/draw/binding/CTColor.java
new file mode 100644
index 0000000..dd3cca3
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTColor.java
@@ -0,0 +1,237 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Color complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Color">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorChoice"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Color", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "scrgbClr",
+ "srgbClr",
+ "hslClr",
+ "sysClr",
+ "schemeClr",
+ "prstClr"
+})
+public class CTColor {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTScRgbColor scrgbClr;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTSRgbColor srgbClr;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTHslColor hslClr;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTSystemColor sysClr;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTSchemeColor schemeClr;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPresetColor prstClr;
+
+ /**
+ * Gets the value of the scrgbClr property.
+ *
+ * @return
+ * possible object is
+ * {@link CTScRgbColor }
+ *
+ */
+ public CTScRgbColor getScrgbClr() {
+ return scrgbClr;
+ }
+
+ /**
+ * Sets the value of the scrgbClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTScRgbColor }
+ *
+ */
+ public void setScrgbClr(CTScRgbColor value) {
+ this.scrgbClr = value;
+ }
+
+ public boolean isSetScrgbClr() {
+ return (this.scrgbClr!= null);
+ }
+
+ /**
+ * Gets the value of the srgbClr property.
+ *
+ * @return
+ * possible object is
+ * {@link CTSRgbColor }
+ *
+ */
+ public CTSRgbColor getSrgbClr() {
+ return srgbClr;
+ }
+
+ /**
+ * Sets the value of the srgbClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTSRgbColor }
+ *
+ */
+ public void setSrgbClr(CTSRgbColor value) {
+ this.srgbClr = value;
+ }
+
+ public boolean isSetSrgbClr() {
+ return (this.srgbClr!= null);
+ }
+
+ /**
+ * Gets the value of the hslClr property.
+ *
+ * @return
+ * possible object is
+ * {@link CTHslColor }
+ *
+ */
+ public CTHslColor getHslClr() {
+ return hslClr;
+ }
+
+ /**
+ * Sets the value of the hslClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTHslColor }
+ *
+ */
+ public void setHslClr(CTHslColor value) {
+ this.hslClr = value;
+ }
+
+ public boolean isSetHslClr() {
+ return (this.hslClr!= null);
+ }
+
+ /**
+ * Gets the value of the sysClr property.
+ *
+ * @return
+ * possible object is
+ * {@link CTSystemColor }
+ *
+ */
+ public CTSystemColor getSysClr() {
+ return sysClr;
+ }
+
+ /**
+ * Sets the value of the sysClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTSystemColor }
+ *
+ */
+ public void setSysClr(CTSystemColor value) {
+ this.sysClr = value;
+ }
+
+ public boolean isSetSysClr() {
+ return (this.sysClr!= null);
+ }
+
+ /**
+ * Gets the value of the schemeClr property.
+ *
+ * @return
+ * possible object is
+ * {@link CTSchemeColor }
+ *
+ */
+ public CTSchemeColor getSchemeClr() {
+ return schemeClr;
+ }
+
+ /**
+ * Sets the value of the schemeClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTSchemeColor }
+ *
+ */
+ public void setSchemeClr(CTSchemeColor value) {
+ this.schemeClr = value;
+ }
+
+ public boolean isSetSchemeClr() {
+ return (this.schemeClr!= null);
+ }
+
+ /**
+ * Gets the value of the prstClr property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPresetColor }
+ *
+ */
+ public CTPresetColor getPrstClr() {
+ return prstClr;
+ }
+
+ /**
+ * Sets the value of the prstClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPresetColor }
+ *
+ */
+ public void setPrstClr(CTPresetColor value) {
+ this.prstClr = value;
+ }
+
+ public boolean isSetPrstClr() {
+ return (this.prstClr!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java b/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java
new file mode 100644
index 0000000..8ec68ba
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTColorMRU.java
@@ -0,0 +1,106 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_ColorMRU complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_ColorMRU">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorChoice" maxOccurs="10" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_ColorMRU", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorChoice"
+})
+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 = "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)
+ })
+ protected List<Object> egColorChoice;
+
+ /**
+ * Gets the value of the egColorChoice property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorChoice property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorChoice().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTScRgbColor }
+ * {@link CTSRgbColor }
+ * {@link CTHslColor }
+ * {@link CTSystemColor }
+ * {@link CTSchemeColor }
+ * {@link CTPresetColor }
+ *
+ *
+ */
+ public List<Object> getEGColorChoice() {
+ if (egColorChoice == null) {
+ egColorChoice = new ArrayList<Object>();
+ }
+ return this.egColorChoice;
+ }
+
+ public boolean isSetEGColorChoice() {
+ return ((this.egColorChoice!= null)&&(!this.egColorChoice.isEmpty()));
+ }
+
+ public void unsetEGColorChoice() {
+ this.egColorChoice = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTComplementTransform.java b/src/java/org/apache/poi/sl/draw/binding/CTComplementTransform.java
new file mode 100644
index 0000000..dd1a56c
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTComplementTransform.java
@@ -0,0 +1,46 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_ComplementTransform complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_ComplementTransform">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_ComplementTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTComplementTransform {
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTConnection.java b/src/java/org/apache/poi/sl/draw/binding/CTConnection.java
new file mode 100644
index 0000000..f5d5e17
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTConnection.java
@@ -0,0 +1,95 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Connection complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Connection">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="id" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_DrawingElementId" />
+ * <attribute name="idx" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Connection", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTConnection {
+
+ @XmlAttribute(name = "id", required = true)
+ protected long id;
+ @XmlAttribute(name = "idx", required = true)
+ @XmlSchemaType(name = "unsignedInt")
+ protected long idx;
+
+ /**
+ * Gets the value of the id property.
+ *
+ */
+ public long getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ */
+ public void setId(long value) {
+ this.id = value;
+ }
+
+ public boolean isSetId() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the idx property.
+ *
+ */
+ public long getIdx() {
+ return idx;
+ }
+
+ /**
+ * Sets the value of the idx property.
+ *
+ */
+ public void setIdx(long value) {
+ this.idx = value;
+ }
+
+ public boolean isSetIdx() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java b/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java
new file mode 100644
index 0000000..eae59a0
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTConnectionSite.java
@@ -0,0 +1,114 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_ConnectionSite complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_ConnectionSite">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * <attribute name="ang" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_ConnectionSite", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pos"
+})
+public class CTConnectionSite {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTAdjPoint2D pos;
+ @XmlAttribute(name = "ang", required = true)
+ protected String ang;
+
+ /**
+ * Gets the value of the pos property.
+ *
+ * @return
+ * possible object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public CTAdjPoint2D getPos() {
+ return pos;
+ }
+
+ /**
+ * Sets the value of the pos property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public void setPos(CTAdjPoint2D value) {
+ this.pos = value;
+ }
+
+ public boolean isSetPos() {
+ return (this.pos!= null);
+ }
+
+ /**
+ * Gets the value of the ang property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAng() {
+ return ang;
+ }
+
+ /**
+ * Sets the value of the ang property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAng(String value) {
+ this.ang = value;
+ }
+
+ public boolean isSetAng() {
+ return (this.ang!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java b/src/java/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java
new file mode 100644
index 0000000..a3c9889
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_ConnectionSiteList complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_ConnectionSiteList">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="cxn" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_ConnectionSite" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_ConnectionSiteList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "cxn"
+})
+public class CTConnectionSiteList {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected List<CTConnectionSite> cxn;
+
+ /**
+ * Gets the value of the cxn property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the cxn property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCxn().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTConnectionSite }
+ *
+ *
+ */
+ public List<CTConnectionSite> getCxn() {
+ if (cxn == null) {
+ cxn = new ArrayList<CTConnectionSite>();
+ }
+ return this.cxn;
+ }
+
+ public boolean isSetCxn() {
+ return ((this.cxn!= null)&&(!this.cxn.isEmpty()));
+ }
+
+ public void unsetCxn() {
+ this.cxn = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java b/src/java/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java
new file mode 100644
index 0000000..d6856ee
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java
@@ -0,0 +1,242 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_CustomGeometry2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_CustomGeometry2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>
+ * <element name="gdLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>
+ * <element name="ahLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjustHandleList" minOccurs="0"/>
+ * <element name="cxnLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_ConnectionSiteList" minOccurs="0"/>
+ * <element name="rect" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomRect" minOccurs="0"/>
+ * <element name="pathLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DList"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_CustomGeometry2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "avLst",
+ "gdLst",
+ "ahLst",
+ "cxnLst",
+ "rect",
+ "pathLst"
+})
+public class CTCustomGeometry2D {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTGeomGuideList avLst;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTGeomGuideList gdLst;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTAdjustHandleList ahLst;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTConnectionSiteList cxnLst;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTGeomRect rect;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTPath2DList pathLst;
+
+ /**
+ * Gets the value of the avLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public CTGeomGuideList getAvLst() {
+ return avLst;
+ }
+
+ /**
+ * Sets the value of the avLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public void setAvLst(CTGeomGuideList value) {
+ this.avLst = value;
+ }
+
+ public boolean isSetAvLst() {
+ return (this.avLst!= null);
+ }
+
+ /**
+ * Gets the value of the gdLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public CTGeomGuideList getGdLst() {
+ return gdLst;
+ }
+
+ /**
+ * Sets the value of the gdLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public void setGdLst(CTGeomGuideList value) {
+ this.gdLst = value;
+ }
+
+ public boolean isSetGdLst() {
+ return (this.gdLst!= null);
+ }
+
+ /**
+ * Gets the value of the ahLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTAdjustHandleList }
+ *
+ */
+ public CTAdjustHandleList getAhLst() {
+ return ahLst;
+ }
+
+ /**
+ * Sets the value of the ahLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTAdjustHandleList }
+ *
+ */
+ public void setAhLst(CTAdjustHandleList value) {
+ this.ahLst = value;
+ }
+
+ public boolean isSetAhLst() {
+ return (this.ahLst!= null);
+ }
+
+ /**
+ * Gets the value of the cxnLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTConnectionSiteList }
+ *
+ */
+ public CTConnectionSiteList getCxnLst() {
+ return cxnLst;
+ }
+
+ /**
+ * Sets the value of the cxnLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTConnectionSiteList }
+ *
+ */
+ public void setCxnLst(CTConnectionSiteList value) {
+ this.cxnLst = value;
+ }
+
+ public boolean isSetCxnLst() {
+ return (this.cxnLst!= null);
+ }
+
+ /**
+ * Gets the value of the rect property.
+ *
+ * @return
+ * possible object is
+ * {@link CTGeomRect }
+ *
+ */
+ public CTGeomRect getRect() {
+ return rect;
+ }
+
+ /**
+ * Sets the value of the rect property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTGeomRect }
+ *
+ */
+ public void setRect(CTGeomRect value) {
+ this.rect = value;
+ }
+
+ public boolean isSetRect() {
+ return (this.rect!= null);
+ }
+
+ /**
+ * Gets the value of the pathLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPath2DList }
+ *
+ */
+ public CTPath2DList getPathLst() {
+ return pathLst;
+ }
+
+ /**
+ * Sets the value of the pathLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPath2DList }
+ *
+ */
+ public void setPathLst(CTPath2DList value) {
+ this.pathLst = value;
+ }
+
+ public boolean isSetPathLst() {
+ return (this.pathLst!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java b/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java
new file mode 100644
index 0000000..8787125
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java
@@ -0,0 +1,152 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_EmbeddedWAVAudioFile complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_EmbeddedWAVAudioFile">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute ref="{http://schemas.openxmlformats.org/officeDocument/2006/relationships}embed use="required""/>
+ * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" default="" />
+ * <attribute name="builtIn" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@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)
+ protected String embed;
+ @XmlAttribute(name = "name")
+ protected String name;
+ @XmlAttribute(name = "builtIn")
+ protected Boolean builtIn;
+
+ /**
+ * Embedded Audio File Relationship ID
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getEmbed() {
+ return embed;
+ }
+
+ /**
+ * Sets the value of the embed property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setEmbed(String value) {
+ this.embed = value;
+ }
+
+ public boolean isSetEmbed() {
+ return (this.embed!= null);
+ }
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ if (name == null) {
+ return "";
+ } else {
+ return name;
+ }
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ public boolean isSetName() {
+ return (this.name!= null);
+ }
+
+ /**
+ * Gets the value of the builtIn property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isBuiltIn() {
+ if (builtIn == null) {
+ return false;
+ } else {
+ return builtIn;
+ }
+ }
+
+ /**
+ * Sets the value of the builtIn property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setBuiltIn(boolean value) {
+ this.builtIn = value;
+ }
+
+ public boolean isSetBuiltIn() {
+ return (this.builtIn!= null);
+ }
+
+ public void unsetBuiltIn() {
+ this.builtIn = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java b/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java
new file mode 100644
index 0000000..d1ed283
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTFixedPercentage.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_FixedPercentage complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_FixedPercentage">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_FixedPercentage" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_FixedPercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTFixedPercentage {
+
+ @XmlAttribute(name = "val", required = true)
+ protected int val;
+
+ /**
+ * Gets the value of the val property.
+ *
+ */
+ public int getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ */
+ public void setVal(int value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTGammaTransform.java b/src/java/org/apache/poi/sl/draw/binding/CTGammaTransform.java
new file mode 100644
index 0000000..7cf6cb1
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTGammaTransform.java
@@ -0,0 +1,46 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_GammaTransform complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GammaTransform">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_GammaTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTGammaTransform {
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java b/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java
new file mode 100644
index 0000000..5622e4c
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTGeomGuide.java
@@ -0,0 +1,112 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CT_GeomGuide complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GeomGuide">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="name" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />
+ * <attribute name="fmla" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideFormula" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_GeomGuide", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTGeomGuide {
+
+ @XmlAttribute(name = "name", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String name;
+ @XmlAttribute(name = "fmla", required = true)
+ protected String fmla;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ public boolean isSetName() {
+ return (this.name!= null);
+ }
+
+ /**
+ * Gets the value of the fmla property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFmla() {
+ return fmla;
+ }
+
+ /**
+ * Sets the value of the fmla property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFmla(String value) {
+ this.fmla = value;
+ }
+
+ public boolean isSetFmla() {
+ return (this.fmla!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTGeomGuideList.java b/src/java/org/apache/poi/sl/draw/binding/CTGeomGuideList.java
new file mode 100644
index 0000000..4490933
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTGeomGuideList.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_GeomGuideList complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GeomGuideList">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="gd" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuide" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_GeomGuideList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "gd"
+})
+public class CTGeomGuideList {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected List<CTGeomGuide> gd;
+
+ /**
+ * Gets the value of the gd property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the gd property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getGd().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTGeomGuide }
+ *
+ *
+ */
+ public List<CTGeomGuide> getGd() {
+ if (gd == null) {
+ gd = new ArrayList<CTGeomGuide>();
+ }
+ return this.gd;
+ }
+
+ public boolean isSetGd() {
+ return ((this.gd!= null)&&(!this.gd.isEmpty()));
+ }
+
+ public void unsetGd() {
+ this.gd = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java b/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java
new file mode 100644
index 0000000..3198f04
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTGeomRect.java
@@ -0,0 +1,171 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_GeomRect complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GeomRect">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="l" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="t" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="r" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="b" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_GeomRect", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTGeomRect {
+
+ @XmlAttribute(name = "l", required = true)
+ protected String l;
+ @XmlAttribute(name = "t", required = true)
+ protected String t;
+ @XmlAttribute(name = "r", required = true)
+ protected String r;
+ @XmlAttribute(name = "b", required = true)
+ protected String b;
+
+ /**
+ * Gets the value of the l property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getL() {
+ return l;
+ }
+
+ /**
+ * Sets the value of the l property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setL(String value) {
+ this.l = value;
+ }
+
+ public boolean isSetL() {
+ return (this.l!= null);
+ }
+
+ /**
+ * Gets the value of the t property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getT() {
+ return t;
+ }
+
+ /**
+ * Sets the value of the t property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setT(String value) {
+ this.t = value;
+ }
+
+ public boolean isSetT() {
+ return (this.t!= null);
+ }
+
+ /**
+ * Gets the value of the r property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getR() {
+ return r;
+ }
+
+ /**
+ * Sets the value of the r property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setR(String value) {
+ this.r = value;
+ }
+
+ public boolean isSetR() {
+ return (this.r!= null);
+ }
+
+ /**
+ * Gets the value of the b property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getB() {
+ return b;
+ }
+
+ /**
+ * Sets the value of the b property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setB(String value) {
+ this.b = value;
+ }
+
+ public boolean isSetB() {
+ return (this.b!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java b/src/java/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java
new file mode 100644
index 0000000..643db02
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java
@@ -0,0 +1,46 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_GrayscaleTransform complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GrayscaleTransform">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_GrayscaleTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTGrayscaleTransform {
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java b/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java
new file mode 100644
index 0000000..f06e1d8
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java
@@ -0,0 +1,296 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_GroupTransform2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_GroupTransform2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="off" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Point2D" minOccurs="0"/>
+ * <element name="ext" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PositiveSize2D" minOccurs="0"/>
+ * <element name="chOff" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Point2D" minOccurs="0"/>
+ * <element name="chExt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PositiveSize2D" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="rot" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Angle" default="0" />
+ * <attribute name="flipH" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="flipV" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_GroupTransform2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "off",
+ "ext",
+ "chOff",
+ "chExt"
+})
+public class CTGroupTransform2D {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPoint2D off;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPositiveSize2D ext;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPoint2D chOff;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPositiveSize2D chExt;
+ @XmlAttribute(name = "rot")
+ protected Integer rot;
+ @XmlAttribute(name = "flipH")
+ protected Boolean flipH;
+ @XmlAttribute(name = "flipV")
+ protected Boolean flipV;
+
+ /**
+ * Gets the value of the off property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPoint2D }
+ *
+ */
+ public CTPoint2D getOff() {
+ return off;
+ }
+
+ /**
+ * Sets the value of the off property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPoint2D }
+ *
+ */
+ public void setOff(CTPoint2D value) {
+ this.off = value;
+ }
+
+ public boolean isSetOff() {
+ return (this.off!= null);
+ }
+
+ /**
+ * Gets the value of the ext property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPositiveSize2D }
+ *
+ */
+ public CTPositiveSize2D getExt() {
+ return ext;
+ }
+
+ /**
+ * Sets the value of the ext property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPositiveSize2D }
+ *
+ */
+ public void setExt(CTPositiveSize2D value) {
+ this.ext = value;
+ }
+
+ public boolean isSetExt() {
+ return (this.ext!= null);
+ }
+
+ /**
+ * Gets the value of the chOff property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPoint2D }
+ *
+ */
+ public CTPoint2D getChOff() {
+ return chOff;
+ }
+
+ /**
+ * Sets the value of the chOff property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPoint2D }
+ *
+ */
+ public void setChOff(CTPoint2D value) {
+ this.chOff = value;
+ }
+
+ public boolean isSetChOff() {
+ return (this.chOff!= null);
+ }
+
+ /**
+ * Gets the value of the chExt property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPositiveSize2D }
+ *
+ */
+ public CTPositiveSize2D getChExt() {
+ return chExt;
+ }
+
+ /**
+ * Sets the value of the chExt property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPositiveSize2D }
+ *
+ */
+ public void setChExt(CTPositiveSize2D value) {
+ this.chExt = value;
+ }
+
+ public boolean isSetChExt() {
+ return (this.chExt!= null);
+ }
+
+ /**
+ * Gets the value of the rot property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getRot() {
+ if (rot == null) {
+ return 0;
+ } else {
+ return rot;
+ }
+ }
+
+ /**
+ * Sets the value of the rot property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setRot(int value) {
+ this.rot = value;
+ }
+
+ public boolean isSetRot() {
+ return (this.rot!= null);
+ }
+
+ public void unsetRot() {
+ this.rot = null;
+ }
+
+ /**
+ * Gets the value of the flipH property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isFlipH() {
+ if (flipH == null) {
+ return false;
+ } else {
+ return flipH;
+ }
+ }
+
+ /**
+ * Sets the value of the flipH property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setFlipH(boolean value) {
+ this.flipH = value;
+ }
+
+ public boolean isSetFlipH() {
+ return (this.flipH!= null);
+ }
+
+ public void unsetFlipH() {
+ this.flipH = null;
+ }
+
+ /**
+ * Gets the value of the flipV property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isFlipV() {
+ if (flipV == null) {
+ return false;
+ } else {
+ return flipV;
+ }
+ }
+
+ /**
+ * Sets the value of the flipV property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setFlipV(boolean value) {
+ this.flipV = value;
+ }
+
+ public boolean isSetFlipV() {
+ return (this.flipV!= null);
+ }
+
+ public void unsetFlipV() {
+ this.flipV = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java b/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java
new file mode 100644
index 0000000..376d423
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTHslColor.java
@@ -0,0 +1,221 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_HslColor complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_HslColor">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="hue" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />
+ * <attribute name="sat" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />
+ * <attribute name="lum" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_HslColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorTransform"
+})
+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)
+ })
+ protected List<JAXBElement<?>> egColorTransform;
+ @XmlAttribute(name = "hue", required = true)
+ protected int hue;
+ @XmlAttribute(name = "sat", required = true)
+ protected int sat;
+ @XmlAttribute(name = "lum", required = true)
+ protected int lum;
+
+ /**
+ * Gets the value of the egColorTransform property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <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 CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@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 CTPercentage }{@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 CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ *
+ *
+ */
+ public List<JAXBElement<?>> getEGColorTransform() {
+ if (egColorTransform == null) {
+ egColorTransform = new ArrayList<JAXBElement<?>>();
+ }
+ return this.egColorTransform;
+ }
+
+ public boolean isSetEGColorTransform() {
+ return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));
+ }
+
+ public void unsetEGColorTransform() {
+ this.egColorTransform = null;
+ }
+
+ /**
+ * Gets the value of the hue property.
+ *
+ */
+ public int getHue() {
+ return hue;
+ }
+
+ /**
+ * Sets the value of the hue property.
+ *
+ */
+ public void setHue(int value) {
+ this.hue = value;
+ }
+
+ public boolean isSetHue() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the sat property.
+ *
+ */
+ public int getSat() {
+ return sat;
+ }
+
+ /**
+ * Sets the value of the sat property.
+ *
+ */
+ public void setSat(int value) {
+ this.sat = value;
+ }
+
+ public boolean isSetSat() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the lum property.
+ *
+ */
+ public int getLum() {
+ return lum;
+ }
+
+ /**
+ * Sets the value of the lum property.
+ *
+ */
+ public void setLum(int value) {
+ this.lum = value;
+ }
+
+ public boolean isSetLum() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java b/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java
new file mode 100644
index 0000000..0c89f39
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTHyperlink.java
@@ -0,0 +1,403 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Hyperlink complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Hyperlink">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="snd" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_EmbeddedWAVAudioFile" minOccurs="0"/>
+ * <element name="extLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_OfficeArtExtensionList" minOccurs="0"/>
+ * </sequence>
+ * <attribute ref="{http://schemas.openxmlformats.org/officeDocument/2006/relationships}id"/>
+ * <attribute name="invalidUrl" type="{http://www.w3.org/2001/XMLSchema}string" default="" />
+ * <attribute name="action" type="{http://www.w3.org/2001/XMLSchema}string" default="" />
+ * <attribute name="tgtFrame" type="{http://www.w3.org/2001/XMLSchema}string" default="" />
+ * <attribute name="tooltip" type="{http://www.w3.org/2001/XMLSchema}string" default="" />
+ * <attribute name="history" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * <attribute name="highlightClick" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="endSnd" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Hyperlink", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "snd",
+ "extLst"
+})
+public class CTHyperlink {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ 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")
+ protected String id;
+ @XmlAttribute(name = "invalidUrl")
+ protected String invalidUrl;
+ @XmlAttribute(name = "action")
+ protected String action;
+ @XmlAttribute(name = "tgtFrame")
+ protected String tgtFrame;
+ @XmlAttribute(name = "tooltip")
+ protected String tooltip;
+ @XmlAttribute(name = "history")
+ protected Boolean history;
+ @XmlAttribute(name = "highlightClick")
+ protected Boolean highlightClick;
+ @XmlAttribute(name = "endSnd")
+ protected Boolean endSnd;
+
+ /**
+ * Gets the value of the snd property.
+ *
+ * @return
+ * possible object is
+ * {@link CTEmbeddedWAVAudioFile }
+ *
+ */
+ public CTEmbeddedWAVAudioFile getSnd() {
+ return snd;
+ }
+
+ /**
+ * Sets the value of the snd property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTEmbeddedWAVAudioFile }
+ *
+ */
+ public void setSnd(CTEmbeddedWAVAudioFile value) {
+ this.snd = value;
+ }
+
+ public boolean isSetSnd() {
+ return (this.snd!= null);
+ }
+
+ /**
+ * Gets the value of the extLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTOfficeArtExtensionList }
+ *
+ */
+ public CTOfficeArtExtensionList getExtLst() {
+ return extLst;
+ }
+
+ /**
+ * Sets the value of the extLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTOfficeArtExtensionList }
+ *
+ */
+ public void setExtLst(CTOfficeArtExtensionList value) {
+ this.extLst = value;
+ }
+
+ public boolean isSetExtLst() {
+ return (this.extLst!= null);
+ }
+
+ /**
+ * Drawing Object Hyperlink Target
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ public boolean isSetId() {
+ return (this.id!= null);
+ }
+
+ /**
+ * Gets the value of the invalidUrl property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInvalidUrl() {
+ if (invalidUrl == null) {
+ return "";
+ } else {
+ return invalidUrl;
+ }
+ }
+
+ /**
+ * Sets the value of the invalidUrl property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInvalidUrl(String value) {
+ this.invalidUrl = value;
+ }
+
+ public boolean isSetInvalidUrl() {
+ return (this.invalidUrl!= null);
+ }
+
+ /**
+ * Gets the value of the action property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAction() {
+ if (action == null) {
+ return "";
+ } else {
+ return action;
+ }
+ }
+
+ /**
+ * Sets the value of the action property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAction(String value) {
+ this.action = value;
+ }
+
+ public boolean isSetAction() {
+ return (this.action!= null);
+ }
+
+ /**
+ * Gets the value of the tgtFrame property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTgtFrame() {
+ if (tgtFrame == null) {
+ return "";
+ } else {
+ return tgtFrame;
+ }
+ }
+
+ /**
+ * Sets the value of the tgtFrame property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTgtFrame(String value) {
+ this.tgtFrame = value;
+ }
+
+ public boolean isSetTgtFrame() {
+ return (this.tgtFrame!= null);
+ }
+
+ /**
+ * Gets the value of the tooltip property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTooltip() {
+ if (tooltip == null) {
+ return "";
+ } else {
+ return tooltip;
+ }
+ }
+
+ /**
+ * Sets the value of the tooltip property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTooltip(String value) {
+ this.tooltip = value;
+ }
+
+ public boolean isSetTooltip() {
+ return (this.tooltip!= null);
+ }
+
+ /**
+ * Gets the value of the history property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isHistory() {
+ if (history == null) {
+ return true;
+ } else {
+ return history;
+ }
+ }
+
+ /**
+ * Sets the value of the history property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setHistory(boolean value) {
+ this.history = value;
+ }
+
+ public boolean isSetHistory() {
+ return (this.history!= null);
+ }
+
+ public void unsetHistory() {
+ this.history = null;
+ }
+
+ /**
+ * Gets the value of the highlightClick property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isHighlightClick() {
+ if (highlightClick == null) {
+ return false;
+ } else {
+ return highlightClick;
+ }
+ }
+
+ /**
+ * Sets the value of the highlightClick property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setHighlightClick(boolean value) {
+ this.highlightClick = value;
+ }
+
+ public boolean isSetHighlightClick() {
+ return (this.highlightClick!= null);
+ }
+
+ public void unsetHighlightClick() {
+ this.highlightClick = null;
+ }
+
+ /**
+ * Gets the value of the endSnd property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isEndSnd() {
+ if (endSnd == null) {
+ return false;
+ } else {
+ return endSnd;
+ }
+ }
+
+ /**
+ * Sets the value of the endSnd property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setEndSnd(boolean value) {
+ this.endSnd = value;
+ }
+
+ public boolean isSetEndSnd() {
+ return (this.endSnd!= null);
+ }
+
+ public void unsetEndSnd() {
+ this.endSnd = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java b/src/java/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java
new file mode 100644
index 0000000..eaff064
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java
@@ -0,0 +1,46 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_InverseGammaTransform complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_InverseGammaTransform">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_InverseGammaTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTInverseGammaTransform {
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTInverseTransform.java b/src/java/org/apache/poi/sl/draw/binding/CTInverseTransform.java
new file mode 100644
index 0000000..84af625
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTInverseTransform.java
@@ -0,0 +1,46 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_InverseTransform complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_InverseTransform">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_InverseTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTInverseTransform {
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java b/src/java/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java
new file mode 100644
index 0000000..ec864d3
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java
@@ -0,0 +1,122 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for CT_OfficeArtExtension complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_OfficeArtExtension">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <any processContents='lax'/>
+ * </sequence>
+ * <attribute name="uri" type="{http://www.w3.org/2001/XMLSchema}token" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_OfficeArtExtension", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "any"
+})
+public class CTOfficeArtExtension {
+
+ @XmlAnyElement(lax = true)
+ protected Object any;
+ @XmlAttribute(name = "uri")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlSchemaType(name = "token")
+ protected String uri;
+
+ /**
+ * Gets the value of the any property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ * {@link Element }
+ *
+ */
+ public Object getAny() {
+ return any;
+ }
+
+ /**
+ * Sets the value of the any property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ * {@link Element }
+ *
+ */
+ public void setAny(Object value) {
+ this.any = value;
+ }
+
+ public boolean isSetAny() {
+ return (this.any!= null);
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getUri() {
+ return uri;
+ }
+
+ /**
+ * Sets the value of the uri property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setUri(String value) {
+ this.uri = value;
+ }
+
+ public boolean isSetUri() {
+ return (this.uri!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java b/src/java/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java
new file mode 100644
index 0000000..f0b54cb
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_OfficeArtExtensionList complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_OfficeArtExtensionList">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_OfficeArtExtensionList"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_OfficeArtExtensionList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "ext"
+})
+public class CTOfficeArtExtensionList {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected List<CTOfficeArtExtension> ext;
+
+ /**
+ * Gets the value of the ext property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the ext property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getExt().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTOfficeArtExtension }
+ *
+ *
+ */
+ public List<CTOfficeArtExtension> getExt() {
+ if (ext == null) {
+ ext = new ArrayList<CTOfficeArtExtension>();
+ }
+ return this.ext;
+ }
+
+ public boolean isSetExt() {
+ return ((this.ext!= null)&&(!this.ext.isEmpty()));
+ }
+
+ public void unsetExt() {
+ this.ext = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2D.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2D.java
new file mode 100644
index 0000000..5294812
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2D.java
@@ -0,0 +1,303 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <choice maxOccurs="unbounded" minOccurs="0">
+ * <element name="close" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DClose"/>
+ * <element name="moveTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DMoveTo"/>
+ * <element name="lnTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DLineTo"/>
+ * <element name="arcTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DArcTo"/>
+ * <element name="quadBezTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DQuadBezierTo"/>
+ * <element name="cubicBezTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DCubicBezierTo"/>
+ * </choice>
+ * <attribute name="w" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" default="0" />
+ * <attribute name="h" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" default="0" />
+ * <attribute name="fill" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PathFillMode" default="norm" />
+ * <attribute name="stroke" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * <attribute name="extrusionOk" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "closeOrMoveToOrLnTo"
+})
+public class CTPath2D {
+
+ @XmlElements({
+ @XmlElement(name = "close", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DClose.class),
+ @XmlElement(name = "moveTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DMoveTo.class),
+ @XmlElement(name = "lnTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DLineTo.class),
+ @XmlElement(name = "arcTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DArcTo.class),
+ @XmlElement(name = "quadBezTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DQuadBezierTo.class),
+ @XmlElement(name = "cubicBezTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DCubicBezierTo.class)
+ })
+ protected List<Object> closeOrMoveToOrLnTo;
+ @XmlAttribute(name = "w")
+ protected Long w;
+ @XmlAttribute(name = "h")
+ protected Long h;
+ @XmlAttribute(name = "fill")
+ protected STPathFillMode fill;
+ @XmlAttribute(name = "stroke")
+ protected Boolean stroke;
+ @XmlAttribute(name = "extrusionOk")
+ protected Boolean extrusionOk;
+
+ /**
+ * Gets the value of the closeOrMoveToOrLnTo property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the closeOrMoveToOrLnTo property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCloseOrMoveToOrLnTo().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTPath2DClose }
+ * {@link CTPath2DMoveTo }
+ * {@link CTPath2DLineTo }
+ * {@link CTPath2DArcTo }
+ * {@link CTPath2DQuadBezierTo }
+ * {@link CTPath2DCubicBezierTo }
+ *
+ *
+ */
+ public List<Object> getCloseOrMoveToOrLnTo() {
+ if (closeOrMoveToOrLnTo == null) {
+ closeOrMoveToOrLnTo = new ArrayList<Object>();
+ }
+ return this.closeOrMoveToOrLnTo;
+ }
+
+ public boolean isSetCloseOrMoveToOrLnTo() {
+ return ((this.closeOrMoveToOrLnTo!= null)&&(!this.closeOrMoveToOrLnTo.isEmpty()));
+ }
+
+ public void unsetCloseOrMoveToOrLnTo() {
+ this.closeOrMoveToOrLnTo = null;
+ }
+
+ /**
+ * Gets the value of the w property.
+ *
+ * @return
+ * possible object is
+ * {@link Long }
+ *
+ */
+ public long getW() {
+ if (w == null) {
+ return 0L;
+ } else {
+ return w;
+ }
+ }
+
+ /**
+ * Sets the value of the w property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Long }
+ *
+ */
+ public void setW(long value) {
+ this.w = value;
+ }
+
+ public boolean isSetW() {
+ return (this.w!= null);
+ }
+
+ public void unsetW() {
+ this.w = null;
+ }
+
+ /**
+ * Gets the value of the h property.
+ *
+ * @return
+ * possible object is
+ * {@link Long }
+ *
+ */
+ public long getH() {
+ if (h == null) {
+ return 0L;
+ } else {
+ return h;
+ }
+ }
+
+ /**
+ * Sets the value of the h property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Long }
+ *
+ */
+ public void setH(long value) {
+ this.h = value;
+ }
+
+ public boolean isSetH() {
+ return (this.h!= null);
+ }
+
+ public void unsetH() {
+ this.h = null;
+ }
+
+ /**
+ * Gets the value of the fill property.
+ *
+ * @return
+ * possible object is
+ * {@link STPathFillMode }
+ *
+ */
+ public STPathFillMode getFill() {
+ if (fill == null) {
+ return STPathFillMode.NORM;
+ } else {
+ return fill;
+ }
+ }
+
+ /**
+ * Sets the value of the fill property.
+ *
+ * @param value
+ * allowed object is
+ * {@link STPathFillMode }
+ *
+ */
+ public void setFill(STPathFillMode value) {
+ this.fill = value;
+ }
+
+ public boolean isSetFill() {
+ return (this.fill!= null);
+ }
+
+ /**
+ * Gets the value of the stroke property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isStroke() {
+ if (stroke == null) {
+ return true;
+ } else {
+ return stroke;
+ }
+ }
+
+ /**
+ * Sets the value of the stroke property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setStroke(boolean value) {
+ this.stroke = value;
+ }
+
+ public boolean isSetStroke() {
+ return (this.stroke!= null);
+ }
+
+ public void unsetStroke() {
+ this.stroke = null;
+ }
+
+ /**
+ * Gets the value of the extrusionOk property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isExtrusionOk() {
+ if (extrusionOk == null) {
+ return true;
+ } else {
+ return extrusionOk;
+ }
+ }
+
+ /**
+ * Sets the value of the extrusionOk property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setExtrusionOk(boolean value) {
+ this.extrusionOk = value;
+ }
+
+ public boolean isSetExtrusionOk() {
+ return (this.extrusionOk!= null);
+ }
+
+ public void unsetExtrusionOk() {
+ this.extrusionOk = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java
new file mode 100644
index 0000000..5464ee4
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java
@@ -0,0 +1,171 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DArcTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DArcTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="wR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="hR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="stAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * <attribute name="swAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DArcTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPath2DArcTo {
+
+ @XmlAttribute(name = "wR", required = true)
+ protected String wr;
+ @XmlAttribute(name = "hR", required = true)
+ protected String hr;
+ @XmlAttribute(name = "stAng", required = true)
+ protected String stAng;
+ @XmlAttribute(name = "swAng", required = true)
+ protected String swAng;
+
+ /**
+ * Gets the value of the wr property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getWR() {
+ return wr;
+ }
+
+ /**
+ * Sets the value of the wr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setWR(String value) {
+ this.wr = value;
+ }
+
+ public boolean isSetWR() {
+ return (this.wr!= null);
+ }
+
+ /**
+ * Gets the value of the hr property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getHR() {
+ return hr;
+ }
+
+ /**
+ * Sets the value of the hr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setHR(String value) {
+ this.hr = value;
+ }
+
+ public boolean isSetHR() {
+ return (this.hr!= null);
+ }
+
+ /**
+ * Gets the value of the stAng property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStAng() {
+ return stAng;
+ }
+
+ /**
+ * Sets the value of the stAng property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStAng(String value) {
+ this.stAng = value;
+ }
+
+ public boolean isSetStAng() {
+ return (this.stAng!= null);
+ }
+
+ /**
+ * Gets the value of the swAng property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getSwAng() {
+ return swAng;
+ }
+
+ /**
+ * Sets the value of the swAng property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setSwAng(String value) {
+ this.swAng = value;
+ }
+
+ public boolean isSetSwAng() {
+ return (this.swAng!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DClose.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DClose.java
new file mode 100644
index 0000000..a60f98b
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DClose.java
@@ -0,0 +1,46 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DClose complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DClose">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DClose", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPath2DClose {
+
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java
new file mode 100644
index 0000000..e1818fa
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DCubicBezierTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DCubicBezierTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D" maxOccurs="3" minOccurs="3"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DCubicBezierTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pt"
+})
+public class CTPath2DCubicBezierTo {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected List<CTAdjPoint2D> pt;
+
+ /**
+ * Gets the value of the pt property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the pt property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPt().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTAdjPoint2D }
+ *
+ *
+ */
+ public List<CTAdjPoint2D> getPt() {
+ if (pt == null) {
+ pt = new ArrayList<CTAdjPoint2D>();
+ }
+ return this.pt;
+ }
+
+ public boolean isSetPt() {
+ return ((this.pt!= null)&&(!this.pt.isEmpty()));
+ }
+
+ public void unsetPt() {
+ this.pt = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java
new file mode 100644
index 0000000..9c6d1b3
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java
@@ -0,0 +1,82 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DLineTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DLineTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DLineTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pt"
+})
+public class CTPath2DLineTo {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTAdjPoint2D pt;
+
+ /**
+ * Gets the value of the pt property.
+ *
+ * @return
+ * possible object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public CTAdjPoint2D getPt() {
+ return pt;
+ }
+
+ /**
+ * Sets the value of the pt property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public void setPt(CTAdjPoint2D value) {
+ this.pt = value;
+ }
+
+ public boolean isSetPt() {
+ return (this.pt!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DList.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DList.java
new file mode 100644
index 0000000..cd31a0b
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DList.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DList complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DList">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="path" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2D" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "path"
+})
+public class CTPath2DList {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected List<CTPath2D> path;
+
+ /**
+ * Gets the value of the path property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the path property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPath().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTPath2D }
+ *
+ *
+ */
+ public List<CTPath2D> getPath() {
+ if (path == null) {
+ path = new ArrayList<CTPath2D>();
+ }
+ return this.path;
+ }
+
+ public boolean isSetPath() {
+ return ((this.path!= null)&&(!this.path.isEmpty()));
+ }
+
+ public void unsetPath() {
+ this.path = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java
new file mode 100644
index 0000000..f5e210f
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java
@@ -0,0 +1,82 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DMoveTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DMoveTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DMoveTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pt"
+})
+public class CTPath2DMoveTo {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTAdjPoint2D pt;
+
+ /**
+ * Gets the value of the pt property.
+ *
+ * @return
+ * possible object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public CTAdjPoint2D getPt() {
+ return pt;
+ }
+
+ /**
+ * Sets the value of the pt property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public void setPt(CTAdjPoint2D value) {
+ this.pt = value;
+ }
+
+ public boolean isSetPt() {
+ return (this.pt!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java b/src/java/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java
new file mode 100644
index 0000000..b588775
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Path2DQuadBezierTo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Path2DQuadBezierTo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D" maxOccurs="2" minOccurs="2"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Path2DQuadBezierTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pt"
+})
+public class CTPath2DQuadBezierTo {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected List<CTAdjPoint2D> pt;
+
+ /**
+ * Gets the value of the pt property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the pt property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPt().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CTAdjPoint2D }
+ *
+ *
+ */
+ public List<CTAdjPoint2D> getPt() {
+ if (pt == null) {
+ pt = new ArrayList<CTAdjPoint2D>();
+ }
+ return this.pt;
+ }
+
+ public boolean isSetPt() {
+ return ((this.pt!= null)&&(!this.pt.isEmpty()));
+ }
+
+ public void unsetPt() {
+ this.pt = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPercentage.java b/src/java/org/apache/poi/sl/draw/binding/CTPercentage.java
new file mode 100644
index 0000000..e1a74b5
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPercentage.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Percentage complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Percentage">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Percentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPercentage {
+
+ @XmlAttribute(name = "val", required = true)
+ protected int val;
+
+ /**
+ * Gets the value of the val property.
+ *
+ */
+ public int getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ */
+ public void setVal(int value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPoint2D.java b/src/java/org/apache/poi/sl/draw/binding/CTPoint2D.java
new file mode 100644
index 0000000..06cbfbc
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPoint2D.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Point2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Point2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * <attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Point2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPoint2D {
+
+ @XmlAttribute(name = "x", required = true)
+ protected long x;
+ @XmlAttribute(name = "y", required = true)
+ protected long y;
+
+ /**
+ * Gets the value of the x property.
+ *
+ */
+ public long getX() {
+ return x;
+ }
+
+ /**
+ * Sets the value of the x property.
+ *
+ */
+ public void setX(long value) {
+ this.x = value;
+ }
+
+ public boolean isSetX() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the y property.
+ *
+ */
+ public long getY() {
+ return y;
+ }
+
+ /**
+ * Sets the value of the y property.
+ *
+ */
+ public void setY(long value) {
+ this.y = value;
+ }
+
+ public boolean isSetY() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPoint3D.java b/src/java/org/apache/poi/sl/draw/binding/CTPoint3D.java
new file mode 100644
index 0000000..3cbeb67
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPoint3D.java
@@ -0,0 +1,116 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Point3D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Point3D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * <attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * <attribute name="z" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Point3D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPoint3D {
+
+ @XmlAttribute(name = "x", required = true)
+ protected long x;
+ @XmlAttribute(name = "y", required = true)
+ protected long y;
+ @XmlAttribute(name = "z", required = true)
+ protected long z;
+
+ /**
+ * Gets the value of the x property.
+ *
+ */
+ public long getX() {
+ return x;
+ }
+
+ /**
+ * Sets the value of the x property.
+ *
+ */
+ public void setX(long value) {
+ this.x = value;
+ }
+
+ public boolean isSetX() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the y property.
+ *
+ */
+ public long getY() {
+ return y;
+ }
+
+ /**
+ * Sets the value of the y property.
+ *
+ */
+ public void setY(long value) {
+ this.y = value;
+ }
+
+ public boolean isSetY() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the z property.
+ *
+ */
+ public long getZ() {
+ return z;
+ }
+
+ /**
+ * Sets the value of the z property.
+ *
+ */
+ public void setZ(long value) {
+ this.z = value;
+ }
+
+ public boolean isSetZ() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java b/src/java/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java
new file mode 100644
index 0000000..646dad5
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java
@@ -0,0 +1,273 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CT_PolarAdjustHandle complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PolarAdjustHandle">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * <attribute name="gdRefR" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />
+ * <attribute name="minR" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="maxR" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="gdRefAng" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />
+ * <attribute name="minAng" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * <attribute name="maxAng" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PolarAdjustHandle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pos"
+})
+public class CTPolarAdjustHandle {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTAdjPoint2D pos;
+ @XmlAttribute(name = "gdRefR")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String gdRefR;
+ @XmlAttribute(name = "minR")
+ protected String minR;
+ @XmlAttribute(name = "maxR")
+ protected String maxR;
+ @XmlAttribute(name = "gdRefAng")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String gdRefAng;
+ @XmlAttribute(name = "minAng")
+ protected String minAng;
+ @XmlAttribute(name = "maxAng")
+ protected String maxAng;
+
+ /**
+ * Gets the value of the pos property.
+ *
+ * @return
+ * possible object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public CTAdjPoint2D getPos() {
+ return pos;
+ }
+
+ /**
+ * Sets the value of the pos property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public void setPos(CTAdjPoint2D value) {
+ this.pos = value;
+ }
+
+ public boolean isSetPos() {
+ return (this.pos!= null);
+ }
+
+ /**
+ * Gets the value of the gdRefR property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGdRefR() {
+ return gdRefR;
+ }
+
+ /**
+ * Sets the value of the gdRefR property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGdRefR(String value) {
+ this.gdRefR = value;
+ }
+
+ public boolean isSetGdRefR() {
+ return (this.gdRefR!= null);
+ }
+
+ /**
+ * Gets the value of the minR property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMinR() {
+ return minR;
+ }
+
+ /**
+ * Sets the value of the minR property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMinR(String value) {
+ this.minR = value;
+ }
+
+ public boolean isSetMinR() {
+ return (this.minR!= null);
+ }
+
+ /**
+ * Gets the value of the maxR property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMaxR() {
+ return maxR;
+ }
+
+ /**
+ * Sets the value of the maxR property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMaxR(String value) {
+ this.maxR = value;
+ }
+
+ public boolean isSetMaxR() {
+ return (this.maxR!= null);
+ }
+
+ /**
+ * Gets the value of the gdRefAng property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGdRefAng() {
+ return gdRefAng;
+ }
+
+ /**
+ * Sets the value of the gdRefAng property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGdRefAng(String value) {
+ this.gdRefAng = value;
+ }
+
+ public boolean isSetGdRefAng() {
+ return (this.gdRefAng!= null);
+ }
+
+ /**
+ * Gets the value of the minAng property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMinAng() {
+ return minAng;
+ }
+
+ /**
+ * Sets the value of the minAng property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMinAng(String value) {
+ this.minAng = value;
+ }
+
+ public boolean isSetMinAng() {
+ return (this.minAng!= null);
+ }
+
+ /**
+ * Gets the value of the maxAng property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMaxAng() {
+ return maxAng;
+ }
+
+ /**
+ * Sets the value of the maxAng property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMaxAng(String value) {
+ this.maxAng = value;
+ }
+
+ public boolean isSetMaxAng() {
+ return (this.maxAng!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java b/src/java/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java
new file mode 100644
index 0000000..962db95
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PositiveFixedAngle complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PositiveFixedAngle">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PositiveFixedAngle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPositiveFixedAngle {
+
+ @XmlAttribute(name = "val", required = true)
+ protected int val;
+
+ /**
+ * Gets the value of the val property.
+ *
+ */
+ public int getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ */
+ public void setVal(int value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java b/src/java/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java
new file mode 100644
index 0000000..001f01a
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PositiveFixedPercentage complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PositiveFixedPercentage">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedPercentage" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PositiveFixedPercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPositiveFixedPercentage {
+
+ @XmlAttribute(name = "val", required = true)
+ protected int val;
+
+ /**
+ * Gets the value of the val property.
+ *
+ */
+ public int getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ */
+ public void setVal(int value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPositivePercentage.java b/src/java/org/apache/poi/sl/draw/binding/CTPositivePercentage.java
new file mode 100644
index 0000000..8fc61f3
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPositivePercentage.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PositivePercentage complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PositivePercentage">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositivePercentage" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PositivePercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPositivePercentage {
+
+ @XmlAttribute(name = "val", required = true)
+ protected int val;
+
+ /**
+ * Gets the value of the val property.
+ *
+ */
+ public int getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ */
+ public void setVal(int value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java b/src/java/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java
new file mode 100644
index 0000000..c8d76e6
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PositiveSize2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PositiveSize2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="cx" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" />
+ * <attribute name="cy" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PositiveSize2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTPositiveSize2D {
+
+ @XmlAttribute(name = "cx", required = true)
+ protected long cx;
+ @XmlAttribute(name = "cy", required = true)
+ protected long cy;
+
+ /**
+ * Gets the value of the cx property.
+ *
+ */
+ public long getCx() {
+ return cx;
+ }
+
+ /**
+ * Sets the value of the cx property.
+ *
+ */
+ public void setCx(long value) {
+ this.cx = value;
+ }
+
+ public boolean isSetCx() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the cy property.
+ *
+ */
+ public long getCy() {
+ return cy;
+ }
+
+ /**
+ * Sets the value of the cy property.
+ *
+ */
+ public void setCy(long value) {
+ this.cy = value;
+ }
+
+ public boolean isSetCy() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPresetColor.java b/src/java/org/apache/poi/sl/draw/binding/CTPresetColor.java
new file mode 100644
index 0000000..e240a71
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPresetColor.java
@@ -0,0 +1,183 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PresetColor complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PresetColor">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="val" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PresetColorVal" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PresetColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorTransform"
+})
+public class CTPresetColor {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "redOff", 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 = "blueOff", 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 = "green", 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 = "inv", 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 = "blueMod", 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 = "shade", 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 = "hueMod", 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 = "comp", 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 = "hueOff", 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 = "hue", 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 = "red", 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 = "tint", 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 = "satMod", 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 = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)
+ })
+ protected List<JAXBElement<?>> egColorTransform;
+ @XmlAttribute(name = "val")
+ protected STPresetColorVal val;
+
+ /**
+ * Gets the value of the egColorTransform property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@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 CTInverseTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ *
+ *
+ */
+ public List<JAXBElement<?>> getEGColorTransform() {
+ if (egColorTransform == null) {
+ egColorTransform = new ArrayList<JAXBElement<?>>();
+ }
+ return this.egColorTransform;
+ }
+
+ public boolean isSetEGColorTransform() {
+ return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));
+ }
+
+ public void unsetEGColorTransform() {
+ this.egColorTransform = null;
+ }
+
+ /**
+ * Gets the value of the val property.
+ *
+ * @return
+ * possible object is
+ * {@link STPresetColorVal }
+ *
+ */
+ public STPresetColorVal getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ * @param value
+ * allowed object is
+ * {@link STPresetColorVal }
+ *
+ */
+ public void setVal(STPresetColorVal value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return (this.val!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java b/src/java/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java
new file mode 100644
index 0000000..b55b02e
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java
@@ -0,0 +1,114 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PresetGeometry2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PresetGeometry2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="prst" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_ShapeType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PresetGeometry2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "avLst"
+})
+public class CTPresetGeometry2D {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTGeomGuideList avLst;
+ @XmlAttribute(name = "prst", required = true)
+ protected STShapeType prst;
+
+ /**
+ * Gets the value of the avLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public CTGeomGuideList getAvLst() {
+ return avLst;
+ }
+
+ /**
+ * Sets the value of the avLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public void setAvLst(CTGeomGuideList value) {
+ this.avLst = value;
+ }
+
+ public boolean isSetAvLst() {
+ return (this.avLst!= null);
+ }
+
+ /**
+ * Gets the value of the prst property.
+ *
+ * @return
+ * possible object is
+ * {@link STShapeType }
+ *
+ */
+ public STShapeType getPrst() {
+ return prst;
+ }
+
+ /**
+ * Sets the value of the prst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link STShapeType }
+ *
+ */
+ public void setPrst(STShapeType value) {
+ this.prst = value;
+ }
+
+ public boolean isSetPrst() {
+ return (this.prst!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTPresetTextShape.java b/src/java/org/apache/poi/sl/draw/binding/CTPresetTextShape.java
new file mode 100644
index 0000000..f7082b3
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTPresetTextShape.java
@@ -0,0 +1,114 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_PresetTextShape complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_PresetTextShape">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="prst" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_TextShapeType" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_PresetTextShape", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "avLst"
+})
+public class CTPresetTextShape {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTGeomGuideList avLst;
+ @XmlAttribute(name = "prst", required = true)
+ protected STTextShapeType prst;
+
+ /**
+ * Gets the value of the avLst property.
+ *
+ * @return
+ * possible object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public CTGeomGuideList getAvLst() {
+ return avLst;
+ }
+
+ /**
+ * Sets the value of the avLst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTGeomGuideList }
+ *
+ */
+ public void setAvLst(CTGeomGuideList value) {
+ this.avLst = value;
+ }
+
+ public boolean isSetAvLst() {
+ return (this.avLst!= null);
+ }
+
+ /**
+ * Gets the value of the prst property.
+ *
+ * @return
+ * possible object is
+ * {@link STTextShapeType }
+ *
+ */
+ public STTextShapeType getPrst() {
+ return prst;
+ }
+
+ /**
+ * Sets the value of the prst property.
+ *
+ * @param value
+ * allowed object is
+ * {@link STTextShapeType }
+ *
+ */
+ public void setPrst(STTextShapeType value) {
+ this.prst = value;
+ }
+
+ public boolean isSetPrst() {
+ return (this.prst!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTRatio.java b/src/java/org/apache/poi/sl/draw/binding/CTRatio.java
new file mode 100644
index 0000000..3a951c1
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTRatio.java
@@ -0,0 +1,93 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Ratio complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Ratio">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="n" use="required" type="{http://www.w3.org/2001/XMLSchema}long" />
+ * <attribute name="d" use="required" type="{http://www.w3.org/2001/XMLSchema}long" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Ratio", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTRatio {
+
+ @XmlAttribute(name = "n", required = true)
+ protected long n;
+ @XmlAttribute(name = "d", required = true)
+ protected long d;
+
+ /**
+ * Gets the value of the n property.
+ *
+ */
+ public long getN() {
+ return n;
+ }
+
+ /**
+ * Sets the value of the n property.
+ *
+ */
+ public void setN(long value) {
+ this.n = value;
+ }
+
+ public boolean isSetN() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the d property.
+ *
+ */
+ public long getD() {
+ return d;
+ }
+
+ /**
+ * Sets the value of the d property.
+ *
+ */
+ public void setD(long value) {
+ this.d = value;
+ }
+
+ public boolean isSetD() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTRelativeRect.java b/src/java/org/apache/poi/sl/draw/binding/CTRelativeRect.java
new file mode 100644
index 0000000..e332bd8
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTRelativeRect.java
@@ -0,0 +1,203 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_RelativeRect complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_RelativeRect">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="l" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />
+ * <attribute name="t" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />
+ * <attribute name="r" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />
+ * <attribute name="b" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_RelativeRect", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTRelativeRect {
+
+ @XmlAttribute(name = "l")
+ protected Integer l;
+ @XmlAttribute(name = "t")
+ protected Integer t;
+ @XmlAttribute(name = "r")
+ protected Integer r;
+ @XmlAttribute(name = "b")
+ protected Integer b;
+
+ /**
+ * Gets the value of the l property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getL() {
+ if (l == null) {
+ return 0;
+ } else {
+ return l;
+ }
+ }
+
+ /**
+ * Sets the value of the l property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setL(int value) {
+ this.l = value;
+ }
+
+ public boolean isSetL() {
+ return (this.l!= null);
+ }
+
+ public void unsetL() {
+ this.l = null;
+ }
+
+ /**
+ * Gets the value of the t property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getT() {
+ if (t == null) {
+ return 0;
+ } else {
+ return t;
+ }
+ }
+
+ /**
+ * Sets the value of the t property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setT(int value) {
+ this.t = value;
+ }
+
+ public boolean isSetT() {
+ return (this.t!= null);
+ }
+
+ public void unsetT() {
+ this.t = null;
+ }
+
+ /**
+ * Gets the value of the r property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getR() {
+ if (r == null) {
+ return 0;
+ } else {
+ return r;
+ }
+ }
+
+ /**
+ * Sets the value of the r property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setR(int value) {
+ this.r = value;
+ }
+
+ public boolean isSetR() {
+ return (this.r!= null);
+ }
+
+ public void unsetR() {
+ this.r = null;
+ }
+
+ /**
+ * Gets the value of the b property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getB() {
+ if (b == null) {
+ return 0;
+ } else {
+ return b;
+ }
+ }
+
+ /**
+ * Sets the value of the b property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setB(int value) {
+ this.b = value;
+ }
+
+ public boolean isSetB() {
+ return (this.b!= null);
+ }
+
+ public void unsetB() {
+ this.b = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTSRgbColor.java b/src/java/org/apache/poi/sl/draw/binding/CTSRgbColor.java
new file mode 100644
index 0000000..ef920d6
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTSRgbColor.java
@@ -0,0 +1,186 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CT_SRgbColor complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_SRgbColor">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_HexBinary3" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_SRgbColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorTransform"
+})
+public class CTSRgbColor {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "comp", 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 = "gray", 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 = "greenMod", 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 = "redMod", 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 = "hue", 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 = "tint", 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 = "invGamma", 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 = "alphaOff", 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 = "gamma", 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 = "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 = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "red", 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 = "sat", 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 = "redOff", 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 = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)
+ })
+ protected List<JAXBElement<?>> egColorTransform;
+ @XmlAttribute(name = "val", required = true)
+ @XmlJavaTypeAdapter(HexBinaryAdapter.class)
+ protected byte[] val;
+
+ /**
+ * Gets the value of the egColorTransform property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@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 CTPositiveFixedAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@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 CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}
+ *
+ *
+ */
+ public List<JAXBElement<?>> getEGColorTransform() {
+ if (egColorTransform == null) {
+ egColorTransform = new ArrayList<JAXBElement<?>>();
+ }
+ return this.egColorTransform;
+ }
+
+ public boolean isSetEGColorTransform() {
+ return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));
+ }
+
+ public void unsetEGColorTransform() {
+ this.egColorTransform = null;
+ }
+
+ /**
+ * Gets the value of the val property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public byte[] getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setVal(byte[] value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return (this.val!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTScRgbColor.java b/src/java/org/apache/poi/sl/draw/binding/CTScRgbColor.java
new file mode 100644
index 0000000..335e4b2
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTScRgbColor.java
@@ -0,0 +1,221 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_ScRgbColor complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_ScRgbColor">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="r" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />
+ * <attribute name="g" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />
+ * <attribute name="b" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_ScRgbColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorTransform"
+})
+public class CTScRgbColor {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "redMod", 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 = "satMod", 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 = "blue", 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 = "sat", 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 = "gamma", 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 = "comp", 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 = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "red", 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 = "hue", 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 = "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 = "blueOff", 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 = "lum", 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 = "greenMod", 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 = "invGamma", 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 = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)
+ })
+ protected List<JAXBElement<?>> egColorTransform;
+ @XmlAttribute(name = "r", required = true)
+ protected int r;
+ @XmlAttribute(name = "g", required = true)
+ protected int g;
+ @XmlAttribute(name = "b", required = true)
+ protected int b;
+
+ /**
+ * Gets the value of the egColorTransform property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@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 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 CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}
+ *
+ *
+ */
+ public List<JAXBElement<?>> getEGColorTransform() {
+ if (egColorTransform == null) {
+ egColorTransform = new ArrayList<JAXBElement<?>>();
+ }
+ return this.egColorTransform;
+ }
+
+ public boolean isSetEGColorTransform() {
+ return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));
+ }
+
+ public void unsetEGColorTransform() {
+ this.egColorTransform = null;
+ }
+
+ /**
+ * Gets the value of the r property.
+ *
+ */
+ public int getR() {
+ return r;
+ }
+
+ /**
+ * Sets the value of the r property.
+ *
+ */
+ public void setR(int value) {
+ this.r = value;
+ }
+
+ public boolean isSetR() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the g property.
+ *
+ */
+ public int getG() {
+ return g;
+ }
+
+ /**
+ * Sets the value of the g property.
+ *
+ */
+ public void setG(int value) {
+ this.g = value;
+ }
+
+ public boolean isSetG() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the b property.
+ *
+ */
+ public int getB() {
+ return b;
+ }
+
+ /**
+ * Sets the value of the b property.
+ *
+ */
+ public void setB(int value) {
+ this.b = value;
+ }
+
+ public boolean isSetB() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTScale2D.java b/src/java/org/apache/poi/sl/draw/binding/CTScale2D.java
new file mode 100644
index 0000000..2e8eba1
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTScale2D.java
@@ -0,0 +1,114 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Scale2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Scale2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="sx" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Ratio"/>
+ * <element name="sy" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Ratio"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Scale2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "sx",
+ "sy"
+})
+public class CTScale2D {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTRatio sx;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTRatio sy;
+
+ /**
+ * Gets the value of the sx property.
+ *
+ * @return
+ * possible object is
+ * {@link CTRatio }
+ *
+ */
+ public CTRatio getSx() {
+ return sx;
+ }
+
+ /**
+ * Sets the value of the sx property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTRatio }
+ *
+ */
+ public void setSx(CTRatio value) {
+ this.sx = value;
+ }
+
+ public boolean isSetSx() {
+ return (this.sx!= null);
+ }
+
+ /**
+ * Gets the value of the sy property.
+ *
+ * @return
+ * possible object is
+ * {@link CTRatio }
+ *
+ */
+ public CTRatio getSy() {
+ return sy;
+ }
+
+ /**
+ * Sets the value of the sy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTRatio }
+ *
+ */
+ public void setSy(CTRatio value) {
+ this.sy = value;
+ }
+
+ public boolean isSetSy() {
+ return (this.sy!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTSchemeColor.java b/src/java/org/apache/poi/sl/draw/binding/CTSchemeColor.java
new file mode 100644
index 0000000..7febaad
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTSchemeColor.java
@@ -0,0 +1,183 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_SchemeColor complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_SchemeColor">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_SchemeColorVal" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_SchemeColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorTransform"
+})
+public class CTSchemeColor {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "lumMod", 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 = "blue", 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 = "shade", 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 = "satOff", 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 = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "red", 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 = "tint", 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 = "greenOff", 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 = "hueOff", 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 = "alphaMod", 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 = "lumOff", 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 = "gamma", 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 = "comp", 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 = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)
+ })
+ protected List<JAXBElement<?>> egColorTransform;
+ @XmlAttribute(name = "val", required = true)
+ protected STSchemeColorVal val;
+
+ /**
+ * Gets the value of the egColorTransform property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@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 CTPositivePercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTAngle }{@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 CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}
+ *
+ *
+ */
+ public List<JAXBElement<?>> getEGColorTransform() {
+ if (egColorTransform == null) {
+ egColorTransform = new ArrayList<JAXBElement<?>>();
+ }
+ return this.egColorTransform;
+ }
+
+ public boolean isSetEGColorTransform() {
+ return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));
+ }
+
+ public void unsetEGColorTransform() {
+ this.egColorTransform = null;
+ }
+
+ /**
+ * Gets the value of the val property.
+ *
+ * @return
+ * possible object is
+ * {@link STSchemeColorVal }
+ *
+ */
+ public STSchemeColorVal getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ * @param value
+ * allowed object is
+ * {@link STSchemeColorVal }
+ *
+ */
+ public void setVal(STSchemeColorVal value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return (this.val!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTSphereCoords.java b/src/java/org/apache/poi/sl/draw/binding/CTSphereCoords.java
new file mode 100644
index 0000000..a29d744
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTSphereCoords.java
@@ -0,0 +1,116 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_SphereCoords complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_SphereCoords">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="lat" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />
+ * <attribute name="lon" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />
+ * <attribute name="rev" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_SphereCoords", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTSphereCoords {
+
+ @XmlAttribute(name = "lat", required = true)
+ protected int lat;
+ @XmlAttribute(name = "lon", required = true)
+ protected int lon;
+ @XmlAttribute(name = "rev", required = true)
+ protected int rev;
+
+ /**
+ * Gets the value of the lat property.
+ *
+ */
+ public int getLat() {
+ return lat;
+ }
+
+ /**
+ * Sets the value of the lat property.
+ *
+ */
+ public void setLat(int value) {
+ this.lat = value;
+ }
+
+ public boolean isSetLat() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the lon property.
+ *
+ */
+ public int getLon() {
+ return lon;
+ }
+
+ /**
+ * Sets the value of the lon property.
+ *
+ */
+ public void setLon(int value) {
+ this.lon = value;
+ }
+
+ public boolean isSetLon() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the rev property.
+ *
+ */
+ public int getRev() {
+ return rev;
+ }
+
+ /**
+ * Sets the value of the rev property.
+ *
+ */
+ public void setRev(int value) {
+ this.rev = value;
+ }
+
+ public boolean isSetRev() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTSystemColor.java b/src/java/org/apache/poi/sl/draw/binding/CTSystemColor.java
new file mode 100644
index 0000000..adf0d16
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTSystemColor.java
@@ -0,0 +1,219 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.HexBinaryAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CT_SystemColor complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_SystemColor">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_SystemColorVal" />
+ * <attribute name="lastClr" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_HexBinary3" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_SystemColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "egColorTransform"
+})
+public class CTSystemColor {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "alphaMod", 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 = "lumMod", 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 = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "red", 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 = "greenMod", 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 = "hue", 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 = "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 = "greenOff", 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 = "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 = "alpha", 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 = "redOff", 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 = "hueMod", 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 = "hueOff", 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 = "gamma", 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 = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)
+ })
+ protected List<JAXBElement<?>> egColorTransform;
+ @XmlAttribute(name = "val", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String val;
+ @XmlAttribute(name = "lastClr")
+ @XmlJavaTypeAdapter(HexBinaryAdapter.class)
+ protected byte[] lastClr;
+
+ /**
+ * Gets the value of the egColorTransform property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEGColorTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@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 CTInverseTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@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 CTGrayscaleTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}
+ * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}
+ *
+ *
+ */
+ public List<JAXBElement<?>> getEGColorTransform() {
+ if (egColorTransform == null) {
+ egColorTransform = new ArrayList<JAXBElement<?>>();
+ }
+ return this.egColorTransform;
+ }
+
+ public boolean isSetEGColorTransform() {
+ return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));
+ }
+
+ public void unsetEGColorTransform() {
+ this.egColorTransform = null;
+ }
+
+ /**
+ * Gets the value of the val property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getVal() {
+ return val;
+ }
+
+ /**
+ * Sets the value of the val property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setVal(String value) {
+ this.val = value;
+ }
+
+ public boolean isSetVal() {
+ return (this.val!= null);
+ }
+
+ /**
+ * Gets the value of the lastClr property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public byte[] getLastClr() {
+ return lastClr;
+ }
+
+ /**
+ * Sets the value of the lastClr property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLastClr(byte[] value) {
+ this.lastClr = value;
+ }
+
+ public boolean isSetLastClr() {
+ return (this.lastClr!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTTransform2D.java b/src/java/org/apache/poi/sl/draw/binding/CTTransform2D.java
new file mode 100644
index 0000000..38ec50e
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTTransform2D.java
@@ -0,0 +1,232 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Transform2D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Transform2D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="off" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Point2D" minOccurs="0"/>
+ * <element name="ext" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PositiveSize2D" minOccurs="0"/>
+ * </sequence>
+ * <attribute name="rot" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Angle" default="0" />
+ * <attribute name="flipH" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * <attribute name="flipV" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Transform2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "off",
+ "ext"
+})
+public class CTTransform2D {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPoint2D off;
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+ protected CTPositiveSize2D ext;
+ @XmlAttribute(name = "rot")
+ protected Integer rot;
+ @XmlAttribute(name = "flipH")
+ protected Boolean flipH;
+ @XmlAttribute(name = "flipV")
+ protected Boolean flipV;
+
+ /**
+ * Gets the value of the off property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPoint2D }
+ *
+ */
+ public CTPoint2D getOff() {
+ return off;
+ }
+
+ /**
+ * Sets the value of the off property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPoint2D }
+ *
+ */
+ public void setOff(CTPoint2D value) {
+ this.off = value;
+ }
+
+ public boolean isSetOff() {
+ return (this.off!= null);
+ }
+
+ /**
+ * Gets the value of the ext property.
+ *
+ * @return
+ * possible object is
+ * {@link CTPositiveSize2D }
+ *
+ */
+ public CTPositiveSize2D getExt() {
+ return ext;
+ }
+
+ /**
+ * Sets the value of the ext property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTPositiveSize2D }
+ *
+ */
+ public void setExt(CTPositiveSize2D value) {
+ this.ext = value;
+ }
+
+ public boolean isSetExt() {
+ return (this.ext!= null);
+ }
+
+ /**
+ * Gets the value of the rot property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public int getRot() {
+ if (rot == null) {
+ return 0;
+ } else {
+ return rot;
+ }
+ }
+
+ /**
+ * Sets the value of the rot property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setRot(int value) {
+ this.rot = value;
+ }
+
+ public boolean isSetRot() {
+ return (this.rot!= null);
+ }
+
+ public void unsetRot() {
+ this.rot = null;
+ }
+
+ /**
+ * Gets the value of the flipH property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isFlipH() {
+ if (flipH == null) {
+ return false;
+ } else {
+ return flipH;
+ }
+ }
+
+ /**
+ * Sets the value of the flipH property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setFlipH(boolean value) {
+ this.flipH = value;
+ }
+
+ public boolean isSetFlipH() {
+ return (this.flipH!= null);
+ }
+
+ public void unsetFlipH() {
+ this.flipH = null;
+ }
+
+ /**
+ * Gets the value of the flipV property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isFlipV() {
+ if (flipV == null) {
+ return false;
+ } else {
+ return flipV;
+ }
+ }
+
+ /**
+ * Sets the value of the flipV property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setFlipV(boolean value) {
+ this.flipV = value;
+ }
+
+ public boolean isSetFlipV() {
+ return (this.flipV!= null);
+ }
+
+ public void unsetFlipV() {
+ this.flipV = null;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTVector3D.java b/src/java/org/apache/poi/sl/draw/binding/CTVector3D.java
new file mode 100644
index 0000000..03c5fb8
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTVector3D.java
@@ -0,0 +1,116 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CT_Vector3D complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_Vector3D">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <attribute name="dx" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * <attribute name="dy" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * <attribute name="dz" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_Vector3D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")
+public class CTVector3D {
+
+ @XmlAttribute(name = "dx", required = true)
+ protected long dx;
+ @XmlAttribute(name = "dy", required = true)
+ protected long dy;
+ @XmlAttribute(name = "dz", required = true)
+ protected long dz;
+
+ /**
+ * Gets the value of the dx property.
+ *
+ */
+ public long getDx() {
+ return dx;
+ }
+
+ /**
+ * Sets the value of the dx property.
+ *
+ */
+ public void setDx(long value) {
+ this.dx = value;
+ }
+
+ public boolean isSetDx() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the dy property.
+ *
+ */
+ public long getDy() {
+ return dy;
+ }
+
+ /**
+ * Sets the value of the dy property.
+ *
+ */
+ public void setDy(long value) {
+ this.dy = value;
+ }
+
+ public boolean isSetDy() {
+ return true;
+ }
+
+ /**
+ * Gets the value of the dz property.
+ *
+ */
+ public long getDz() {
+ return dz;
+ }
+
+ /**
+ * Sets the value of the dz property.
+ *
+ */
+ public void setDz(long value) {
+ this.dz = value;
+ }
+
+ public boolean isSetDz() {
+ return true;
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java b/src/java/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java
new file mode 100644
index 0000000..85c30ba
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java
@@ -0,0 +1,273 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for CT_XYAdjustHandle complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="CT_XYAdjustHandle">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>
+ * </sequence>
+ * <attribute name="gdRefX" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />
+ * <attribute name="minX" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="maxX" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="gdRefY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />
+ * <attribute name="minY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * <attribute name="maxY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CT_XYAdjustHandle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {
+ "pos"
+})
+public class CTXYAdjustHandle {
+
+ @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)
+ protected CTAdjPoint2D pos;
+ @XmlAttribute(name = "gdRefX")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String gdRefX;
+ @XmlAttribute(name = "minX")
+ protected String minX;
+ @XmlAttribute(name = "maxX")
+ protected String maxX;
+ @XmlAttribute(name = "gdRefY")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String gdRefY;
+ @XmlAttribute(name = "minY")
+ protected String minY;
+ @XmlAttribute(name = "maxY")
+ protected String maxY;
+
+ /**
+ * Gets the value of the pos property.
+ *
+ * @return
+ * possible object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public CTAdjPoint2D getPos() {
+ return pos;
+ }
+
+ /**
+ * Sets the value of the pos property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CTAdjPoint2D }
+ *
+ */
+ public void setPos(CTAdjPoint2D value) {
+ this.pos = value;
+ }
+
+ public boolean isSetPos() {
+ return (this.pos!= null);
+ }
+
+ /**
+ * Gets the value of the gdRefX property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGdRefX() {
+ return gdRefX;
+ }
+
+ /**
+ * Sets the value of the gdRefX property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGdRefX(String value) {
+ this.gdRefX = value;
+ }
+
+ public boolean isSetGdRefX() {
+ return (this.gdRefX!= null);
+ }
+
+ /**
+ * Gets the value of the minX property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMinX() {
+ return minX;
+ }
+
+ /**
+ * Sets the value of the minX property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMinX(String value) {
+ this.minX = value;
+ }
+
+ public boolean isSetMinX() {
+ return (this.minX!= null);
+ }
+
+ /**
+ * Gets the value of the maxX property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMaxX() {
+ return maxX;
+ }
+
+ /**
+ * Sets the value of the maxX property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMaxX(String value) {
+ this.maxX = value;
+ }
+
+ public boolean isSetMaxX() {
+ return (this.maxX!= null);
+ }
+
+ /**
+ * Gets the value of the gdRefY property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGdRefY() {
+ return gdRefY;
+ }
+
+ /**
+ * Sets the value of the gdRefY property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGdRefY(String value) {
+ this.gdRefY = value;
+ }
+
+ public boolean isSetGdRefY() {
+ return (this.gdRefY!= null);
+ }
+
+ /**
+ * Gets the value of the minY property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMinY() {
+ return minY;
+ }
+
+ /**
+ * Sets the value of the minY property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMinY(String value) {
+ this.minY = value;
+ }
+
+ public boolean isSetMinY() {
+ return (this.minY!= null);
+ }
+
+ /**
+ * Gets the value of the maxY property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMaxY() {
+ return maxY;
+ }
+
+ /**
+ * Sets the value of the maxY property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMaxY(String value) {
+ this.maxY = value;
+ }
+
+ public boolean isSetMaxY() {
+ return (this.maxY!= null);
+ }
+
+}
diff --git a/src/java/org/apache/poi/sl/draw/binding/ObjectFactory.java b/src/java/org/apache/poi/sl/draw/binding/ObjectFactory.java
new file mode 100644
index 0000000..8c6f9c2
--- /dev/null
+++ b/src/java/org/apache/poi/sl/draw/binding/ObjectFactory.java
@@ -0,0 +1,2023 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.sl.draw.binding;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the org.apache.poi.sl.draw.binding package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _CTSRgbColorAlpha_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "alpha");
+ private final static QName _CTSRgbColorLum_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "lum");
+ private final static QName _CTSRgbColorGamma_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "gamma");
+ private final static QName _CTSRgbColorInvGamma_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "invGamma");
+ private final static QName _CTSRgbColorAlphaMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "alphaMod");
+ private final static QName _CTSRgbColorRedOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "redOff");
+ private final static QName _CTSRgbColorAlphaOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "alphaOff");
+ private final static QName _CTSRgbColorGreenOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "greenOff");
+ private final static QName _CTSRgbColorHue_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "hue");
+ private final static QName _CTSRgbColorRedMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "redMod");
+ private final static QName _CTSRgbColorSatOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "satOff");
+ private final static QName _CTSRgbColorGreenMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "greenMod");
+ private final static QName _CTSRgbColorSat_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "sat");
+ private final static QName _CTSRgbColorBlue_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "blue");
+ private final static QName _CTSRgbColorRed_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "red");
+ private final static QName _CTSRgbColorSatMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "satMod");
+ private final static QName _CTSRgbColorBlueMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "blueMod");
+ private final static QName _CTSRgbColorHueOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "hueOff");
+ private final static QName _CTSRgbColorShade_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "shade");
+ private final static QName _CTSRgbColorLumMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "lumMod");
+ private final static QName _CTSRgbColorInv_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "inv");
+ private final static QName _CTSRgbColorLumOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "lumOff");
+ private final static QName _CTSRgbColorTint_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "tint");
+ private final static QName _CTSRgbColorGreen_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "green");
+ private final static QName _CTSRgbColorComp_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "comp");
+ private final static QName _CTSRgbColorBlueOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "blueOff");
+ private final static QName _CTSRgbColorHueMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "hueMod");
+ private final static QName _CTSRgbColorGray_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "gray");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.apache.poi.sl.draw.binding
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DQuadBezierTo }
+ *
+ */
+ public CTPath2DQuadBezierTo createCTPath2DQuadBezierTo() {
+ return new CTPath2DQuadBezierTo();
+ }
+
+ /**
+ * Create an instance of {@link CTCustomGeometry2D }
+ *
+ */
+ public CTCustomGeometry2D createCTCustomGeometry2D() {
+ return new CTCustomGeometry2D();
+ }
+
+ /**
+ * Create an instance of {@link CTPolarAdjustHandle }
+ *
+ */
+ public CTPolarAdjustHandle createCTPolarAdjustHandle() {
+ return new CTPolarAdjustHandle();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DClose }
+ *
+ */
+ public CTPath2DClose createCTPath2DClose() {
+ return new CTPath2DClose();
+ }
+
+ /**
+ * Create an instance of {@link CTPoint2D }
+ *
+ */
+ public CTPoint2D createCTPoint2D() {
+ return new CTPoint2D();
+ }
+
+ /**
+ * Create an instance of {@link CTInverseTransform }
+ *
+ */
+ public CTInverseTransform createCTInverseTransform() {
+ return new CTInverseTransform();
+ }
+
+ /**
+ * Create an instance of {@link CTPercentage }
+ *
+ */
+ public CTPercentage createCTPercentage() {
+ return new CTPercentage();
+ }
+
+ /**
+ * Create an instance of {@link CTSystemColor }
+ *
+ */
+ public CTSystemColor createCTSystemColor() {
+ return new CTSystemColor();
+ }
+
+ /**
+ * Create an instance of {@link CTConnectionSite }
+ *
+ */
+ public CTConnectionSite createCTConnectionSite() {
+ return new CTConnectionSite();
+ }
+
+ /**
+ * Create an instance of {@link CTColor }
+ *
+ */
+ public CTColor createCTColor() {
+ return new CTColor();
+ }
+
+ /**
+ * Create an instance of {@link CTPositiveFixedAngle }
+ *
+ */
+ public CTPositiveFixedAngle createCTPositiveFixedAngle() {
+ return new CTPositiveFixedAngle();
+ }
+
+ /**
+ * Create an instance of {@link CTFixedPercentage }
+ *
+ */
+ public CTFixedPercentage createCTFixedPercentage() {
+ return new CTFixedPercentage();
+ }
+
+ /**
+ * Create an instance of {@link CTHslColor }
+ *
+ */
+ public CTHslColor createCTHslColor() {
+ return new CTHslColor();
+ }
+
+ /**
+ * Create an instance of {@link CTConnection }
+ *
+ */
+ public CTConnection createCTConnection() {
+ return new CTConnection();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DLineTo }
+ *
+ */
+ public CTPath2DLineTo createCTPath2DLineTo() {
+ return new CTPath2DLineTo();
+ }
+
+ /**
+ * Create an instance of {@link CTTransform2D }
+ *
+ */
+ public CTTransform2D createCTTransform2D() {
+ return new CTTransform2D();
+ }
+
+ /**
+ * Create an instance of {@link CTPositivePercentage }
+ *
+ */
+ public CTPositivePercentage createCTPositivePercentage() {
+ return new CTPositivePercentage();
+ }
+
+ /**
+ * Create an instance of {@link CTVector3D }
+ *
+ */
+ public CTVector3D createCTVector3D() {
+ return new CTVector3D();
+ }
+
+ /**
+ * Create an instance of {@link CTSphereCoords }
+ *
+ */
+ public CTSphereCoords createCTSphereCoords() {
+ return new CTSphereCoords();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2D }
+ *
+ */
+ public CTPath2D createCTPath2D() {
+ return new CTPath2D();
+ }
+
+ /**
+ * Create an instance of {@link CTGroupTransform2D }
+ *
+ */
+ public CTGroupTransform2D createCTGroupTransform2D() {
+ return new CTGroupTransform2D();
+ }
+
+ /**
+ * Create an instance of {@link CTGrayscaleTransform }
+ *
+ */
+ public CTGrayscaleTransform createCTGrayscaleTransform() {
+ return new CTGrayscaleTransform();
+ }
+
+ /**
+ * Create an instance of {@link CTRatio }
+ *
+ */
+ public CTRatio createCTRatio() {
+ return new CTRatio();
+ }
+
+ /**
+ * Create an instance of {@link CTSRgbColor }
+ *
+ */
+ public CTSRgbColor createCTSRgbColor() {
+ return new CTSRgbColor();
+ }
+
+ /**
+ * Create an instance of {@link CTGeomGuideList }
+ *
+ */
+ public CTGeomGuideList createCTGeomGuideList() {
+ return new CTGeomGuideList();
+ }
+
+ /**
+ * Create an instance of {@link CTComplementTransform }
+ *
+ */
+ public CTComplementTransform createCTComplementTransform() {
+ return new CTComplementTransform();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DCubicBezierTo }
+ *
+ */
+ public CTPath2DCubicBezierTo createCTPath2DCubicBezierTo() {
+ return new CTPath2DCubicBezierTo();
+ }
+
+ /**
+ * Create an instance of {@link CTXYAdjustHandle }
+ *
+ */
+ public CTXYAdjustHandle createCTXYAdjustHandle() {
+ return new CTXYAdjustHandle();
+ }
+
+ /**
+ * Create an instance of {@link CTPresetColor }
+ *
+ */
+ public CTPresetColor createCTPresetColor() {
+ return new CTPresetColor();
+ }
+
+ /**
+ * Create an instance of {@link CTOfficeArtExtension }
+ *
+ */
+ public CTOfficeArtExtension createCTOfficeArtExtension() {
+ return new CTOfficeArtExtension();
+ }
+
+ /**
+ * Create an instance of {@link CTSchemeColor }
+ *
+ */
+ public CTSchemeColor createCTSchemeColor() {
+ return new CTSchemeColor();
+ }
+
+ /**
+ * Create an instance of {@link CTConnectionSiteList }
+ *
+ */
+ public CTConnectionSiteList createCTConnectionSiteList() {
+ return new CTConnectionSiteList();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DArcTo }
+ *
+ */
+ public CTPath2DArcTo createCTPath2DArcTo() {
+ return new CTPath2DArcTo();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DList }
+ *
+ */
+ public CTPath2DList createCTPath2DList() {
+ return new CTPath2DList();
+ }
+
+ /**
+ * Create an instance of {@link CTAngle }
+ *
+ */
+ public CTAngle createCTAngle() {
+ return new CTAngle();
+ }
+
+ /**
+ * Create an instance of {@link CTScale2D }
+ *
+ */
+ public CTScale2D createCTScale2D() {
+ return new CTScale2D();
+ }
+
+ /**
+ * Create an instance of {@link CTPositiveSize2D }
+ *
+ */
+ public CTPositiveSize2D createCTPositiveSize2D() {
+ return new CTPositiveSize2D();
+ }
+
+ /**
+ * Create an instance of {@link CTOfficeArtExtensionList }
+ *
+ */
+ public CTOfficeArtExtensionList createCTOfficeArtExtensionList() {
+ return new CTOfficeArtExtensionList();
+ }
+
+ /**
+ * Create an instance of {@link CTHyperlink }
+ *
+ */
+ public CTHyperlink createCTHyperlink() {
+ return new CTHyperlink();
+ }
+
+ /**
+ * Create an instance of {@link CTPoint3D }
+ *
+ */
+ public CTPoint3D createCTPoint3D() {
+ return new CTPoint3D();
+ }
+
+ /**
+ * Create an instance of {@link CTInverseGammaTransform }
+ *
+ */
+ public CTInverseGammaTransform createCTInverseGammaTransform() {
+ return new CTInverseGammaTransform();
+ }
+
+ /**
+ * Create an instance of {@link CTPositiveFixedPercentage }
+ *
+ */
+ public CTPositiveFixedPercentage createCTPositiveFixedPercentage() {
+ return new CTPositiveFixedPercentage();
+ }
+
+ /**
+ * Create an instance of {@link CTGeomRect }
+ *
+ */
+ public CTGeomRect createCTGeomRect() {
+ return new CTGeomRect();
+ }
+
+ /**
+ * Create an instance of {@link CTPresetTextShape }
+ *
+ */
+ public CTPresetTextShape createCTPresetTextShape() {
+ return new CTPresetTextShape();
+ }
+
+ /**
+ * Create an instance of {@link CTColorMRU }
+ *
+ */
+ public CTColorMRU createCTColorMRU() {
+ return new CTColorMRU();
+ }
+
+ /**
+ * Create an instance of {@link CTPath2DMoveTo }
+ *
+ */
+ public CTPath2DMoveTo createCTPath2DMoveTo() {
+ return new CTPath2DMoveTo();
+ }
+
+ /**
+ * Create an instance of {@link CTEmbeddedWAVAudioFile }
+ *
+ */
+ public CTEmbeddedWAVAudioFile createCTEmbeddedWAVAudioFile() {
+ return new CTEmbeddedWAVAudioFile();
+ }
+
+ /**
+ * Create an instance of {@link CTScRgbColor }
+ *
+ */
+ public CTScRgbColor createCTScRgbColor() {
+ return new CTScRgbColor();
+ }
+
+ /**
+ * Create an instance of {@link CTPresetGeometry2D }
+ *
+ */
+ public CTPresetGeometry2D createCTPresetGeometry2D() {
+ return new CTPresetGeometry2D();
+ }
+
+ /**
+ * Create an instance of {@link CTGeomGuide }
+ *
+ */
+ public CTGeomGuide createCTGeomGuide() {
+ return new CTGeomGuide();
+ }
+
+ /**
+ * Create an instance of {@link CTRelativeRect }
+ *
+ */
+ public CTRelativeRect createCTRelativeRect() {
+ return new CTRelativeRect();
+ }
+
+ /**
+ * Create an instance of {@link CTAdjustHandleList }
+ *
+ */
+ public CTAdjustHandleList createCTAdjustHandleList() {
+ return new CTAdjustHandleList();
+ }
+
+ /**
+ * Create an instance of {@link CTAdjPoint2D }
+ *
+ */
+ public CTAdjPoint2D createCTAdjPoint2D() {
+ return new CTAdjPoint2D();
+ }
+
+ /**
+ * Create an instance of {@link CTGammaTransform }
+ *
+ */
+ public CTGammaTransform createCTGammaTransform() {
+ return new CTGammaTransform();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTSRgbColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTSRgbColorAlpha(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorLum(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLum_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTSRgbColor.class)
+ public JAXBElement<CTGammaTransform> createCTSRgbColorGamma(CTGammaTransform value) {
+ return new JAXBElement<CTGammaTransform>(_CTSRgbColorGamma_QNAME, CTGammaTransform.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTSRgbColor.class)
+ public JAXBElement<CTInverseGammaTransform> createCTSRgbColorInvGamma(CTInverseGammaTransform value) {
+ return new JAXBElement<CTInverseGammaTransform>(_CTSRgbColorInvGamma_QNAME, CTInverseGammaTransform.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPositivePercentage> createCTSRgbColorAlphaMod(CTPositivePercentage value) {
+ return new JAXBElement<CTPositivePercentage>(_CTSRgbColorAlphaMod_QNAME, CTPositivePercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorRedOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRedOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTFixedPercentage> createCTSRgbColorAlphaOff(CTFixedPercentage value) {
+ return new JAXBElement<CTFixedPercentage>(_CTSRgbColorAlphaOff_QNAME, CTFixedPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorGreenOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreenOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTSRgbColor.class)
+ public JAXBElement<CTPositiveFixedAngle> createCTSRgbColorHue(CTPositiveFixedAngle value) {
+ return new JAXBElement<CTPositiveFixedAngle>(_CTSRgbColorHue_QNAME, CTPositiveFixedAngle.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorRedMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRedMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorSatOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSatOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorGreenMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreenMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorSat(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSat_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorBlue(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlue_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorRed(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRed_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorSatMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSatMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorBlueMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlueMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTAngle> createCTSRgbColorHueOff(CTAngle value) {
+ return new JAXBElement<CTAngle>(_CTSRgbColorHueOff_QNAME, CTAngle.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTSRgbColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTSRgbColorShade(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorShade_QNAME, CTPositiveFixedPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorLumMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLumMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTSRgbColor.class)
+ public JAXBElement<CTInverseTransform> createCTSRgbColorInv(CTInverseTransform value) {
+ return new JAXBElement<CTInverseTransform>(_CTSRgbColorInv_QNAME, CTInverseTransform.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorLumOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLumOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTSRgbColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTSRgbColorTint(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorTint_QNAME, CTPositiveFixedPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorGreen(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreen_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTSRgbColor.class)
+ public JAXBElement<CTComplementTransform> createCTSRgbColorComp(CTComplementTransform value) {
+ return new JAXBElement<CTComplementTransform>(_CTSRgbColorComp_QNAME, CTComplementTransform.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTSRgbColor.class)
+ public JAXBElement<CTPercentage> createCTSRgbColorBlueOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlueOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTSRgbColor.class)
+ public JAXBElement<CTPositivePercentage> createCTSRgbColorHueMod(CTPositivePercentage value) {
+ return new JAXBElement<CTPositivePercentage>(_CTSRgbColorHueMod_QNAME, CTPositivePercentage.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTSRgbColor.class)
+ public JAXBElement<CTGrayscaleTransform> createCTSRgbColorGray(CTGrayscaleTransform value) {
+ return new JAXBElement<CTGrayscaleTransform>(_CTSRgbColorGray_QNAME, CTGrayscaleTransform.class, CTSRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTSchemeColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTSchemeColorAlpha(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorLum(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLum_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTSchemeColor.class)
+ public JAXBElement<CTGammaTransform> createCTSchemeColorGamma(CTGammaTransform value) {
+ return new JAXBElement<CTGammaTransform>(_CTSRgbColorGamma_QNAME, CTGammaTransform.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTSchemeColor.class)
+ public JAXBElement<CTInverseGammaTransform> createCTSchemeColorInvGamma(CTInverseGammaTransform value) {
+ return new JAXBElement<CTInverseGammaTransform>(_CTSRgbColorInvGamma_QNAME, CTInverseGammaTransform.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPositivePercentage> createCTSchemeColorAlphaMod(CTPositivePercentage value) {
+ return new JAXBElement<CTPositivePercentage>(_CTSRgbColorAlphaMod_QNAME, CTPositivePercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorRedOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRedOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTFixedPercentage> createCTSchemeColorAlphaOff(CTFixedPercentage value) {
+ return new JAXBElement<CTFixedPercentage>(_CTSRgbColorAlphaOff_QNAME, CTFixedPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorGreenOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreenOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTSchemeColor.class)
+ public JAXBElement<CTPositiveFixedAngle> createCTSchemeColorHue(CTPositiveFixedAngle value) {
+ return new JAXBElement<CTPositiveFixedAngle>(_CTSRgbColorHue_QNAME, CTPositiveFixedAngle.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorRedMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRedMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorSatOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSatOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorGreenMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreenMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorSat(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSat_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorBlue(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlue_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorRed(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRed_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorSatMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSatMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorBlueMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlueMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTAngle> createCTSchemeColorHueOff(CTAngle value) {
+ return new JAXBElement<CTAngle>(_CTSRgbColorHueOff_QNAME, CTAngle.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTSchemeColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTSchemeColorShade(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorShade_QNAME, CTPositiveFixedPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorLumMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLumMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTSchemeColor.class)
+ public JAXBElement<CTInverseTransform> createCTSchemeColorInv(CTInverseTransform value) {
+ return new JAXBElement<CTInverseTransform>(_CTSRgbColorInv_QNAME, CTInverseTransform.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorLumOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLumOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTSchemeColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTSchemeColorTint(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorTint_QNAME, CTPositiveFixedPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorGreen(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreen_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTSchemeColor.class)
+ public JAXBElement<CTComplementTransform> createCTSchemeColorComp(CTComplementTransform value) {
+ return new JAXBElement<CTComplementTransform>(_CTSRgbColorComp_QNAME, CTComplementTransform.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTSchemeColor.class)
+ public JAXBElement<CTPercentage> createCTSchemeColorBlueOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlueOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTSchemeColor.class)
+ public JAXBElement<CTPositivePercentage> createCTSchemeColorHueMod(CTPositivePercentage value) {
+ return new JAXBElement<CTPositivePercentage>(_CTSRgbColorHueMod_QNAME, CTPositivePercentage.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTSchemeColor.class)
+ public JAXBElement<CTGrayscaleTransform> createCTSchemeColorGray(CTGrayscaleTransform value) {
+ return new JAXBElement<CTGrayscaleTransform>(_CTSRgbColorGray_QNAME, CTGrayscaleTransform.class, CTSchemeColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTScRgbColor.class)
+ public JAXBElement<CTPositiveFixedPercentage> createCTScRgbColorAlpha(CTPositiveFixedPercentage value) {
+ return new JAXBElement<CTPositiveFixedPercentage>(_CTSRgbColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorLum(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorLum_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTScRgbColor.class)
+ public JAXBElement<CTGammaTransform> createCTScRgbColorGamma(CTGammaTransform value) {
+ return new JAXBElement<CTGammaTransform>(_CTSRgbColorGamma_QNAME, CTGammaTransform.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTScRgbColor.class)
+ public JAXBElement<CTInverseGammaTransform> createCTScRgbColorInvGamma(CTInverseGammaTransform value) {
+ return new JAXBElement<CTInverseGammaTransform>(_CTSRgbColorInvGamma_QNAME, CTInverseGammaTransform.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTScRgbColor.class)
+ public JAXBElement<CTPositivePercentage> createCTScRgbColorAlphaMod(CTPositivePercentage value) {
+ return new JAXBElement<CTPositivePercentage>(_CTSRgbColorAlphaMod_QNAME, CTPositivePercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorRedOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRedOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTScRgbColor.class)
+ public JAXBElement<CTFixedPercentage> createCTScRgbColorAlphaOff(CTFixedPercentage value) {
+ return new JAXBElement<CTFixedPercentage>(_CTSRgbColorAlphaOff_QNAME, CTFixedPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorGreenOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreenOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTScRgbColor.class)
+ public JAXBElement<CTPositiveFixedAngle> createCTScRgbColorHue(CTPositiveFixedAngle value) {
+ return new JAXBElement<CTPositiveFixedAngle>(_CTSRgbColorHue_QNAME, CTPositiveFixedAngle.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorRedMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRedMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorSatOff(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSatOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorGreenMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorGreenMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorSat(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSat_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorBlue(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlue_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorRed(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorRed_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorSatMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorSatMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTScRgbColor.class)
+ public JAXBElement<CTPercentage> createCTScRgbColorBlueMod(CTPercentage value) {
+ return new JAXBElement<CTPercentage>(_CTSRgbColorBlueMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);
+ }
+
+ /**
+ * Create