/* ==================================================================== | |
Licensed to the Apache Software Foundation (ASF) under one or more | |
contributor license agreements. See the NOTICE file distributed with | |
this work for additional information regarding copyright ownership. | |
The ASF licenses this file to You under the Apache License, Version 2.0 | |
(the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
==================================================================== */ | |
package org.apache.poi.sl.draw; | |
import java.awt.Graphics2D; | |
import java.awt.geom.AffineTransform; | |
import java.awt.geom.Path2D; | |
import java.util.ArrayList; | |
import java.util.Collection; | |
import java.util.List; | |
import org.apache.poi.sl.draw.geom.Outline; | |
import org.apache.poi.sl.draw.geom.Path; | |
import org.apache.poi.sl.usermodel.FillStyle; | |
import org.apache.poi.sl.usermodel.FreeformShape; | |
import org.apache.poi.sl.usermodel.StrokeStyle; | |
public class DrawFreeformShape extends DrawAutoShape { | |
public DrawFreeformShape(FreeformShape<?,?> shape) { | |
super(shape); | |
} | |
protected Collection<Outline> computeOutlines(Graphics2D graphics) { | |
List<Outline> lst = new ArrayList<Outline>(); | |
FreeformShape<?,?> fsh = getShape(); | |
Path2D sh = fsh.getPath(); | |
AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM); | |
if (tx == null) { | |
tx = new AffineTransform(); | |
} | |
java.awt.Shape canvasShape = tx.createTransformedShape(sh); | |
FillStyle fs = fsh.getFillStyle(); | |
StrokeStyle ss = fsh.getStrokeStyle(); | |
Path path = new Path(fs != null, ss != null); | |
lst.add(new Outline(canvasShape, path)); | |
return lst; | |
} | |
@Override | |
protected FreeformShape<?,?> getShape() { | |
return (FreeformShape<?,?>)shape; | |
} | |
} |