blob: 833dfc36fc9eb308b1bbf96ba2a1e14801096e82 [file] [log] [blame]
<test title="GradientPaint Testing">
<description>
This test validates the convertion of Java 2D GradientPaints
into SVG linearGradient definition and reference.
</description>
<description>
The test validates that a GradientPaint is properly converted
with regards to its color values (including opacity), its
start and end points, its cycling strategy and its behavior
under transformation.
</description>
<javaCode>
<![CDATA[
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
AffineTransform defaultTransform = g.getTransform();
Color labelColor = Color.black;
//
// First, define cross hair marker
//
GeneralPath crossHair = new GeneralPath();
crossHair.moveTo(-5, 0);
crossHair.lineTo(5, 0);
crossHair.moveTo(0, -5);
crossHair.lineTo(0, 5);
//
// Simple test checking color values and start
// and end points
//
GradientPaint gradient = new GradientPaint(30, 40, Color.red,
30, 120, Color.yellow);
g.setPaint(labelColor);
g.drawString("Simple vertical gradient", 10, 20);
g.setPaint(gradient);
g.fillRect(10, 30, 100, 100);
g.setPaint(labelColor);
g.translate(30, 40);
g.draw(crossHair);
g.setTransform(defaultTransform);
g.translate(30, 120);
g.draw(crossHair);
g.setTransform(defaultTransform);
g.translate(0, 140);
//
// Now, test cycling behavior
//
GradientPaint nonCyclicGradient = new GradientPaint(0, 0, Color.red,
20, 0, Color.yellow);
GradientPaint cyclicGradient = new GradientPaint(0, 0, Color.red,
20, 0, Color.yellow, true);
g.setPaint(labelColor);
g.drawString("Non Cyclic / Cyclic Gradients", 10, 20);
g.translate(10, 30);
g.setPaint(nonCyclicGradient);
g.fillRect(0, 0, 100, 30);
g.translate(0, 30);
g.setPaint(cyclicGradient);
g.fillRect(0, 0, 100, 30);
g.setPaint(labelColor);
g.drawLine(0, 0, 100, 0);
g.setTransform(defaultTransform);
g.translate(0, 240);
//
// Now, test transformations
//
g.setPaint(labelColor);
g.drawString("Sheared GradientPaint", 10, 20);
g.translate(10, 25);
GradientPaint shearedGradient = new GradientPaint(0, 0, Color.red,
100, 0, Color.yellow);
g.setPaint(shearedGradient);
g.shear(0.5, 0);
g.fillRect(0, 0, 100, 40);
g.setTransform(defaultTransform);
g.translate(0, 320);
g.setPaint(labelColor);
g.drawString("Opacity in stop color", 10, 20);
GradientPaint transparentGradient = new GradientPaint(10, 30, new Color(255, 0, 0, 0),
110, 30, Color.yellow);
g.setPaint(transparentGradient);
g.fillRect(10, 30, 100, 30);
]]>
</javaCode>
</test>