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/02/21 11:56:06 UTC
svn commit: r1661322 [1/14] - in /poi/branches/common_sl: ./
src/examples/src/org/apache/poi/hslf/examples/
src/examples/src/org/apache/poi/xslf/usermodel/
src/java/org/apache/poi/common/usermodel/
src/java/org/apache/poi/hssf/usermodel/ src/java/org/a...
Author: kiwiwings
Date: Sat Feb 21 10:56:03 2015
New Revision: 1661322
URL: http://svn.apache.org/r1661322
Log:
initial commit - still lots of errors, but I need to switch to a clean trunk for releasing and testing
Added:
poi/branches/common_sl/src/resources/scratchpad/org/apache/poi/sl/
poi/branches/common_sl/src/resources/scratchpad/org/apache/poi/sl/draw/
poi/branches/common_sl/src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/
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/DrawFontManager.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/DrawTextFragment.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/Drawable.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/draw/binding/
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAngle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColorMRU.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTComplementTransform.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnection.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSite.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTFixedPercentage.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGammaTransform.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuide.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuideList.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomRect.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHslColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHyperlink.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseTransform.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DClose.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DList.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPercentage.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint3D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositivePercentage.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetTextShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRatio.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRelativeRect.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSRgbColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScRgbColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScale2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSchemeColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSphereCoords.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSystemColor.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTTransform2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTVector3D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/ObjectFactory.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STBlackWhiteMode.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STPathFillMode.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STPresetColorVal.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STRectAlignment.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STSchemeColorVal.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STShapeType.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/binding/STTextShapeType.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/AbsExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/AddDivideExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/AddSubtractExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/AdjustValue.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcTanExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcToCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/ClosePathCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/Context.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/CosExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/CosineArcTanExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/CurveToCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/CustomGeometry.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/Expression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/ExpressionParser.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/Formula.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/Guide.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/IAdjustableShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/IfElseExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/LineToCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/LiteralValueExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/MaxExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/MinExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/ModExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/MoveToCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/MultiplyDivideExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/Outline.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/Path.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/PathCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/PinExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/PresetGeometries.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/QuadToCommand.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/SinArcTanExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/SinExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/SqrtExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/draw/geom/TanExpression.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/ColorStyle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/FillStyle.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/GradientPaint.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Insets2D.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/LineDecoration.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/PaintStyle.java
- copied, changed from r1661318, poi/trunk/src/scratchpad/src/org/apache/poi/sl/usermodel/Fill.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/ShapeType.java
- copied, changed from r1647885, poi/trunk/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeTypes.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/StrokeStyle.java
- copied, changed from r1647885, poi/trunk/src/scratchpad/src/org/apache/poi/sl/usermodel/LineStyle.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/src/org/apache/poi/sl/usermodel/TexturePaint.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/VerticalAlignment.java
- copied, changed from r1661320, poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/VerticalAlignment.java
poi/branches/common_sl/src/types/definitions/dml-shapeGeometry.xjb
Removed:
poi/branches/common_sl/src/java/org/apache/poi/common/usermodel/Fill.java
poi/branches/common_sl/src/java/org/apache/poi/common/usermodel/LineStyle.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/model/geom/
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/TextAlign.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/TextAutofit.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/TextCap.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/TextDirection.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/TextFragment.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/VerticalAlignment.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeType.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/model/ShapeTypes.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/Fill.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/LineStyle.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeTypes.java
Modified:
poi/branches/common_sl/build.xml
poi/branches/common_sl/src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
poi/branches/common_sl/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
poi/branches/common_sl/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
poi/branches/common_sl/src/java/org/apache/poi/util/Units.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/usermodel/RenderableShape.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/XSLFColor.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/XSLFNotes.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.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/XSLFTextRun.java
poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
poi/branches/common_sl/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java
poi/branches/common_sl/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java
poi/branches/common_sl/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java
poi/branches/common_sl/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
poi/branches/common_sl/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextParagraph.java
poi/branches/common_sl/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.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/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/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/Shape.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/ShapeGroup.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/TextShape.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/hslf/record/PPDrawing.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/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/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/SlideShow.java
poi/branches/common_sl/src/scratchpad/src/org/apache/poi/sl/usermodel/TextRun.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/TestShapes.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
Modified: poi/branches/common_sl/build.xml
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/build.xml?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/build.xml (original)
+++ poi/branches/common_sl/build.xml Sat Feb 21 10:56:03 2015
@@ -103,6 +103,12 @@ under the License.
<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"/>
@@ -371,6 +377,7 @@ under the License.
<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}"/>
@@ -690,7 +697,38 @@ under the License.
</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="-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="${scratchpad.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}"
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -20,6 +20,7 @@ package org.apache.poi.hslf.examples;
import org.apache.poi.hslf.usermodel.*;
import org.apache.poi.hslf.model.*;
import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.sl.usermodel.ShapeType;
import java.io.IOException;
import java.io.FileOutputStream;
@@ -312,7 +313,7 @@ public final class ApacheconEU08 {
box3.setAnchor(new Rectangle(473, 243, 170, 170));
slide.addShape(box3);
- AutoShape box4 = new AutoShape(ShapeTypes.Arrow);
+ AutoShape box4 = new AutoShape(ShapeType.RIGHT_ARROW);
box4.getFill().setForegroundColor(new Color(187, 224, 227));
box4.setLineWidth(0.75);
box4.setLineColor(Color.black);
Modified: poi/branches/common_sl/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java (original)
+++ poi/branches/common_sl/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java Sat Feb 21 10:56:03 2015
@@ -24,6 +24,8 @@ import java.awt.geom.Rectangle2D;
import java.io.FileOutputStream;
import java.io.IOException;
+import org.apache.poi.sl.usermodel.TextAlign;
+
/**
* PPTX Tables
*
Modified: poi/branches/common_sl/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java (original)
+++ poi/branches/common_sl/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java Sat Feb 21 10:56:03 2015
@@ -519,7 +519,7 @@ public final class HSSFPatriarch impleme
}
public Chart createChart(ClientAnchor anchor) {
- throw new RuntimeException("NotImplemented");
+ throw new UnsupportedOperationException("NotImplemented");
}
Modified: poi/branches/common_sl/src/java/org/apache/poi/util/Units.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/java/org/apache/poi/util/Units.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/java/org/apache/poi/util/Units.java (original)
+++ poi/branches/common_sl/src/java/org/apache/poi/util/Units.java Sat Feb 21 10:56:03 2015
@@ -42,17 +42,32 @@ public class Units {
}
/**
- * Converts a value of type FixedPoint to a decimal number
+ * Converts a value of type FixedPoint to a floating point
*
* @param fixedPoint
- * @return decimal number
+ * @return floating point (double)
*
* @see <a href="http://msdn.microsoft.com/en-us/library/dd910765(v=office.12).aspx">[MS-OSHARED] - 2.2.1.6 FixedPoint</a>
*/
- public static double fixedPointToDecimal(int fixedPoint) {
+ public static double fixedPointToDouble(int fixedPoint) {
int i = (fixedPoint >> 16);
int f = (fixedPoint >> 0) & 0xFFFF;
- double decimal = (i + f/65536.0);
- return decimal;
+ double floatPoint = (i + f/65536d);
+ return floatPoint;
+ }
+
+ /**
+ * Converts a value of type floating point to a FixedPoint
+ *
+ * @param floatPoint
+ * @return fixedPoint
+ *
+ * @see <a href="http://msdn.microsoft.com/en-us/library/dd910765(v=office.12).aspx">[MS-OSHARED] - 2.2.1.6 FixedPoint</a>
+ */
+ public static int doubleToFixedPoint(double floatPoint) {
+ int i = (int)Math.floor(floatPoint);
+ int f = (int)((floatPoint % 1d)*65536d);
+ int fixedPoint = (i << 16) | (f & 0xFFFF);
+ return fixedPoint;
}
}
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -19,8 +19,8 @@
package org.apache.poi.xslf.model;
-import org.apache.poi.xslf.usermodel.XSLFSimpleShape;
import org.apache.poi.util.Internal;
+import org.apache.poi.xslf.usermodel.XSLFShape;
/**
* Used internally to navigate the PresentationML text style hierarchy and fetch properties
@@ -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(XSLFSimpleShape shape) ;
+ public abstract boolean fetch(XSLFShape shape) ;
public T getValue(){
return _value;
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java Sat Feb 21 10:56:03 2015
@@ -40,6 +40,8 @@ import java.util.Comparator;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.LineCap;
+import org.apache.poi.sl.usermodel.LineDash;
import org.apache.poi.util.Internal;
import org.apache.poi.util.Units;
import org.apache.poi.xslf.model.PropertyFetcher;
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -20,7 +20,11 @@ import java.awt.Dimension;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.regex.Pattern;
import org.apache.poi.POIXMLDocument;
@@ -32,6 +36,9 @@ import org.apache.poi.openxml4j.opc.OPCP
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackagePartName;
import org.apache.poi.openxml4j.opc.TargetMode;
+import org.apache.poi.sl.usermodel.MasterSheet;
+import org.apache.poi.sl.usermodel.Resources;
+import org.apache.poi.sl.usermodel.SlideShow;
import org.apache.poi.util.Beta;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal;
@@ -53,6 +60,10 @@ import org.openxmlformats.schemas.presen
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideSize;
import org.openxmlformats.schemas.presentationml.x2006.main.PresentationDocument;
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;
+
+import com.sun.org.apache.xml.internal.utils.UnImplNode;
+
/**
* High level representation of a ooxml slideshow.
* This is the first object most users will construct whether
@@ -60,7 +71,7 @@ import org.openxmlformats.schemas.presen
* top level object for creating new slides/etc.
*/
@Beta
-public class XMLSlideShow extends POIXMLDocument {
+public class XMLSlideShow extends POIXMLDocument implements SlideShow {
private static POILogger _logger = POILogFactory.getLogger(XMLSlideShow.class);
private CTPresentation _presentation;
@@ -437,7 +448,7 @@ public class XMLSlideShow extends POIXM
*/
public int addPicture(byte[] pictureData, int format) {
XSLFPictureData img = findPictureData(pictureData);
- POIXMLRelation relDesc = XSLFPictureData.RELATIONS[format];
+ // POIXMLRelation relDesc = XSLFPictureData.RELATIONS[format];
if(img == null) {
int imageNumber = _pictures.size();
@@ -485,4 +496,17 @@ public class XMLSlideShow extends POIXM
return null;
}
+ public MasterSheet<XSLFShape>[] getMasterSheet() {
+ return getSlideMasters();
+ }
+
+ public MasterSheet<XSLFShape> createMasterSheet() throws IOException {
+ // TODO: implement!
+ throw new UnsupportedOperationException();
+ }
+
+ public Resources getResources() {
+ // 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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -19,6 +19,7 @@
package org.apache.poi.xslf.usermodel;
+import org.apache.poi.sl.usermodel.AutoShape;
import org.apache.poi.util.Beta;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D;
@@ -35,7 +36,7 @@ import org.openxmlformats.schemas.presen
* @author Yegor Kozlov
*/
@Beta
-public class XSLFAutoShape extends XSLFTextShape {
+public class XSLFAutoShape extends XSLFTextShape implements AutoShape {
/*package*/ XSLFAutoShape(CTShape shape, XSLFSheet sheet) {
super(shape, sheet);
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -17,25 +17,20 @@
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.CTBackgroundFillStyleList;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D;
+import org.openxmlformats.schemas.drawingml.x2006.main.*;
import org.openxmlformats.schemas.presentationml.x2006.main.CTBackground;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics2D;
-import java.awt.Paint;
-import java.awt.geom.Rectangle2D;
-
/**
* Background shape
*
* @author Yegor Kozlov
*/
-public class XSLFBackground extends XSLFSimpleShape {
+public class XSLFBackground extends XSLFSimpleShape implements Background {
/* package */XSLFBackground(CTBackground shape, XSLFSheet sheet) {
super(shape, sheet);
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java Sat Feb 21 10:56:03 2015
@@ -18,22 +18,18 @@
*/
package org.apache.poi.xslf.usermodel;
+import java.awt.Color;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.poi.sl.draw.DrawPaint;
+import org.apache.poi.sl.usermodel.ColorStyle;
import org.apache.poi.util.Beta;
import org.apache.poi.util.Internal;
import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTHslColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTScRgbColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSystemColor;
+import org.openxmlformats.schemas.drawingml.x2006.main.*;
import org.w3c.dom.Node;
-import java.awt.Color;
-import java.util.HashMap;
-import java.util.Map;
-
/**
* Encapsulates logic to read color definitions from DrawingML and convert them to java.awt.Color
*
@@ -63,40 +59,37 @@ public class XSLFColor {
* If not color information was found in the supplied xml object then a null is returned.
*/
public Color getColor() {
- return _color == null ? null : applyColorTransform(_color);
+ return DrawPaint.applyColorTransform(getColorStyle());
}
- private Color applyColorTransform(Color color){
- Color result = color;
+ public ColorStyle getColorStyle() {
+ return new ColorStyle() {
+ public Color getColor() {
+ return _color;
+ }
- int alpha = getAlpha();
- if(alpha != -1){
- result = new Color(
- result.getRed(), result.getGreen(), result.getBlue(),
- Math.round(255 * alpha * 0.01f));
- }
+ public int getAlpha() {
+ return getRawValue("alpha");
+ }
- int lumOff = getLumOff();
- int lumMod = getLumMod();
- if(lumMod != -1 || lumOff != -1){
- result = modulateLuminanace(result,
- lumMod == -1 ? 100 : lumMod,
- lumOff == -1 ? 0 : lumOff);
- }
+ public int getLumOff() {
+ return getRawValue("lumOff");
+ }
- int shade = getShade();
- if(shade != -1){
- result = shade(result, shade);
- }
+ public int getLumMod() {
+ return getRawValue("lumMod");
+ }
- int tint = getTint();
- if(tint != -1){
- result = tint(result, tint);
- }
+ public int getShade() {
+ return getRawValue("shade");
+ }
- return result;
+ public int getTint() {
+ return getRawValue("tint");
+ }
+ };
}
-
+
Color toColor(XmlObject obj, XSLFTheme theme) {
Color color = null;
for (XmlObject ch : obj.selectPath("*")) {
@@ -140,6 +133,7 @@ public class XSLFColor {
color = new Color(0xFF & val[0], 0xFF & val[1], 0xFF & val[2]);
} else {
// YK: color is a string like "menuText" or "windowText", we return black for such cases
+ @SuppressWarnings("unused")
String colorName = sys.getVal().toString();
color = Color.black;
}
@@ -150,66 +144,50 @@ public class XSLFColor {
return color;
}
- /**
- * Read a perecentage value from the supplied xml bean.
- * Example:
- * <a:tint val="45000"/>
- *
- * the returned value is 45
- *
- * @return the percentage value in the range [0 .. 100]
- */
- private int getPercentageValue(String elem){
+ private int getRawValue(String elem) {
String query = "declare namespace a='http://schemas.openxmlformats.org/drawingml/2006/main' $this//a:" + elem;
XmlObject[] obj;
// first ask the context color and if not found, ask the actual color bean
- if(_phClr != null){
+ if (_phClr != null){
obj = _phClr.selectPath(query);
- if(obj.length == 1){
+ if (obj.length == 1){
Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");
if(attr != null) {
- return Integer.parseInt(attr.getNodeValue()) / 1000;
+ return Integer.parseInt(attr.getNodeValue());
}
}
}
obj = _xmlObject.selectPath(query);
- if(obj.length == 1){
+ if (obj.length == 1){
Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");
if(attr != null) {
- return Integer.parseInt(attr.getNodeValue()) / 1000;
+ return Integer.parseInt(attr.getNodeValue());
}
}
-
- return -1;
+ return -1;
+ }
+
+ /**
+ * Read a perecentage value from the supplied xml bean.
+ * Example:
+ * <a:tint val="45000"/>
+ *
+ * the returned value is 45
+ *
+ * @return the percentage value in the range [0 .. 100]
+ */
+ private int getPercentageValue(String elem){
+ int val = getRawValue(elem);
+ return (val == -1) ? val : (val / 1000);
}
private int getAngleValue(String elem){
- String color = "declare namespace a='http://schemas.openxmlformats.org/drawingml/2006/main' $this//a:" + elem;
- XmlObject[] obj;
-
- // first ask the context color and if not found, ask the actual color bean
- if(_phClr != null){
- obj = _xmlObject.selectPath( color );
- if(obj.length == 1){
- Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");
- if(attr != null) {
- return Integer.parseInt(attr.getNodeValue()) / 60000;
- }
- }
- }
-
- obj = _xmlObject.selectPath( color );
- if(obj.length == 1){
- Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");
- if(attr != null) {
- return Integer.parseInt(attr.getNodeValue()) / 60000;
- }
- }
- return -1;
+ int val = getRawValue(elem);
+ return (val == -1) ? val : (val / 60000);
}
/**
@@ -387,7 +365,7 @@ public class XSLFColor {
* percentage with 0% indicating minimal shade and 100% indicating maximum
* or -1 if the value is not set
*/
- int getShade(){
+ public int getShade(){
return getPercentageValue("shade");
}
@@ -399,70 +377,12 @@ public class XSLFColor {
* percentage with 0% indicating minimal tint and 100% indicating maximum
* or -1 if the value is not set
*/
- int getTint(){
+ public int getTint(){
return getPercentageValue("tint");
}
/**
- * Apply lumMod / lumOff adjustments
- *
- * @param c the color to modify
- * @param lumMod luminance modulation in the range [0..100]
- * @param lumOff luminance offset in the range [0..100]
- * @return modified color
- */
- private static Color modulateLuminanace(Color c, int lumMod, int lumOff) {
- Color color;
- if (lumOff > 0) {
- color = new Color(
- (int) (Math.round((255 - c.getRed()) * (100.0 - lumMod) / 100.0 + c.getRed())),
- (int) (Math.round((255 - c.getGreen()) * lumOff / 100.0 + c.getGreen())),
- (int) (Math.round((255 - c.getBlue()) * lumOff / 100.0 + c.getBlue())),
- c.getAlpha()
- );
- } else {
- color = new Color(
- (int) (Math.round(c.getRed() * lumMod / 100.0)),
- (int) (Math.round(c.getGreen() * lumMod / 100.0)),
- (int) (Math.round(c.getBlue() * lumMod / 100.0)),
- c.getAlpha()
- );
- }
- return color;
- }
-
- /**
- * This algorithm returns result different from PowerPoint.
- * TODO: revisit and improve
- */
- private static Color shade(Color c, int shade) {
- return new Color(
- (int)(c.getRed() * shade * 0.01),
- (int)(c.getGreen() * shade * 0.01),
- (int)(c.getBlue() * shade * 0.01),
- c.getAlpha());
- }
-
- /**
- * This algorithm returns result different from PowerPoint.
- * TODO: revisit and improve
- */
- private static Color tint(Color c, int tint) {
- int r = c.getRed();
- int g = c.getGreen();
- int b = c.getBlue();
-
- float ftint = tint / 100.0f;
-
- int red = Math.round(ftint * r + (1 - ftint) * 255);
- int green = Math.round(ftint * g + (1 - ftint) * 255);
- int blue = Math.round(ftint * b + (1 - ftint) * 255);
-
- return new Color(red, green, blue);
- }
-
- /**
* Preset colors defined in DrawingML
*/
static final Map<String, Color> presetColors;
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -23,6 +23,7 @@ import org.apache.poi.POIXMLException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.ShapeType;
import org.apache.poi.util.Beta;
import org.apache.poi.util.Units;
import org.apache.xmlbeans.XmlCursor;
@@ -34,6 +35,7 @@ import org.openxmlformats.schemas.drawin
import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;
import javax.xml.namespace.QName;
+
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
@@ -58,8 +60,8 @@ public class XSLFGraphicFrame extends XS
return _sheet;
}
- public int getShapeType(){
- throw new RuntimeException("NotImplemented");
+ public ShapeType getShapeType(){
+ throw new UnsupportedOperationException();
}
public int getShapeId(){
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -19,9 +19,17 @@
package org.apache.poi.xslf.usermodel;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+import java.util.Iterator;
+import java.util.List;
+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.util.Beta;
import org.apache.poi.util.Units;
import org.apache.xmlbeans.XmlObject;
@@ -35,13 +43,6 @@ import org.openxmlformats.schemas.presen
import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShapeNonVisual;
import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
-import java.awt.Graphics2D;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Pattern;
-
/**
* Represents a group shape that consists of many shapes grouped together.
*
@@ -207,30 +208,35 @@ public class XSLFGroupShape extends XSLF
public XSLFAutoShape createAutoShape(){
XSLFAutoShape sh = getDrawing().createAutoShape();
_shapes.add(sh);
+ sh.setParent(this);
return sh;
}
public XSLFFreeformShape createFreeform(){
XSLFFreeformShape sh = getDrawing().createFreeform();
_shapes.add(sh);
+ sh.setParent(this);
return sh;
}
public XSLFTextBox createTextBox(){
XSLFTextBox sh = getDrawing().createTextBox();
_shapes.add(sh);
+ sh.setParent(this);
return sh;
}
public XSLFConnectorShape createConnector(){
XSLFConnectorShape sh = getDrawing().createConnector();
_shapes.add(sh);
+ sh.setParent(this);
return sh;
}
public XSLFGroupShape createGroup(){
XSLFGroupShape sh = getDrawing().createGroup();
_shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -251,6 +257,7 @@ public class XSLFGroupShape extends XSLF
XSLFPictureShape sh = getDrawing().createPicture(rel.getId());
sh.resize();
_shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -343,4 +350,13 @@ 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");
+ }
}
\ No newline at end of file
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java Sat Feb 21 10:56:03 2015
@@ -21,6 +21,8 @@ import java.io.IOException;
import org.apache.poi.POIXMLDocumentPart;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.Notes;
+import org.apache.poi.sl.usermodel.TextRun;
import org.apache.poi.util.Beta;
import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.presentationml.x2006.main.CTCommonSlideData;
@@ -28,7 +30,7 @@ import org.openxmlformats.schemas.presen
import org.openxmlformats.schemas.presentationml.x2006.main.NotesDocument;
@Beta
-public final class XSLFNotes extends XSLFSheet {
+public final class XSLFNotes extends XSLFSheet implements Notes<XSLFShape> {
private CTNotesSlide _notes;
/**
@@ -80,7 +82,6 @@ public final class XSLFNotes extends XSL
return getMasterSheet().getTheme();
}
- @Override
public XSLFNotesMaster getMasterSheet() {
for (POIXMLDocumentPart p : getRelations()) {
if (p instanceof XSLFNotesMaster){
@@ -89,4 +90,20 @@ public final class XSLFNotes extends XSL
}
return null;
}
+
+ public TextRun getTextRun() {
+ for (XSLFShape sh : super.getShapes()) {
+ if (sh instanceof XSLFTextShape) {
+ XSLFTextShape txt = (XSLFTextShape)sh;
+ for (XSLFTextParagraph p : txt.getTextParagraphs()) {
+ for (XSLFTextRun r : p.getTextRuns()) {
+ return r;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+
}
Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java?rev=1661322&r1=1661321&r2=1661322&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java Sat Feb 21 10:56:03 2015
@@ -23,6 +23,7 @@ import org.apache.poi.POIXMLDocumentPart
import org.apache.poi.POIXMLException;
import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.MasterSheet;
import org.apache.poi.util.Beta;
import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.drawingml.x2006.main.CTColorMapping;
@@ -46,7 +47,7 @@ import org.openxmlformats.schemas.presen
* @author Yegor Kozlov
*/
@Beta
- public class XSLFNotesMaster extends XSLFSheet {
+ public class XSLFNotesMaster extends XSLFSheet implements MasterSheet<XSLFShape> {
private CTNotesMaster _slide;
private XSLFTheme _theme;
@@ -93,7 +94,7 @@ import org.openxmlformats.schemas.presen
}
@Override
- public XSLFSheet getMasterSheet() {
+ public MasterSheet getMasterSheet() {
return null;
}
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -17,6 +17,7 @@
package org.apache.poi.xslf.usermodel;
+import org.apache.poi.sl.usermodel.Shadow;
import org.apache.poi.util.Units;
import org.openxmlformats.schemas.drawingml.x2006.main.CTOuterShadowEffect;
import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
@@ -31,7 +32,7 @@ import java.awt.geom.Rectangle2D;
*
* @author Yegor Kozlov
*/
-public class XSLFShadow extends XSLFSimpleShape {
+public class XSLFShadow extends XSLFSimpleShape implements Shadow {
private XSLFSimpleShape _parent;
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -19,13 +19,25 @@
package org.apache.poi.xslf.usermodel;
-import java.awt.Graphics2D;
-import java.awt.geom.AffineTransform;
+import java.awt.Color;
import java.awt.geom.Rectangle2D;
-
-import org.apache.poi.util.Beta;
-import org.apache.poi.util.Internal;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
+
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+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.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;
/**
* Base super-class class for all shapes in PresentationML
@@ -33,25 +45,43 @@ import org.apache.xmlbeans.XmlObject;
* @author Yegor Kozlov
*/
@Beta
-public abstract class XSLFShape {
-
- /**
- * @return the position of this shape within the drawing canvas.
- * The coordinates are expressed in points
- */
- public abstract Rectangle2D getAnchor();
-
- /**
- * @param anchor the position of this shape within the drawing canvas.
- * The coordinates are expressed in points
- */
- public abstract void setAnchor(Rectangle2D anchor);
+public abstract class XSLFShape implements Shape {
+ protected final XmlObject _shape;
+ protected final XSLFSheet _sheet;
+ protected XSLFShapeContainer _parent;
+
+ private CTShapeProperties _spPr;
+ private CTShapeStyle _spStyle;
+ private CTNonVisualDrawingProps _nvPr;
+ private CTPlaceholder _ph;
+
+ private static final PaintStyle TRANSPARENT_PAINT = new SolidPaint() {
+ public ColorStyle getSolidColor() {
+ return new ColorStyle(){
+ public Color getColor() { return DrawPaint.NO_PAINT; }
+ 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; }
+ };
+ }
+ };
+
+
+ protected XSLFShape(XmlObject shape, XSLFSheet sheet) {
+ _shape = shape;
+ _sheet = sheet;
+ }
+
/**
* @return the xml bean holding this shape's data
*/
- public abstract XmlObject getXmlObject();
-
+ public XmlObject getXmlObject() {
+ return _shape;
+ }
+
/**
* @return human-readable name of this shape, e.g. "Rectange 3"
*/
@@ -119,84 +149,6 @@ public abstract class XSLFShape {
public abstract boolean getFlipVertical();
/**
- * Draw this shape into the supplied canvas
- *
- * @param graphics the graphics to draw into
- */
- public abstract void draw(Graphics2D graphics);
-
- /**
- * Apply 2-D transforms before drawing this shape. This includes rotation and flipping.
- *
- * @param graphics the graphics whos transform matrix will be modified
- */
- protected void applyTransform(Graphics2D graphics) {
- Rectangle2D anchor = getAnchor();
- AffineTransform tx = (AffineTransform)graphics.getRenderingHint(XSLFRenderingHint.GROUP_TRANSFORM);
- if(tx != null) {
- anchor = tx.createTransformedShape(anchor).getBounds2D();
- }
-
- // rotation
- double rotation = getRotation();
- if (rotation != 0.) {
- // PowerPoint rotates shapes relative to the geometric center
- double centerX = anchor.getCenterX();
- double centerY = anchor.getCenterY();
-
- // normalize rotation
- rotation = (360.+(rotation%360.))%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 txg = new AffineTransform(); // graphics coordinate space
- AffineTransform txs = new AffineTransform(tx); // shape coordinate space
- txg.translate(centerX, centerY);
- txg.rotate(Math.toRadians(quadrant*90));
- txg.translate(-centerX, -centerY);
- txs.translate(centerX, centerY);
- txs.rotate(Math.toRadians(-quadrant*90));
- txs.translate(-centerX, -centerY);
- txg.concatenate(txs);
- Rectangle2D anchor2 = txg.createTransformedShape(getAnchor()).getBounds2D();
- scaleX = anchor.getWidth() == 0. ? 1.0 : anchor.getWidth() / anchor2.getWidth();
- scaleY = anchor.getHeight() == 0. ? 1.0 : anchor.getHeight() / anchor2.getHeight();
- }
-
- // transformation is applied reversed ...
- graphics.translate(centerX, centerY);
- graphics.rotate(Math.toRadians(rotation-(double)(quadrant*90)));
- graphics.scale(scaleX, scaleY);
- graphics.rotate(Math.toRadians(quadrant*90));
- graphics.translate(-centerX, -centerY);
- }
-
- //flip horizontal
- if (getFlipHorizontal()) {
- graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());
- graphics.scale(-1, 1);
- graphics.translate(-anchor.getX(), -anchor.getY());
- }
-
- //flip vertical
- if (getFlipVertical()) {
- graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());
- graphics.scale(1, -1);
- graphics.translate(-anchor.getX(), -anchor.getY());
- }
- }
-
- /**
* Set the contents of this shape to be a copy of the source shape.
* This method is called recursively for each shape when merging slides
*
@@ -212,4 +164,402 @@ public abstract class XSLFShape {
setAnchor(sh.getAnchor());
}
+
+ public void setParent(XSLFShapeContainer parent) {
+ this._parent = parent;
+ }
+
+ public XSLFShapeContainer getParent() {
+ return this._parent;
+ }
+
+ public boolean isPlaceholder() {
+ return false;
+ }
+
+ public StrokeStyle getStrokeStyle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public CustomGeometry getGeometry() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ShapeType getShapeType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public XSLFSheet getSheet() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * 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;
+ }
+ };
+ }
+
+ /**
+ * Walk up the inheritance tree and fetch shape properties.
+ *
+ * The following order of inheritance is assumed:
+ * <p>
+ * slide <-- slideLayout <-- slideMaster
+ * </p>
+ *
+ * @param visitor the object that collects the desired property
+ * @return true if the property was fetched
+ */
+ protected boolean fetchShapeProperty(PropertyFetcher<?> visitor) {
+ boolean ok = visitor.fetch(this);
+
+ XSLFSimpleShape masterShape;
+ XSLFSheet masterSheet = (XSLFSheet)getSheet().getMasterSheet();
+ CTPlaceholder ph = getCTPlaceholder();
+
+ if (masterSheet != null && ph != null) {
+ if (!ok) {
+ masterShape = masterSheet.getPlaceholder(ph);
+ if (masterShape != null) {
+ ok = visitor.fetch(masterShape);
+ }
+ }
+
+ // try slide master
+ if (!ok ) {
+ int textType;
+ if ( !ph.isSetType()) textType = STPlaceholderType.INT_BODY;
+ else {
+ switch (ph.getType().intValue()) {
+ case STPlaceholderType.INT_TITLE:
+ case STPlaceholderType.INT_CTR_TITLE:
+ textType = STPlaceholderType.INT_TITLE;
+ break;
+ case STPlaceholderType.INT_FTR:
+ case STPlaceholderType.INT_SLD_NUM:
+ case STPlaceholderType.INT_DT:
+ textType = ph.getType().intValue();
+ break;
+ default:
+ textType = STPlaceholderType.INT_BODY;
+ break;
+ }
+ }
+ XSLFSheet master = (XSLFSheet)masterSheet.getMasterSheet();
+ if (master != null) {
+ masterShape = master.getPlaceholderByType(textType);
+ if (masterShape != null) {
+ ok = visitor.fetch(masterShape);
+ }
+ }
+ }
+ }
+ 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.");
+ }
+ 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);
+ }
+
+ /**
+ * Convert shape fill into java.awt.Paint. The result is either Color or
+ * TexturePaint or GradientPaint or null
+ *
+ * @param graphics the target graphics
+ * @param obj the xml to read. Must contain elements from the EG_ColorChoice group:
+ * <code>
+ * a:scrgbClr RGB Color Model - Percentage Variant
+ * a:srgbClr RGB Color Model - Hex Variant
+ * a:hslClr Hue, Saturation, Luminance Color Model
+ * a:sysClr System Color
+ * a:schemeClr Scheme Color
+ * a:prstClr Preset Color
+ * </code>
+ *
+ * @param phClr context color
+ * @param parentPart the parent package part. Any external references (images, etc.) are resolved relative to it.
+ *
+ * @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;
+ }
+
+ 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);
+ }
+ }
+
+ 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 int getAlpha() {
+ return (blip.sizeOfAlphaModFixArray() > 0)
+ ? blip.getAlphaModFixArray(0).getAmt()
+ : 0;
+ }
+ };
+ }
+
+ if (obj instanceof CTGradientFillProperties) {
+ final CTGradientFillProperties gradFill = (CTGradientFillProperties) obj;
+
+ @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);
+ }
+ });
+
+ 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;
+ }
+
+ return new GradientPaint() {
+
+ public double getGradientAngle() {
+ return (gradFill.isSetLin())
+ ? gradFill.getLin().getAng() / 60000.d
+ : 0;
+ }
+
+ public ColorStyle[] getGradientColors() {
+ return cs;
+ }
+
+ public float[] getGradientFractions() {
+ return fractions;
+ }
+
+ public boolean isRotatedWithShape() {
+ // TODO: is this correct???
+ return (gradFill.isSetRotWithShape() || !gradFill.getRotWithShape());
+ }
+
+ 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;
+ }
+ }
+
+ return GradientType.linear;
+ }
+ };
+ }
+
+ return TRANSPARENT_PAINT;
+ }
+
}
\ 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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -19,10 +19,12 @@
package org.apache.poi.xslf.usermodel;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+
/**
* Common interface for shape containers, e.g. sheets or groups of shapes
*/
-public interface XSLFShapeContainer extends Iterable<XSLFShape> {
+public interface XSLFShapeContainer extends ShapeContainer {
/**
* create a new shape with a predefined geometry and add it to this shape container
@@ -56,27 +58,6 @@ public interface XSLFShapeContainer exte
XSLFPictureShape createPicture(int pictureIndex);
/**
- * Returns an array containing all of the elements in this container in proper
- * sequence (from first to last element).
- *
- * @return an array containing all of the elements in this container in proper
- * sequence
- */
- XSLFShape[] getShapes();
-
- /**
- * Removes the specified shape from this sheet, if it is present
- * (optional operation). If this sheet does not contain the element,
- * it is unchanged.
- *
- * @param xShape shape to be removed from this sheet, if present
- * @return <tt>true</tt> if this sheet contained the specified element
- * @throws IllegalArgumentException if the type of the specified shape
- * is incompatible with this sheet (optional)
- */
- boolean removeShape(XSLFShape xShape) ;
-
- /**
* Removes all of the elements from this container (optional operation).
* The container will be empty after this call returns.
*/
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=1661322&r1=1661321&r2=1661322&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 Feb 21 10:56:03 2015
@@ -23,6 +23,8 @@ import org.apache.poi.openxml4j.opc.Pack
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.sl.usermodel.Sheet;
import org.apache.poi.util.Beta;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Internal;
@@ -37,7 +39,10 @@ import org.openxmlformats.schemas.presen
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;
@@ -51,7 +56,7 @@ import java.util.Map;
import java.util.regex.Pattern;
@Beta
-public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer {
+public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer, Sheet {
private XSLFCommonSlideData _commonSlideData;
private XSLFDrawing _drawing;
private List<XSLFShape> _shapes;
@@ -142,6 +147,7 @@ public abstract class XSLFSheet extends
List<XSLFShape> shapes = getShapeList();
XSLFAutoShape sh = getDrawing().createAutoShape();
shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -149,6 +155,7 @@ public abstract class XSLFSheet extends
List<XSLFShape> shapes = getShapeList();
XSLFFreeformShape sh = getDrawing().createFreeform();
shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -156,6 +163,7 @@ public abstract class XSLFSheet extends
List<XSLFShape> shapes = getShapeList();
XSLFTextBox sh = getDrawing().createTextBox();
shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -163,6 +171,7 @@ public abstract class XSLFSheet extends
List<XSLFShape> shapes = getShapeList();
XSLFConnectorShape sh = getDrawing().createConnector();
shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -170,6 +179,7 @@ public abstract class XSLFSheet extends
List<XSLFShape> shapes = getShapeList();
XSLFGroupShape sh = getDrawing().createGroup();
shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -191,6 +201,7 @@ public abstract class XSLFSheet extends
sh.resize();
getShapeList().add(sh);
+ sh.setParent(this);
return sh;
}
@@ -198,6 +209,7 @@ public abstract class XSLFSheet extends
List<XSLFShape> shapes = getShapeList();
XSLFTable sh = getDrawing().createTable();
shapes.add(sh);
+ sh.setParent(this);
return sh;
}
@@ -219,6 +231,12 @@ public abstract class XSLFSheet extends
return getShapeList().iterator();
}
+ public void addShape(XSLFShape shape) {
+ throw new UnsupportedOperationException(
+ "Adding a shape from a different container is not supported -"
+ + " create it from scratch witht XSLFSheet.create* methods");
+ }
+
/**
* Removes the specified shape from this sheet, if it is present
* (optional operation). If this sheet does not contain the element,
@@ -370,12 +388,6 @@ public abstract class XSLFSheet extends
return null;
}
- /**
- *
- * @return master of this sheet.
- */
- public abstract XSLFSheet getMasterSheet();
-
protected XSLFTextShape getTextShapeByType(Placeholder type){
for(XSLFShape shape : this.getShapes()){
if(shape instanceof XSLFTextShape) {
@@ -486,7 +498,7 @@ public abstract class XSLFSheet extends
* @param graphics
*/
public void draw(Graphics2D graphics){
- XSLFSheet master = getMasterSheet();
+ XSLFSheet master = (XSLFSheet)getMasterSheet();
if(getFollowMasterGraphics() && master != null) master.draw(graphics);
graphics.setRenderingHint(XSLFRenderingHint.GROUP_TRANSFORM, new AffineTransform());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org