[FOray-commit] SF.net SVN: foray:[12429] trunk/foray
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
|
From: <vic...@us...> - 2022-01-19 00:45:37
|
Revision: 12429
http://sourceforge.net/p/foray/code/12429
Author: victormote
Date: 2022-01-19 00:45:35 +0000 (Wed, 19 Jan 2022)
Log Message:
-----------
Conform to aXSL change: Remove no-longer-needed interface.
Modified Paths:
--------------
trunk/foray/foray-pdf/src/main/java/org/foray/pdf/object/PdfDocument4a.java
trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
trunk/foray/foray-render/src/main/java/org/foray/render/ps/PsRenderer.java
Removed Paths:
-------------
trunk/foray/foray-common/src/main/java/org/foray/common/Gradient4a.java
Deleted: trunk/foray/foray-common/src/main/java/org/foray/common/Gradient4a.java
===================================================================
--- trunk/foray/foray-common/src/main/java/org/foray/common/Gradient4a.java 2022-01-18 22:25:28 UTC (rev 12428)
+++ trunk/foray/foray-common/src/main/java/org/foray/common/Gradient4a.java 2022-01-19 00:45:35 UTC (rev 12429)
@@ -1,99 +0,0 @@
-/*
- * Copyright 2009 The FOray Project.
- * http://www.foray.org
- *
- * Licensed 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.
- *
- * This work is in part derived from the following work(s), used with the
- * permission of the licensor:
- * Apache FOP, licensed by the Apache Software Foundation
- *
- */
-
-/*
- * $LastChangedRevision$
- * $LastChangedDate$
- * $LastChangedBy$
- */
-
-package org.foray.common;
-
-import org.axsl.common.Gradient;
-
-import java.awt.Color;
-import java.awt.color.ColorSpace;
-import java.util.List;
-
-/**
- * Describes a radial or linear gradient.
- */
-public class Gradient4a implements Gradient {
-
- /** Indicates whether the gradient is linear or radial. */
- private boolean radial;
-
- /** The color space for the gradient. */
- private ColorSpace colorSpace;
-
- /** The colors in the gradient. */
- private List<Color> colors;
-
- /** The bounds of the gradient. */
- private List<Double> bounds;
-
- /** The coordinates of the gradient. */
- private List<Double> coordinates;
-
- /**
- * Constructor.
- * @param radial Indicates whether the gradient is linear or radial.
- * @param colorSpace The color space for the gradient.
- * @param colors The colors in the gradient.
- * @param bounds The bounds of the gradient.
- * @param coordinates The coordinates of the gradient.
- */
- public Gradient4a(final boolean radial, final ColorSpace colorSpace, final List<Color> colors,
- final List<Double> bounds, final List<Double> coordinates) {
- this.radial = radial;
- this.colorSpace = colorSpace;
- this.colors = colors;
- this.bounds = bounds;
- this.coordinates = coordinates;
- }
-
- @Override
- public boolean isRadial() {
- return this.radial;
- }
-
- @Override
- public ColorSpace getColorSpace() {
- return this.colorSpace;
- }
-
- @Override
- public List<Color> getColors() {
- return this.colors;
- }
-
- @Override
- public List<Double> getBounds() {
- return this.bounds;
- }
-
- @Override
- public List<Double> getCoordinates() {
- return this.coordinates;
- }
-
-}
Modified: trunk/foray/foray-pdf/src/main/java/org/foray/pdf/object/PdfDocument4a.java
===================================================================
--- trunk/foray/foray-pdf/src/main/java/org/foray/pdf/object/PdfDocument4a.java 2022-01-18 22:25:28 UTC (rev 12428)
+++ trunk/foray/foray-pdf/src/main/java/org/foray/pdf/object/PdfDocument4a.java 2022-01-19 00:45:35 UTC (rev 12429)
@@ -44,7 +44,6 @@
import org.foray.pdf.PdfHeader;
import org.foray.pdf.PdfParser;
-import org.axsl.common.Gradient;
import org.axsl.common.sequence.IntPrimitiveIterator;
import org.axsl.font.Font;
import org.axsl.font.FontConsumer;
@@ -67,10 +66,14 @@
import org.slf4j.LoggerFactory;
import java.awt.Color;
+import java.awt.LinearGradientPaint;
+import java.awt.MultipleGradientPaint;
+import java.awt.RadialGradientPaint;
import java.awt.color.ColorSpace;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -578,7 +581,7 @@
}
@Override
- public String getGradientName(final Gradient gradient) {
+ public String getGradientName(final MultipleGradientPaint gradient) {
/* TODO: See if this gradient already exists before creating it again. */
final PdfPattern pattern = this.createGradient(gradient);
return pattern.getName();
@@ -594,12 +597,42 @@
}
@Override
- public PdfPattern createGradient(final Gradient gradient) {
- final boolean radial = gradient.isRadial();
- final ColorSpace theColorSpace = gradient.getColorSpace();
- final List<Color> theColors = gradient.getColors();
- final List<Double> theBounds = gradient.getBounds();
- final List<Double> theCoords = gradient.getCoordinates();
+ public PdfPattern createGradient(final MultipleGradientPaint gradient) {
+ final boolean radial = gradient instanceof RadialGradientPaint;
+ ColorSpace theColorSpace = null;
+ if (gradient.getColorSpace() != null) {
+ switch (gradient.getColorSpace()) {
+ case SRGB: {
+ theColorSpace = ColorSpace.getInstance(ColorSpace.CS_sRGB);
+ break;
+ }
+ case LINEAR_RGB: {
+ theColorSpace = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB);
+ break;
+ }
+ default: {
+ throw new IllegalStateException("Unexpected Gradient color space type: " + gradient.getColorSpace());
+ }
+ }
+ }
+ final List<Color> theColors = Arrays.asList(gradient.getColors());
+ final List<Double> theBounds = new ArrayList<Double>();
+ theBounds.add(0D);
+ theBounds.add(1D);
+ final List<Double> theCoords = new ArrayList<Double>();
+ if (gradient instanceof LinearGradientPaint) {
+ final LinearGradientPaint linearGradient = (LinearGradientPaint) gradient;
+ theCoords.add(linearGradient.getStartPoint().getX());
+ theCoords.add(linearGradient.getStartPoint().getY());
+ theCoords.add(linearGradient.getEndPoint().getX());
+ theCoords.add(linearGradient.getEndPoint().getY());
+ } else if (gradient instanceof RadialGradientPaint) {
+ final RadialGradientPaint radialGradient = (RadialGradientPaint) gradient;
+ radialGradient.getCenterPoint().getX();
+ radialGradient.getCenterPoint().getY();
+ radialGradient.getFocusPoint().getX();
+ radialGradient.getFocusPoint().getY();
+ }
final PdfShading myShad;
final PdfFunction myfunky;
Modified: trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
===================================================================
--- trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2022-01-18 22:25:28 UTC (rev 12428)
+++ trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2022-01-19 00:45:35 UTC (rev 12429)
@@ -35,7 +35,6 @@
import org.foray.common.CharacterOutputStream;
import org.foray.common.FontContext4a;
-import org.foray.common.Gradient4a;
import org.foray.common.WellKnownConstants;
import org.foray.common.ps.PsColor;
import org.foray.common.ps.PsUtil;
@@ -66,12 +65,14 @@
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
+import java.awt.LinearGradientPaint;
+import java.awt.MultipleGradientPaint.ColorSpaceType;
+import java.awt.MultipleGradientPaint.CycleMethod;
import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.TexturePaint;
-import java.awt.color.ColorSpace;
import java.awt.font.TextAttribute;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
@@ -560,9 +561,13 @@
someColors.add(c1);
someColors.add(c2);
- final ColorSpace aColorSpace = ColorSpace.getInstance(ColorSpace.CS_sRGB);
- final Gradient4a gradient = new Gradient4a(false, aColorSpace, someColors, null, theCoords);
- final String gradientName = this.pdfContext.getGradientName(gradient);
+ final float[] fractions = new float[0];
+ final Color[] colors = new Color[] {c1, c2};
+ final LinearGradientPaint linearGradient =
+ new LinearGradientPaint(gp.getPoint1(), gp.getPoint2(), fractions, colors, CycleMethod.NO_CYCLE,
+ ColorSpaceType.SRGB, new AffineTransform());
+
+ final String gradientName = this.pdfContext.getGradientName(linearGradient);
if (fill) {
this.write("/Pattern cs /" + gradientName + " scn" + Basic_Latin_Block.CONTROL_LINE_FEED);
} else {
Modified: trunk/foray/foray-render/src/main/java/org/foray/render/ps/PsRenderer.java
===================================================================
--- trunk/foray/foray-render/src/main/java/org/foray/render/ps/PsRenderer.java 2022-01-18 22:25:28 UTC (rev 12428)
+++ trunk/foray/foray-render/src/main/java/org/foray/render/ps/PsRenderer.java 2022-01-19 00:45:35 UTC (rev 12429)
@@ -42,7 +42,6 @@
import org.foray.common.sequence.ByteArray;
import org.foray.render.PrintRenderer;
-import org.axsl.common.Gradient;
import org.axsl.common.sequence.ByteSequence;
import org.axsl.common.sequence.IntSequence;
import org.axsl.font.Font;
@@ -74,6 +73,7 @@
import org.axsl.value.RuleStyle;
import java.awt.Color;
+import java.awt.MultipleGradientPaint;
import java.awt.Rectangle;
import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
@@ -1360,7 +1360,7 @@
}
@Override
- public String getGradientName(final Gradient gradient) {
+ public String getGradientName(final MultipleGradientPaint gradient) {
/* TODO: Implement this. */
return StringUtils.EMPTY_STRING;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|