You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2015/03/08 00:35:41 UTC
svn commit: r1664935 [1/4] - in /poi/branches/common_sl/src:
examples/src/org/apache/poi/hslf/examples/
ooxml/java/org/apache/poi/xslf/model/
ooxml/java/org/apache/poi/xslf/usermodel/
scratchpad/src/org/apache/poi/hslf/blip/ scratchpad/src/org/apache/p...
Author: kiwiwings
Date: Sat Mar 7 23:35:40 2015
New Revision: 1664935
URL: http://svn.apache.org/r1664935
Log:
committing intermediate results - xslf now compiles - hslf needs to be migrated to common interface - drawing is not yet tested
Added:
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/HSLFGroupShape.java
- copied, changed from r1662967, poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/HSLFShape.java
- copied, changed from r1662967, poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Shape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawBackground.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawPictureShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawShapeGroup.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawSlide.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/PictureShape.java
- copied, changed from r1662967, poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Picture.java
Removed:
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDecoration.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/LineEndLength.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/LineEndWidth.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Shape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/GradientPaint.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Picture.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/SolidPaint.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/TexturePaint.java
Modified:
poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java
poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/PropertyFetcher.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/TextBodyPropertyFetcher.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFAutoShape.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeContainer.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/blip/EMF.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/blip/WMF.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/ActiveXShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/AutoShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/AutoShapes.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Background.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Fill.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Hyperlink.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Line.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/MasterSheet.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/MovieShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/OLEShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Placeholder.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Polygon.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/ShapeFactory.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/ShapeOutline.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Sheet.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/SimpleShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Slide.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/Table.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/TableCell.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/TextBox.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/TextPainter.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/usermodel/RichTextRun.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/usermodel/SlideShow.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawAutoShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawFactory.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawFreeformShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawMasterSheet.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawPaint.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawSheet.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawSimpleShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextBox.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextParagraph.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/ImageRenderer.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/AutoShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Background.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/FreeformShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/MasterSheet.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Notes.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/PaintStyle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/PictureData.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/PlaceableShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Shadow.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Shape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeContainer.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeGroup.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Sheet.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/SimpleShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Slide.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/TextBox.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/TextParagraph.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/TextShape.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestOleEmbedding.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestPPGraphics2D.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestSheet.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTable.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestPictures.java
poi/branches/common_sl/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestTable.java
Modified: poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java (original)
+++ poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java Sat Mar 7 23:35:40 2015
@@ -419,7 +419,7 @@ public final class ApacheconEU08 {
Slide 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);
Modified: poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java (original)
+++ poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/DataExtraction.java Sat Mar 7 23:35:40 2015
@@ -60,7 +60,7 @@ public final class DataExtraction {
//extract embedded OLE documents
Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
- Shape[] shape = slide[i].getShapes();
+ HSLFShape[] shape = slide[i].getShapes();
for (int j = 0; j < shape.length; j++) {
if (shape[j] instanceof OLEShape) {
OLEShape ole = (OLEShape) shape[j];
@@ -102,7 +102,7 @@ public final class DataExtraction {
//Pictures
for (int i = 0; i < slide.length; i++) {
- Shape[] shape = slide[i].getShapes();
+ HSLFShape[] shape = slide[i].getShapes();
for (int j = 0; j < shape.length; j++) {
if (shape[j] instanceof Picture) {
Picture p = (Picture) shape[j];
Modified: poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java (original)
+++ poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Graphics2DDemo.java Sat Mar 7 23:35:40 2015
@@ -46,7 +46,7 @@ public final class Graphics2DDemo {
Slide 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);
Modified: poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java (original)
+++ poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/Hyperlinks.java Sat Mar 7 23:35:40 2015
@@ -21,7 +21,7 @@ import org.apache.poi.hslf.usermodel.Sli
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 org.apache.poi.hslf.model.HSLFShape;
import java.io.FileInputStream;
@@ -63,7 +63,7 @@ public final class Hyperlinks {
//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();
+ HSLFShape[] sh = slide[j].getShapes();
for (int k = 0; k < sh.length; k++) {
Hyperlink link = sh[k].getHyperlink();
if(link != null) {
Modified: poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java (original)
+++ poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/SoundFinder.java Sat Mar 7 23:35:40 2015
@@ -37,7 +37,7 @@ public class SoundFinder {
Slide[] slide = ppt.getSlides();
for (int i = 0; i < slide.length; i++) {
- Shape[] shape = slide[i].getShapes();
+ HSLFShape[] shape = slide[i].getShapes();
for (int j = 0; j < shape.length; j++) {
int soundRef = getSoundReference(shape[j]);
if(soundRef != -1) {
@@ -54,7 +54,7 @@ public class SoundFinder {
* @return 0-based reference to a sound in the sound collection
* or -1 if the shape is not associated with a sound
*/
- protected static int getSoundReference(Shape shape){
+ protected static int getSoundReference(HSLFShape shape){
int soundRef = -1;
//dive into the shape container and search for InteractiveInfoAtom
EscherContainerRecord spContainer = shape.getSpContainer();
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/ParagraphPropertyFetcher.java Sat Mar 7 23:35:40 2015
@@ -19,7 +19,7 @@
package org.apache.poi.xslf.model;
-import org.apache.poi.xslf.usermodel.XSLFSimpleShape;
+import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.xmlbeans.XmlObject;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties;
@@ -34,7 +34,7 @@ public abstract class ParagraphPropertyF
_level = level;
}
- public boolean fetch(XSLFSimpleShape shape) {
+ public boolean fetch(XSLFShape shape) {
XmlObject[] o = shape.getXmlObject().selectPath(
"declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' " +
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/PropertyFetcher.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/PropertyFetcher.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/PropertyFetcher.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/PropertyFetcher.java Sat Mar 7 23:35:40 2015
@@ -36,7 +36,7 @@ public abstract class PropertyFetcher<T>
* @param shape the shape being examined
* @return true if the desired property was fetched
*/
- public abstract boolean fetch(XSLFShape shape) ;
+ public abstract boolean fetch(XSLFShape shape);
public T getValue(){
return _value;
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/TextBodyPropertyFetcher.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/TextBodyPropertyFetcher.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/TextBodyPropertyFetcher.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/TextBodyPropertyFetcher.java Sat Mar 7 23:35:40 2015
@@ -19,7 +19,7 @@
package org.apache.poi.xslf.model;
-import org.apache.poi.xslf.usermodel.XSLFSimpleShape;
+import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.xmlbeans.XmlObject;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties;
@@ -32,7 +32,7 @@ import org.openxmlformats.schemas.drawin
*/
public abstract class TextBodyPropertyFetcher<T> extends PropertyFetcher<T> {
- public boolean fetch(XSLFSimpleShape shape) {
+ public boolean fetch(XSLFShape shape) {
XmlObject[] o = shape.getXmlObject().selectPath(
"declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' " +
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java Sat Mar 7 23:35:40 2015
@@ -496,11 +496,11 @@ public class XMLSlideShow extends POIXML
return null;
}
- public MasterSheet<XSLFShape>[] getMasterSheet() {
+ public XSLFSlideMaster[] getMasterSheet() {
return getSlideMasters();
}
- public MasterSheet<XSLFShape> createMasterSheet() throws IOException {
+ public MasterSheet createMasterSheet() throws IOException {
// TODO: implement!
throw new UnsupportedOperationException();
}
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFAutoShape.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFAutoShape.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFAutoShape.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFAutoShape.java Sat Mar 7 23:35:40 2015
@@ -36,7 +36,7 @@ import org.openxmlformats.schemas.presen
* @author Yegor Kozlov
*/
@Beta
-public class XSLFAutoShape extends XSLFTextShape implements AutoShape {
+public class XSLFAutoShape extends XSLFTextShape implements AutoShape<XSLFTextParagraph> {
/*package*/ XSLFAutoShape(CTShape shape, XSLFSheet sheet) {
super(shape, sheet);
@@ -72,7 +72,7 @@ public class XSLFAutoShape extends XSLFT
}
protected CTTextBody getTextBody(boolean create){
- CTShape shape = (CTShape) getXmlObject();
+ CTShape shape = (CTShape)getXmlObject();
CTTextBody txBody = shape.getTxBody();
if (txBody == null && create) {
txBody = shape.addNewTxBody();
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java Sat Mar 7 23:35:40 2015
@@ -20,9 +20,10 @@ package org.apache.poi.xslf.usermodel;
import java.awt.*;
import java.awt.geom.Rectangle2D;
-import org.apache.poi.sl.usermodel.Background;
-import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.*;
+import org.apache.poi.sl.draw.DrawPaint;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D;
import org.openxmlformats.schemas.presentationml.x2006.main.CTBackground;
/**
@@ -42,48 +43,14 @@ public class XSLFBackground extends XSLF
return new Rectangle2D.Double(0, 0, pg.getWidth(), pg.getHeight());
}
- public void draw(Graphics2D graphics) {
- Rectangle2D anchor = getAnchor();
-
- Paint fill = getPaint(graphics);
- if(fill != null) {
- graphics.setPaint(fill);
- graphics.fill(anchor);
- }
- }
-
- /**
- * @return the Paint object to fill
- */
- Paint getPaint(Graphics2D graphics){
- RenderableShape rShape = new RenderableShape(this);
-
- Paint fill = null;
- CTBackground bg = (CTBackground)getXmlObject();
- if(bg.isSetBgPr()){
- XmlObject spPr = bg.getBgPr();
- fill = rShape.getPaint(graphics, spPr, null);
- } else if (bg.isSetBgRef()){
- CTStyleMatrixReference bgRef= bg.getBgRef();
- CTSchemeColor phClr = bgRef.getSchemeClr();
-
- int idx = (int)bgRef.getIdx() - 1001;
- XSLFTheme theme = getSheet().getTheme();
- CTBackgroundFillStyleList bgStyles =
- theme.getXmlObject().getThemeElements().getFmtScheme().getBgFillStyleLst();
-
- XmlObject bgStyle = bgStyles.selectPath("*")[idx];
- fill = rShape.selectPaint(graphics, bgStyle, phClr, theme.getPackagePart());
- }
-
- return fill;
- }
-
@Override
public Color getFillColor(){
- Paint p = getPaint(null);
- if(p instanceof Color){
- return (Color)p;
+ FillStyle fs = getFillStyle();
+ PaintStyle ps = fs.getPaint();
+ if (ps instanceof SolidPaint) {
+ SolidPaint sp = (SolidPaint)ps;
+ ColorStyle cs = sp.getSolidColor();
+ return DrawPaint.applyColorTransform(cs);
}
return null;
}
@@ -95,7 +62,7 @@ public class XSLFBackground extends XSLF
* @return dummy CTTransform2D bean
*/
@Override
- CTTransform2D getXfrm() {
+ protected CTTransform2D getXfrm() {
return CTTransform2D.Factory.newInstance();
}
}
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java Sat Mar 7 23:35:40 2015
@@ -19,6 +19,10 @@
package org.apache.poi.xslf.usermodel;
+import java.awt.geom.Rectangle2D;
+
+import javax.xml.namespace.QName;
+
import org.apache.poi.POIXMLException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.PackagePart;
@@ -28,52 +32,24 @@ import org.apache.poi.util.Beta;
import org.apache.poi.util.Units;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGraphicalObjectData;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPoint2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D;
+import org.openxmlformats.schemas.drawingml.x2006.main.*;
import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;
-import javax.xml.namespace.QName;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-
/**
* @author Yegor Kozlov
*/
@Beta
public class XSLFGraphicFrame extends XSLFShape {
- private final CTGraphicalObjectFrame _shape;
- private final XSLFSheet _sheet;
-
/*package*/ XSLFGraphicFrame(CTGraphicalObjectFrame shape, XSLFSheet sheet){
- _shape = shape;
- _sheet = sheet;
- }
-
- public CTGraphicalObjectFrame getXmlObject(){
- return _shape;
- }
-
- public XSLFSheet getSheet(){
- return _sheet;
+ super(shape,sheet);
}
public ShapeType getShapeType(){
throw new UnsupportedOperationException();
}
- public int getShapeId(){
- return (int)_shape.getNvGraphicFramePr().getCNvPr().getId();
- }
-
- public String getShapeName(){
- return _shape.getNvGraphicFramePr().getCNvPr().getName();
- }
-
public Rectangle2D getAnchor(){
- CTTransform2D xfrm = _shape.getXfrm();
+ CTTransform2D xfrm = ((CTGraphicalObjectFrame)getXmlObject()).getXfrm();
CTPoint2D off = xfrm.getOff();
long x = off.getX();
long y = off.getY();
@@ -86,7 +62,7 @@ public class XSLFGraphicFrame extends XS
}
public void setAnchor(Rectangle2D anchor){
- CTTransform2D xfrm = _shape.getXfrm();
+ CTTransform2D xfrm = ((CTGraphicalObjectFrame)getXmlObject()).getXfrm();
CTPoint2D off = xfrm.isSetOff() ? xfrm.getOff() : xfrm.addNewOff();
long x = Units.toEMU(anchor.getX());
long y = Units.toEMU(anchor.getY());
@@ -157,15 +133,11 @@ public class XSLFGraphicFrame extends XS
return false;
}
- public void draw(Graphics2D graphics){
-
- }
-
@Override
void copy(XSLFShape sh){
super.copy(sh);
- CTGraphicalObjectData data = _shape.getGraphic().getGraphicData();
+ CTGraphicalObjectData data = ((CTGraphicalObjectFrame)getXmlObject()).getGraphic().getGraphicData();
String uri = data.getUri();
if(uri.equals("http://schemas.openxmlformats.org/drawingml/2006/diagram")){
copyDiagram(data, (XSLFGraphicFrame)sh);
@@ -187,22 +159,22 @@ public class XSLFGraphicFrame extends XS
String dm = c.getAttributeText(new QName("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "dm"));
PackageRelationship dmRel = sheet.getPackagePart().getRelationship(dm);
PackagePart dmPart = sheet.getPackagePart().getRelatedPart(dmRel);
- _sheet.importPart(dmRel, dmPart);
+ getSheet().importPart(dmRel, dmPart);
String lo = c.getAttributeText(new QName("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "lo"));
PackageRelationship loRel = sheet.getPackagePart().getRelationship(lo);
PackagePart loPart = sheet.getPackagePart().getRelatedPart(loRel);
- _sheet.importPart(loRel, loPart);
+ getSheet().importPart(loRel, loPart);
String qs = c.getAttributeText(new QName("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "qs"));
PackageRelationship qsRel = sheet.getPackagePart().getRelationship(qs);
PackagePart qsPart = sheet.getPackagePart().getRelatedPart(qsRel);
- _sheet.importPart(qsRel, qsPart);
+ getSheet().importPart(qsRel, qsPart);
String cs = c.getAttributeText(new QName("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "cs"));
PackageRelationship csRel = sheet.getPackagePart().getRelationship(cs);
PackagePart csPart = sheet.getPackagePart().getRelatedPart(csRel);
- _sheet.importPart(csRel, csPart);
+ getSheet().importPart(csRel, csPart);
} catch (InvalidFormatException e){
throw new POIXMLException(e);
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java Sat Mar 7 23:35:40 2015
@@ -29,15 +29,11 @@ import java.util.regex.Pattern;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.openxml4j.opc.TargetMode;
-import org.apache.poi.sl.usermodel.ShapeType;
+import org.apache.poi.sl.usermodel.*;
import org.apache.poi.util.Beta;
import org.apache.poi.util.Units;
import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupShapeProperties;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupTransform2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPoint2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
+import org.openxmlformats.schemas.drawingml.x2006.main.*;
import org.openxmlformats.schemas.presentationml.x2006.main.CTConnector;
import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShapeNonVisual;
@@ -49,29 +45,33 @@ import org.openxmlformats.schemas.presen
* @author Yegor Kozlov
*/
@Beta
-public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer {
- private final CTGroupShape _shape;
- private final XSLFSheet _sheet;
+public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer, PlaceableShape {
private final List<XSLFShape> _shapes;
- private final CTGroupShapeProperties _spPr;
+ private final CTGroupShapeProperties _grpSpPr;
private XSLFDrawing _drawing;
- /*package*/ XSLFGroupShape(CTGroupShape shape, XSLFSheet sheet){
- _shape = shape;
- _sheet = sheet;
-
- _shapes = _sheet.buildShapes(_shape);
- _spPr = shape.getGrpSpPr();
- }
-
- @Override
- public CTGroupShape getXmlObject(){
- return _shape;
+ protected XSLFGroupShape(CTGroupShape shape, XSLFSheet sheet){
+ super(shape,sheet);
+ _shapes = sheet.buildShapes(shape);
+ _grpSpPr = shape.getGrpSpPr();
+ }
+
+ protected CTGroupShapeProperties getGrpSpPr() {
+ return _grpSpPr;
+ }
+
+ protected CTGroupTransform2D getSafeXfrm() {
+ CTGroupTransform2D xfrm = getXfrm();
+ return (xfrm == null ? getGrpSpPr().addNewXfrm() : xfrm);
+ }
+
+ protected CTGroupTransform2D getXfrm() {
+ return getGrpSpPr().getXfrm();
}
@Override
public Rectangle2D getAnchor(){
- CTGroupTransform2D xfrm = _spPr.getXfrm();
+ CTGroupTransform2D xfrm = getXfrm();
CTPoint2D off = xfrm.getOff();
long x = off.getX();
long y = off.getY();
@@ -85,7 +85,7 @@ public class XSLFGroupShape extends XSLF
@Override
public void setAnchor(Rectangle2D anchor){
- CTGroupTransform2D xfrm = _spPr.isSetXfrm() ? _spPr.getXfrm() : _spPr.addNewXfrm();
+ CTGroupTransform2D xfrm = getSafeXfrm();
CTPoint2D off = xfrm.isSetOff() ? xfrm.getOff() : xfrm.addNewOff();
long x = Units.toEMU(anchor.getX());
long y = Units.toEMU(anchor.getY());
@@ -105,7 +105,7 @@ public class XSLFGroupShape extends XSLF
* behavior of shapes placed within a group.
*/
public Rectangle2D getInteriorAnchor(){
- CTGroupTransform2D xfrm = _spPr.getXfrm();
+ CTGroupTransform2D xfrm = getXfrm();
CTPoint2D off = xfrm.getChOff();
long x = off.getX();
long y = off.getY();
@@ -124,7 +124,7 @@ public class XSLFGroupShape extends XSLF
* behavior of shapes placed within a group.
*/
public void setInteriorAnchor(Rectangle2D anchor){
- CTGroupTransform2D xfrm = _spPr.isSetXfrm() ? _spPr.getXfrm() : _spPr.addNewXfrm();
+ CTGroupTransform2D xfrm = getSafeXfrm();
CTPoint2D off = xfrm.isSetChOff() ? xfrm.getChOff() : xfrm.addNewChOff();
long x = Units.toEMU(anchor.getX());
long y = Units.toEMU(anchor.getY());
@@ -159,28 +159,19 @@ public class XSLFGroupShape extends XSLF
*/
public boolean removeShape(XSLFShape xShape) {
XmlObject obj = xShape.getXmlObject();
+ CTGroupShape grpSp = (CTGroupShape)getXmlObject();
if(obj instanceof CTShape){
- _shape.getSpList().remove(obj);
+ grpSp.getSpList().remove(obj);
} else if (obj instanceof CTGroupShape){
- _shape.getGrpSpList().remove(obj);
+ grpSp.getGrpSpList().remove(obj);
} else if (obj instanceof CTConnector){
- _shape.getCxnSpList().remove(obj);
+ grpSp.getCxnSpList().remove(obj);
} else {
throw new IllegalArgumentException("Unsupported shape: " + xShape);
}
return _shapes.remove(xShape);
}
- @Override
- public String getShapeName(){
- return _shape.getNvGrpSpPr().getCNvPr().getName();
- }
-
- @Override
- public int getShapeId(){
- return (int)_shape.getNvGrpSpPr().getCNvPr().getId();
- }
-
/**
* @param shapeId 1-based shapeId
*/
@@ -200,7 +191,7 @@ public class XSLFGroupShape extends XSLF
// shape factory methods
private XSLFDrawing getDrawing(){
if(_drawing == null) {
- _drawing = new XSLFDrawing(_sheet, _shape);
+ _drawing = new XSLFDrawing(getSheet(), (CTGroupShape)getXmlObject());
}
return _drawing;
}
@@ -242,7 +233,7 @@ public class XSLFGroupShape extends XSLF
public XSLFPictureShape createPicture(int pictureIndex){
- List<PackagePart> pics = _sheet.getPackagePart().getPackage()
+ List<PackagePart> pics = getSheet().getPackagePart().getPackage()
.getPartsByName(Pattern.compile("/ppt/media/image" + (pictureIndex + 1) + ".*?"));
if(pics.size() == 0) {
@@ -251,7 +242,7 @@ public class XSLFGroupShape extends XSLF
PackagePart pic = pics.get(0);
- PackageRelationship rel = _sheet.getPackagePart().addRelationship(
+ PackageRelationship rel = getSheet().getPackagePart().addRelationship(
pic.getPartName(), TargetMode.INTERNAL, XSLFRelation.IMAGES.getRelation());
XSLFPictureShape sh = getDrawing().createPicture(rel.getId());
@@ -263,67 +254,35 @@ public class XSLFGroupShape extends XSLF
@Override
public void setFlipHorizontal(boolean flip){
- _spPr.getXfrm().setFlipH(flip);
+ getSafeXfrm().setFlipH(flip);
}
@Override
public void setFlipVertical(boolean flip){
- _spPr.getXfrm().setFlipV(flip);
+ getSafeXfrm().setFlipV(flip);
}
@Override
public boolean getFlipHorizontal(){
- return _spPr.getXfrm().getFlipH();
+ CTGroupTransform2D xfrm = getXfrm();
+ return (xfrm == null || !xfrm.isSetFlipH()) ? false : xfrm.getFlipH();
}
@Override
public boolean getFlipVertical(){
- return _spPr.getXfrm().getFlipV();
+ CTGroupTransform2D xfrm = getXfrm();
+ return (xfrm == null || !xfrm.isSetFlipV()) ? false : xfrm.getFlipV();
}
@Override
public void setRotation(double theta){
- _spPr.getXfrm().setRot((int)(theta*60000));
+ getSafeXfrm().setRot((int) (theta * 60000));
}
@Override
public double getRotation(){
- return (double)_spPr.getXfrm().getRot()/60000;
- }
-
- @Override
- public void draw(Graphics2D graphics){
-
- // the coordinate system of this group of shape
- Rectangle2D interior = getInteriorAnchor();
- // anchor of this group relative to the parent shape
- Rectangle2D exterior = getAnchor();
-
- AffineTransform tx = (AffineTransform)graphics.getRenderingHint(XSLFRenderingHint.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());
-
- for (XSLFShape shape : getShapes()) {
- // remember the initial transform and restore it after we are done with the drawing
- AffineTransform at = graphics.getTransform();
- graphics.setRenderingHint(XSLFRenderingHint.GSAVE, true);
-
- shape.applyTransform(graphics);
- shape.draw(graphics);
-
- // restore the coordinate system
- graphics.setTransform(at);
- graphics.setRenderingHint(XSLFRenderingHint.GRESTORE, true);
- }
-
- graphics.setRenderingHint(XSLFRenderingHint.GROUP_TRANSFORM, tx0);
-
+ CTGroupTransform2D xfrm = getXfrm();
+ return (xfrm == null || !xfrm.isSetRot()) ? 0 : (xfrm.getRot() / 60000.d);
}
@Override
@@ -350,13 +309,9 @@ public class XSLFGroupShape extends XSLF
}
}
- public ShapeType getShapeType(){
- return null;
- }
-
public void addShape(XSLFShape shape) {
throw new UnsupportedOperationException(
"Adding a shape from a different container is not supported -"
- + " create it from scratch witht XSLFGroupShape.create* methods");
+ + " create it from scratch with XSLFGroupShape.create* methods");
}
}
\ No newline at end of file
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureData.java Sat Mar 7 23:35:40 2015
@@ -20,12 +20,12 @@
package org.apache.poi.xslf.usermodel;
import java.io.IOException;
+import java.io.OutputStream;
-import org.apache.poi.POIXMLDocumentPart;
-import org.apache.poi.POIXMLException;
-import org.apache.poi.POIXMLRelation;
+import org.apache.poi.*;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.PictureData;
import org.apache.poi.util.Beta;
import org.apache.poi.util.IOUtils;
@@ -35,7 +35,7 @@ import org.apache.poi.util.IOUtils;
* @author Yegor Kozlov
*/
@Beta
-public final class XSLFPictureData extends POIXMLDocumentPart {
+public final class XSLFPictureData extends POIXMLDocumentPart implements PictureData {
/**
* Extended windows meta file
*/
@@ -215,4 +215,17 @@ public final class XSLFPictureData exten
protected void prepareForCommit() {
// do not clear the part here
}
+
+ public String getContentType() {
+ POIXMLRelation rel = RELATIONS[getPictureType()];
+ return (rel == null) ? null : rel.getContentType();
+ }
+
+ public void setData(byte[] data) throws IOException {
+ OutputStream os = getPackagePart().getOutputStream();
+ os.write(data);
+ os.close();
+ }
+
+
}
\ No newline at end of file
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java Sat Mar 7 23:35:40 2015
@@ -179,30 +179,13 @@ public class XSLFPictureShape extends XS
return id;
}
- public Insets getBlipClip(){
+ public Insets getClipping(){
CTPicture ct = (CTPicture)getXmlObject();
CTRelativeRect r = ct.getBlipFill().getSrcRect();
return (r == null) ? null : new Insets(r.getT(), r.getL(), r.getB(), r.getR());
}
- @Override
- public void drawContent(Graphics2D graphics) {
-
- XSLFPictureData data = getPictureData();
- if(data == null) return;
-
- XSLFImageRenderer renderer = (XSLFImageRenderer)graphics.getRenderingHint(XSLFRenderingHint.IMAGE_RENDERER);
- if(renderer == null) renderer = new XSLFImageRenderer();
-
- RenderableShape rShape = new RenderableShape(this);
- Rectangle2D anchor = rShape.getAnchor(graphics);
-
- Insets insets = getBlipClip();
-
- renderer.drawImage(graphics, data, anchor, insets);
- }
-
-
+ @SuppressWarnings("deprecation")
@Override
void copy(XSLFShape sh){
super.copy(sh);
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java Sat Mar 7 23:35:40 2015
@@ -17,22 +17,22 @@
package org.apache.poi.xslf.usermodel;
-import org.apache.poi.sl.usermodel.Shadow;
+import java.awt.Color;
+import java.awt.geom.Rectangle2D;
+
+import org.apache.poi.sl.draw.DrawPaint;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
import org.apache.poi.util.Units;
import org.openxmlformats.schemas.drawingml.x2006.main.CTOuterShadowEffect;
import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
-import java.awt.Color;
-import java.awt.Graphics2D;
-import java.awt.Shape;
-import java.awt.geom.Rectangle2D;
-
/**
* Represents a shadow of a shape. For now supports only outer shadows.
*
* @author Yegor Kozlov
*/
-public class XSLFShadow extends XSLFSimpleShape implements Shadow {
+public class XSLFShadow extends XSLFShape implements Shadow {
private XSLFSimpleShape _parent;
@@ -42,54 +42,15 @@ public class XSLFShadow extends XSLFSimp
_parent = parentShape;
}
-
- public void fill(Graphics2D graphics, Shape outline) {
-
- double shapeRotation = _parent.getRotation();
- if(_parent.getFlipVertical()){
- shapeRotation += 180;
- }
- double angle = getAngle() - shapeRotation;
- double dist = getDistance();
- double dx = dist * Math.cos(Math.toRadians(angle));
- double dy = dist * Math.sin(Math.toRadians(angle));
-
- graphics.translate(dx, dy);
-
- Color fillColor = getFillColor();
- if (fillColor != null) {
- graphics.setColor(fillColor);
- graphics.fill(outline);
- }
-
- graphics.translate(-dx, -dy);
- }
-
- public void draw(Graphics2D graphics, Shape outline) {
-
- double angle = getAngle();
- double dist = getDistance();
- double dx = dist * Math.cos(Math.toRadians(angle));
- double dy = dist * Math.sin(Math.toRadians(angle));
-
- graphics.translate(dx, dy);
-
- Color fillColor = getFillColor();
- if (fillColor != null) {
- graphics.setColor(fillColor);
- graphics.draw(outline);
- }
-
- graphics.translate(-dx, -dy);
+ @Override
+ public XSLFSimpleShape getShadowParent() {
+ return _parent;
}
-
- @Override
public Rectangle2D getAnchor(){
return _parent.getAnchor();
}
- @Override
public void setAnchor(Rectangle2D anchor){
throw new IllegalStateException("You can't set anchor of a shadow");
}
@@ -125,15 +86,25 @@ public class XSLFShadow extends XSLFSimp
* @return the color of this shadow.
* Depending whether the parent shape is filled or stroked, this color is used to fill or stroke this shadow
*/
- @Override
public Color getFillColor() {
+ SolidPaint ps = getFillStyle();
+ if (ps == TRANSPARENT_PAINT) return null;
+ Color col = DrawPaint.applyColorTransform(ps.getSolidColor());
+ return col;
+ }
+
+ @Override
+ public SolidPaint getFillStyle() {
XSLFTheme theme = getSheet().getTheme();
CTOuterShadowEffect ct = (CTOuterShadowEffect)getXmlObject();
- if(ct == null) {
- return null;
- } else {
- CTSchemeColor phClr = ct.getSchemeClr();
- return new XSLFColor(ct, theme, phClr).getColor();
- }
+ if(ct == null) return TRANSPARENT_PAINT;
+
+ CTSchemeColor phClr = ct.getSchemeClr();
+ final XSLFColor xc = new XSLFColor(ct, theme, phClr);
+ return new SolidPaint(){
+ public ColorStyle getSolidColor() {
+ return xc.getColorStyle();
+ }
+ };
}
}
\ No newline at end of file
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java Sat Mar 7 23:35:40 2015
@@ -20,7 +20,6 @@
package org.apache.poi.xslf.usermodel;
import java.awt.Color;
-import java.awt.geom.Rectangle2D;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
@@ -30,14 +29,16 @@ import org.apache.poi.openxml4j.exceptio
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
import org.apache.poi.sl.draw.DrawPaint;
-import org.apache.poi.sl.draw.geom.CustomGeometry;
import org.apache.poi.sl.usermodel.*;
-import org.apache.poi.util.*;
+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.Beta;
+import org.apache.poi.util.Internal;
import org.apache.poi.xslf.model.PropertyFetcher;
import org.apache.xmlbeans.XmlObject;
import org.openxmlformats.schemas.drawingml.x2006.main.*;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
-import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;
+import org.openxmlformats.schemas.presentationml.x2006.main.*;
/**
* Base super-class class for all shapes in PresentationML
@@ -46,16 +47,16 @@ import org.openxmlformats.schemas.presen
*/
@Beta
public abstract class XSLFShape implements Shape {
- protected final XmlObject _shape;
- protected final XSLFSheet _sheet;
- protected XSLFShapeContainer _parent;
+ private final XmlObject _shape;
+ private final XSLFSheet _sheet;
+ private XSLFShapeContainer _parent;
private CTShapeProperties _spPr;
private CTShapeStyle _spStyle;
private CTNonVisualDrawingProps _nvPr;
private CTPlaceholder _ph;
- private static final PaintStyle TRANSPARENT_PAINT = new SolidPaint() {
+ protected static final SolidPaint TRANSPARENT_PAINT = new SolidPaint() {
public ColorStyle getSolidColor() {
return new ColorStyle(){
public Color getColor() { return DrawPaint.NO_PAINT; }
@@ -68,24 +69,30 @@ public abstract class XSLFShape implemen
}
};
-
protected XSLFShape(XmlObject shape, XSLFSheet sheet) {
_shape = shape;
_sheet = sheet;
}
-
/**
* @return the xml bean holding this shape's data
*/
- public XmlObject getXmlObject() {
+ public final XmlObject getXmlObject() {
+ // it's final because the xslf inheritance hierarchy is not necessary the same as
+ // the (not existing) xmlbeans hierarchy and subclasses shouldn't narrow it's return value
return _shape;
}
+ public XSLFSheet getSheet() {
+ return _sheet;
+ }
+
/**
* @return human-readable name of this shape, e.g. "Rectange 3"
*/
- public abstract String getShapeName();
+ public String getShapeName(){
+ return getCNvPr().getName();
+ }
/**
* Returns a unique identifier for this shape within the current document.
@@ -98,55 +105,9 @@ public abstract class XSLFShape implemen
*
* @return unique id of this shape
*/
- public abstract int getShapeId();
-
- /**
- * Rotate this shape.
- * <p>
- * Positive angles are clockwise (i.e., towards the positive y axis);
- * negative angles are counter-clockwise (i.e., towards the negative y axis).
- * </p>
- *
- * @param theta the rotation angle in degrees.
- */
- public abstract void setRotation(double theta);
-
- /**
- * Rotation angle in degrees
- * <p>
- * Positive angles are clockwise (i.e., towards the positive y axis);
- * negative angles are counter-clockwise (i.e., towards the negative y axis).
- * </p>
- *
- * @return rotation angle in degrees
- */
- public abstract double getRotation();
-
- /**
- * @param flip whether the shape is horizontally flipped
- */
- public abstract void setFlipHorizontal(boolean flip);
-
- /**
- * Whether the shape is vertically flipped
- *
- * @param flip whether the shape is vertically flipped
- */
- public abstract void setFlipVertical(boolean flip);
-
- /**
- * Whether the shape is horizontally flipped
- *
- * @return whether the shape is horizontally flipped
- */
- public abstract boolean getFlipHorizontal();
-
- /**
- * Whether the shape is vertically flipped
- *
- * @return whether the shape is vertically flipped
- */
- public abstract boolean getFlipVertical();
+ public int getShapeId() {
+ return (int)getCNvPr().getId();
+ }
/**
* Set the contents of this shape to be a copy of the source shape.
@@ -162,7 +123,12 @@ public abstract class XSLFShape implemen
"Can't copy " + sh.getClass().getSimpleName() + " into " + getClass().getSimpleName());
}
- setAnchor(sh.getAnchor());
+ if (this instanceof PlaceableShape) {
+ PlaceableShape ps = (PlaceableShape)this;
+ ps.setAnchor(((PlaceableShape)sh).getAnchor());
+ }
+
+
}
public void setParent(XSLFShapeContainer parent) {
@@ -173,93 +139,148 @@ public abstract class XSLFShape implemen
return this._parent;
}
- public boolean isPlaceholder() {
- return false;
+ protected PaintStyle getFillPaint() {
+ PropertyFetcher<PaintStyle> fetcher = new PropertyFetcher<PaintStyle>() {
+ public boolean fetch(XSLFShape shape) {
+ XmlObject pr = null;
+ try {
+ pr = shape.getSpPr();
+ if (((CTShapeProperties)pr).isSetNoFill()) {
+ setValue(TRANSPARENT_PAINT);
+ return true;
+ }
+ } catch (IllegalStateException e) {}
+ // trying background properties now
+ if (pr == null) {
+ pr = shape.getBgPr();
+ }
+ if (pr == null) {
+ pr = shape.getGrpSpPr();
+ }
+ if (pr == null) {
+ setValue(TRANSPARENT_PAINT);
+ return true;
+ }
+
+ PaintStyle paint = null;
+ for (XmlObject obj : pr.selectPath("*")) {
+ paint = selectPaint(obj, null, getSheet().getPackagePart());
+ if (paint != null) break;
+ }
+
+ if (paint == null) return false;
+
+ setValue(paint);
+ return true;
+ }
+ };
+ fetchShapeProperty(fetcher);
+
+ PaintStyle paint = fetcher.getValue();
+ if (paint != null) return paint;
+
+ // fill color was not found, check if it is defined in the theme
+ // get a reference to a fill style within the style matrix.
+ CTStyleMatrixReference fillRef = null;
+ if (fillRef == null) {
+ CTShapeStyle style = getSpStyle();
+ if (style != null) fillRef = style.getFillRef();
+ }
+ if (fillRef == null) {
+ fillRef = getBgRef();
+ }
+ if (fillRef == null) {
+ return TRANSPARENT_PAINT;
+ }
+
+ // The idx attribute refers to the index of a fill style or
+ // background fill style within the presentation's style matrix, defined by the fmtScheme element.
+ // value of 0 or 1000 indicates no background,
+ // values 1-999 refer to the index of a fill style within the fillStyleLst element
+ // values 1001 and above refer to the index of a background fill style within the bgFillStyleLst element.
+ int idx = (int)fillRef.getIdx();
+ CTSchemeColor phClr = fillRef.getSchemeClr();
+ XSLFSheet sheet = getSheet();
+ XSLFTheme theme = sheet.getTheme();
+ XmlObject fillProps = null;
+ CTStyleMatrix matrix = theme.getXmlObject().getThemeElements().getFmtScheme();
+ if(idx >= 1 && idx <= 999){
+ fillProps = matrix.getFillStyleLst().selectPath("*")[idx - 1];
+ } else if (idx >= 1001 ){
+ fillProps = matrix.getBgFillStyleLst().selectPath("*")[idx - 1001];
+ }
+ if(fillProps != null) {
+ paint = selectPaint(fillProps, phClr, sheet.getPackagePart());
+ }
+
+ return paint == null ? TRANSPARENT_PAINT : paint;
}
- public StrokeStyle getStrokeStyle() {
- // TODO Auto-generated method stub
- return null;
+ protected CTBackgroundProperties getBgPr() {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:bgPr";
+ return selectProperty(CTBackgroundProperties.class, xquery);
+ }
+
+ protected CTStyleMatrixReference getBgRef() {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:bgRef";
+ return selectProperty(CTStyleMatrixReference.class, xquery);
+ }
+
+ protected CTGroupShapeProperties getGrpSpPr() {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:grpSpPr";
+ return selectProperty(CTGroupShapeProperties.class, xquery);
+ }
+
+ protected CTNonVisualDrawingProps getCNvPr() {
+ if (_nvPr == null) {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:cNvPr";
+ _nvPr = selectProperty(CTNonVisualDrawingProps.class, xquery);
+ }
+ return _nvPr;
}
- public CustomGeometry getGeometry() {
- // TODO Auto-generated method stub
- return null;
+ protected CTShapeProperties getSpPr() {
+ if (_spPr == null) {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:spPr";
+ _spPr = selectProperty(CTShapeProperties.class, xquery);
+ }
+ if (_spPr == null) {
+ throw new IllegalStateException("CTShapeProperties was not found.");
+ }
+ return _spPr;
}
- public ShapeType getShapeType() {
- // TODO Auto-generated method stub
- return null;
+ protected CTShapeStyle getSpStyle() {
+ if (_spStyle == null) {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:style";
+ _spStyle = selectProperty(CTShapeStyle.class, xquery);
+ }
+ return _spStyle;
}
- public XSLFSheet getSheet() {
- // TODO Auto-generated method stub
- return null;
+ protected CTPlaceholder getCTPlaceholder() {
+ if (_ph == null) {
+ String xquery = "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:nvPr/p:ph";
+ _ph = selectProperty(CTPlaceholder.class, xquery);
+ }
+ return _ph;
}
/**
- * fetch shape fill as a java.awt.Paint
- *
- * @return either Color or GradientPaint or TexturePaint or null
- */
- @Override
- public FillStyle getFillStyle() {
- return new FillStyle() {
- public PaintStyle getPaint() {
- PropertyFetcher<PaintStyle> fetcher = new PropertyFetcher<PaintStyle>() {
- public boolean fetch(XSLFShape shape) {
- CTShapeProperties spPr = shape.getSpPr();
- if (spPr.isSetNoFill()) {
- setValue(TRANSPARENT_PAINT);
- return true;
- }
-
- PaintStyle paint = null;
- for (XmlObject obj : spPr.selectPath("*")) {
- paint = selectPaint(obj, null, getSheet().getPackagePart());
- if (paint != null) break;
- }
-
- if (paint == null) return false;
-
- setValue(paint);
- return true;
- }
- };
- fetchShapeProperty(fetcher);
-
- PaintStyle paint = fetcher.getValue();
-
- if (paint != null) return paint;
-
- // fill color was not found, check if it is defined in the theme
- CTShapeStyle style = getSpStyle();
- if (style != null) {
- // get a reference to a fill style within the style matrix.
- CTStyleMatrixReference fillRef = style.getFillRef();
- // The idx attribute refers to the index of a fill style or
- // background fill style within the presentation's style matrix, defined by the fmtScheme element.
- // value of 0 or 1000 indicates no background,
- // values 1-999 refer to the index of a fill style within the fillStyleLst element
- // values 1001 and above refer to the index of a background fill style within the bgFillStyleLst element.
- int idx = (int)fillRef.getIdx();
- CTSchemeColor phClr = fillRef.getSchemeClr();
- XSLFSheet sheet = _sheet;
- XSLFTheme theme = sheet.getTheme();
- XmlObject fillProps = null;
- CTStyleMatrix matrix = theme.getXmlObject().getThemeElements().getFmtScheme();
- if(idx >= 1 && idx <= 999){
- fillProps = matrix.getFillStyleLst().selectPath("*")[idx - 1];
- } else if (idx >= 1001 ){
- fillProps = matrix.getBgFillStyleLst().selectPath("*")[idx - 1001];
- }
- if(fillProps != null) {
- paint = selectPaint(fillProps, phClr, sheet.getPackagePart());
- }
- }
- return paint == RenderableShape.NO_PAINT ? null : paint;
- }
- };
+ * As there's no xmlbeans hierarchy, but XSLF works with subclassing, not all
+ * child classes work with a {@link CTShape} object, but often contain the same
+ * properties. This method is the generalized form of selecting and casting those
+ * properties.
+ *
+ * @param resultClass
+ * @param xquery
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ protected <T extends XmlObject> T selectProperty(Class<T> resultClass, String xquery) {
+ XmlObject[] rs = getXmlObject().selectPath(xquery);
+ if (rs.length == 0) return null;
+ return (resultClass.isInstance(rs[0])) ? (T)rs[0] : null;
}
/**
@@ -320,108 +341,15 @@ public abstract class XSLFShape implemen
return ok;
}
- protected CTPlaceholder getCTPlaceholder() {
- if (_ph == null) {
- XmlObject[] obj = _shape.selectPath(
- "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:nvPr/p:ph");
- if (obj.length == 1) {
- _ph = (CTPlaceholder) obj[0];
- }
- }
- return _ph;
- }
-
- protected CTShapeStyle getSpStyle() {
- if (_spStyle == null) {
- for (XmlObject obj : _shape.selectPath("*")) {
- if (obj instanceof CTShapeStyle) {
- _spStyle = (CTShapeStyle) obj;
- }
- }
- }
- return _spStyle;
- }
-
- protected CTNonVisualDrawingProps getNvPr() {
- if (_nvPr == null) {
- XmlObject[] rs = _shape
- .selectPath("declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:cNvPr");
- if (rs.length != 0) {
- _nvPr = (CTNonVisualDrawingProps) rs[0];
- }
- }
- return _nvPr;
- }
-
- protected CTShapeProperties getSpPr() {
- if (_spPr == null) {
- for (XmlObject obj : _shape.selectPath("*")) {
- if (obj instanceof CTShapeProperties) {
- _spPr = (CTShapeProperties) obj;
- }
- }
- }
- if (_spPr == null) {
- throw new IllegalStateException("CTShapeProperties was not found.");
+ protected PaintStyle getPaint(XmlObject spPr, CTSchemeColor phClr) {
+ PaintStyle paint = null;
+ PackagePart pp = getSheet().getPackagePart();
+ for (XmlObject obj : spPr.selectPath("*")) {
+ paint = selectPaint(obj, phClr, pp);
+ if(paint != null) break;
}
- return _spPr;
- }
-
- CTTransform2D getXfrm() {
- PropertyFetcher<CTTransform2D> fetcher = new PropertyFetcher<CTTransform2D>() {
- public boolean fetch(XSLFShape shape) {
- CTShapeProperties pr = shape.getSpPr();
- if (pr.isSetXfrm()) {
- setValue(pr.getXfrm());
- return true;
- }
- return false;
- }
- };
- fetchShapeProperty(fetcher);
- return fetcher.getValue();
- }
-
- /**
- * @return the position of this shape within the drawing canvas.
- * The coordinates are expressed in points
- */
- public Rectangle2D getAnchor() {
- CTTransform2D xfrm = getXfrm();
- if (xfrm == null) return null;
-
- CTPoint2D off = xfrm.getOff();
- long x = off.getX();
- long y = off.getY();
- CTPositiveSize2D ext = xfrm.getExt();
- long cx = ext.getCx();
- long cy = ext.getCy();
- return new Rectangle2D.Double(
- Units.toPoints(x), Units.toPoints(y),
- Units.toPoints(cx), Units.toPoints(cy));
- }
-
- /**
- * @param anchor the position of this shape within the drawing canvas.
- * The coordinates are expressed in points
- */
- public void setAnchor(Rectangle2D anchor) {
- CTShapeProperties spPr = getSpPr();
- if (spPr == null) return;
-
- CTTransform2D xfrm = spPr.isSetXfrm() ? spPr.getXfrm() : spPr.addNewXfrm();
- CTPoint2D off = xfrm.isSetOff() ? xfrm.getOff() : xfrm.addNewOff();
- long x = Units.toEMU(anchor.getX());
- long y = Units.toEMU(anchor.getY());
- off.setX(x);
- off.setY(y);
- CTPositiveSize2D ext = xfrm.isSetExt() ? xfrm.getExt() : xfrm
- .addNewExt();
- long cx = Units.toEMU(anchor.getWidth());
- long cy = Units.toEMU(anchor.getHeight());
- ext.setCx(cx);
- ext.setCy(cy);
- }
+ return paint == null ? TRANSPARENT_PAINT : paint;
+ }
/**
* Convert shape fill into java.awt.Paint. The result is either Color or
@@ -444,122 +372,126 @@ public abstract class XSLFShape implemen
* @return the applied Paint or null if none was applied
*/
protected PaintStyle selectPaint(XmlObject obj, final CTSchemeColor phClr, final PackagePart parentPart) {
- final XSLFTheme theme = getSheet().getTheme();
-
if (obj instanceof CTNoFillProperties) {
return TRANSPARENT_PAINT;
+ } else if (obj instanceof CTSolidColorFillProperties) {
+ return selectPaint((CTSolidColorFillProperties)obj, phClr, parentPart);
+ } else if (obj instanceof CTBlipFillProperties) {
+ return selectPaint((CTBlipFillProperties)obj, phClr, parentPart);
+ } else if (obj instanceof CTGradientFillProperties) {
+ return selectPaint((CTGradientFillProperties) obj, phClr, parentPart);
+ } else {
+ return null;
}
-
- if (obj instanceof CTSolidColorFillProperties) {
- CTSolidColorFillProperties solidFill = (CTSolidColorFillProperties) obj;
- final XSLFColor c = new XSLFColor(solidFill, theme, phClr);
- return new SolidPaint() {
- public ColorStyle getSolidColor() {
- return c.getColorStyle();
- }
- };
- }
-
- if (obj instanceof CTBlipFillProperties) {
- CTBlipFillProperties blipFill = (CTBlipFillProperties)obj;
- final CTBlip blip = blipFill.getBlip();
- return new TexturePaint() {
- private PackagePart getPart() {
- try {
- String blipId = blip.getEmbed();
- PackageRelationship rel = parentPart.getRelationship(blipId);
- return parentPart.getRelatedPart(rel);
- } catch (InvalidFormatException e) {
- throw new RuntimeException(e);
- }
+ }
+
+ protected PaintStyle selectPaint(final CTSolidColorFillProperties solidFill, final CTSchemeColor phClr, final PackagePart parentPart) {
+ final XSLFTheme theme = getSheet().getTheme();
+ final XSLFColor c = new XSLFColor(solidFill, theme, phClr);
+ return new SolidPaint() {
+ public ColorStyle getSolidColor() {
+ return c.getColorStyle();
+ }
+ };
+ }
+
+ protected PaintStyle selectPaint(final CTBlipFillProperties blipFill, final CTSchemeColor phClr, final PackagePart parentPart) {
+ final CTBlip blip = blipFill.getBlip();
+ return new TexturePaint() {
+ private PackagePart getPart() {
+ try {
+ String blipId = blip.getEmbed();
+ PackageRelationship rel = parentPart.getRelationship(blipId);
+ return parentPart.getRelatedPart(rel);
+ } catch (InvalidFormatException e) {
+ throw new RuntimeException(e);
}
-
- public InputStream getImageData() {
- try {
- return getPart().getInputStream();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ }
+
+ public InputStream getImageData() {
+ try {
+ return getPart().getInputStream();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
+ }
- public String getContentType() {
- /* TOOD: map content-type */
- return getPart().getContentType();
- }
+ public String getContentType() {
+ /* TOOD: map content-type */
+ return getPart().getContentType();
+ }
- public int getAlpha() {
- return (blip.sizeOfAlphaModFixArray() > 0)
- ? blip.getAlphaModFixArray(0).getAmt()
- : 0;
- }
- };
- }
-
- if (obj instanceof CTGradientFillProperties) {
- final CTGradientFillProperties gradFill = (CTGradientFillProperties) obj;
+ public int getAlpha() {
+ return (blip.sizeOfAlphaModFixArray() > 0)
+ ? blip.getAlphaModFixArray(0).getAmt()
+ : 0;
+ }
+ };
+ }
+
+ protected PaintStyle selectPaint(final CTGradientFillProperties gradFill, final CTSchemeColor phClr, final PackagePart parentPart) {
- @SuppressWarnings("deprecation")
- final CTGradientStop[] gs = gradFill.getGsLst().getGsArray();
+ @SuppressWarnings("deprecation")
+ final CTGradientStop[] gs = gradFill.getGsLst().getGsArray();
- Arrays.sort(gs, new Comparator<CTGradientStop>() {
- public int compare(CTGradientStop o1, CTGradientStop o2) {
- Integer pos1 = o1.getPos();
- Integer pos2 = o2.getPos();
- return pos1.compareTo(pos2);
- }
- });
+ Arrays.sort(gs, new Comparator<CTGradientStop>() {
+ public int compare(CTGradientStop o1, CTGradientStop o2) {
+ Integer pos1 = o1.getPos();
+ Integer pos2 = o2.getPos();
+ return pos1.compareTo(pos2);
+ }
+ });
- final ColorStyle cs[] = new ColorStyle[gs.length];
- final float fractions[] = new float[gs.length];
-
- int i=0;
- for (CTGradientStop cgs : gs) {
- cs[i] = new XSLFColor(cgs, theme, phClr).getColorStyle();
- fractions[i] = cgs.getPos() / 100000.f;
+ final ColorStyle cs[] = new ColorStyle[gs.length];
+ final float fractions[] = new float[gs.length];
+ XSLFTheme theme = getSheet().getTheme();
+
+ int i=0;
+ for (CTGradientStop cgs : gs) {
+ cs[i] = new XSLFColor(cgs, theme, phClr).getColorStyle();
+ fractions[i] = cgs.getPos() / 100000.f;
+ }
+
+ return new GradientPaint() {
+
+ public double getGradientAngle() {
+ return (gradFill.isSetLin())
+ ? gradFill.getLin().getAng() / 60000.d
+ : 0;
}
-
- return new GradientPaint() {
- public double getGradientAngle() {
- return (gradFill.isSetLin())
- ? gradFill.getLin().getAng() / 60000.d
- : 0;
- }
+ public ColorStyle[] getGradientColors() {
+ return cs;
+ }
- public ColorStyle[] getGradientColors() {
- return cs;
- }
+ public float[] getGradientFractions() {
+ return fractions;
+ }
- public float[] getGradientFractions() {
- return fractions;
- }
+ public boolean isRotatedWithShape() {
+ // TODO: is this correct???
+ return (gradFill.isSetRotWithShape() || !gradFill.getRotWithShape());
+ }
- public boolean isRotatedWithShape() {
- // TODO: is this correct???
- return (gradFill.isSetRotWithShape() || !gradFill.getRotWithShape());
+ public GradientType getGradientType() {
+ if (gradFill.isSetLin()) {
+ return GradientType.linear;
}
-
- public GradientType getGradientType() {
- if (gradFill.isSetLin()) {
- return GradientType.linear;
- }
-
- if (gradFill.isSetPath()) {
- /* TODO: handle rect path */
- STPathShadeType.Enum ps = gradFill.getPath().getPath();
- if (ps == STPathShadeType.CIRCLE) {
- return GradientType.circular;
- } else if (ps == STPathShadeType.SHAPE) {
- return GradientType.shape;
- }
+
+ if (gradFill.isSetPath()) {
+ /* TODO: handle rect path */
+ STPathShadeType.Enum ps = gradFill.getPath().getPath();
+ if (ps == STPathShadeType.CIRCLE) {
+ return GradientType.circular;
+ } else if (ps == STPathShadeType.SHAPE) {
+ return GradientType.shape;
}
-
- return GradientType.linear;
}
- };
- }
-
- return TRANSPARENT_PAINT;
+
+ return GradientType.linear;
+ }
+ };
}
+
}
\ No newline at end of file
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeContainer.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeContainer.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeContainer.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeContainer.java Sat Mar 7 23:35:40 2015
@@ -24,7 +24,7 @@ import org.apache.poi.sl.usermodel.Shape
/**
* Common interface for shape containers, e.g. sheets or groups of shapes
*/
-public interface XSLFShapeContainer extends ShapeContainer {
+public interface XSLFShapeContainer extends ShapeContainer<XSLFShape> {
/**
* create a new shape with a predefined geometry and add it to this shape container
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java?rev=1664935&r1=1664934&r2=1664935&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java Sat Mar 7 23:35:40 2015
@@ -16,47 +16,28 @@
==================================================================== */
package org.apache.poi.xslf.usermodel;
+import java.awt.Graphics2D;
+import java.io.*;
+import java.util.*;
+import java.util.regex.Pattern;
+
+import javax.xml.namespace.QName;
+
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.POIXMLException;
-import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.openxml4j.opc.PackagePart;
-import org.apache.poi.openxml4j.opc.PackageRelationship;
-import org.apache.poi.openxml4j.opc.TargetMode;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.sl.usermodel.MasterSheet;
+import org.apache.poi.openxml4j.opc.*;
+import org.apache.poi.sl.draw.DrawFactory;
+import org.apache.poi.sl.draw.Drawable;
import org.apache.poi.sl.usermodel.Sheet;
-import org.apache.poi.util.Beta;
-import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.Internal;
+import org.apache.poi.util.*;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import org.openxmlformats.schemas.officeDocument.x2006.relationships.STRelationshipId;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTCommonSlideData;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTConnector;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPicture;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
-
-import com.sun.org.apache.xml.internal.utils.UnImplNode;
-
-import javax.xml.namespace.QName;
-
-import java.awt.Graphics2D;
-import java.awt.geom.AffineTransform;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
+import org.openxmlformats.schemas.presentationml.x2006.main.*;
@Beta
-public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer, Sheet {
+public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer, Sheet<XSLFShape> {
private XSLFCommonSlideData _commonSlideData;
private XSLFDrawing _drawing;
private List<XSLFShape> _shapes;
@@ -498,31 +479,9 @@ public abstract class XSLFSheet extends
* @param graphics
*/
public void draw(Graphics2D graphics){
- XSLFSheet master = (XSLFSheet)getMasterSheet();
- if(getFollowMasterGraphics() && master != null) master.draw(graphics);
-
- graphics.setRenderingHint(XSLFRenderingHint.GROUP_TRANSFORM, new AffineTransform());
- for(XSLFShape shape : getShapeList()) {
- 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(XSLFRenderingHint.GSAVE, true);
-
- // apply rotation and flipping
- shape.applyTransform(graphics);
- // draw stuff
- shape.draw(graphics);
-
- // restore the coordinate system
- graphics.setTransform(at);
-
- graphics.setRenderingHint(XSLFRenderingHint.GRESTORE, true);
-
- }
+ DrawFactory drawFact = DrawFactory.getInstance(graphics);
+ Drawable draw = drawFact.getDrawable(this);
+ draw.draw(graphics);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org