test/jdk/sanity/client/lib/SwingSet3/src/com/sun/swingset3/demos/colorchooser/BezierAnimationPanel.java
author akolarkunnu
Thu, 24 Jan 2019 07:15:42 -0800
changeset 53672 f024302abefd
child 57526 8538b1f28a71
child 58678 9cf78a70fa4f
permissions -rw-r--r--
8217235: Create automated test for SwingSet ColorChooserDemoTest Reviewed-by: serb, shurailine Contributed-by: vikrant.v.agarwal@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
53672
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     1
/*
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     2
* Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     4
*
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     5
* This code is free software; you can redistribute it and/or modify it
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     6
* under the terms of the GNU General Public License version 2 only, as
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     7
* published by the Free Software Foundation.
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     8
*
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
     9
* This code is distributed in the hope that it will be useful, but WITHOUT
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    11
* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    12
* version 2 for more details (a copy is included in the LICENSE file that
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    13
* accompanied this code).
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    14
*
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    15
* You should have received a copy of the GNU General Public License version
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    16
* 2 along with this work; if not, write to the Free Software Foundation,
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    18
*
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    20
* or visit www.oracle.com if you need additional information or have any
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    21
* questions.
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    22
*/
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    23
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    24
package com.sun.swingset3.demos.colorchooser;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    25
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    26
import java.awt.*;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    27
import java.awt.event.HierarchyEvent;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    28
import java.awt.event.HierarchyListener;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    29
import java.awt.geom.GeneralPath;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    30
import java.awt.image.BufferedImage;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    31
import java.util.Hashtable;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    32
import java.util.Map;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    33
import javax.swing.*;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    34
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    35
import static com.sun.swingset3.demos.colorchooser.BezierAnimationPanel.BezierColor.*;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    36
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    37
/**
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    38
* BezierAnimationPanel
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    39
*
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    40
* @author Jim Graham
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    41
* @author Jeff Dinkins (removed dynamic setting changes, made swing friendly)
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    42
* @version 1.16 11/17/05
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    43
*/
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    44
public class BezierAnimationPanel extends JPanel implements Runnable {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    45
public static enum BezierColor {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    46
BACKGROUND, OUTER, GRADIENT_A, GRADIENT_B
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    47
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    48
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    49
private final Map<BezierColor, Color> colors = new Hashtable<BezierColor, Color>();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    50
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    51
private GradientPaint gradient = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    52
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    53
private static final int NUMPTS = 6;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    54
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    55
private final float[] animpts = new float[NUMPTS * 2];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    56
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    57
private final float[] deltas = new float[NUMPTS * 2];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    58
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    59
private BufferedImage img;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    60
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    61
private Thread anim;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    62
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    63
private final Object lock = new Object();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    64
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    65
/**
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    66
* BezierAnimationPanel Constructor
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    67
*/
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    68
public BezierAnimationPanel() {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    69
setOpaque(true);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    70
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    71
colors.put(BACKGROUND, new Color(0, 0, 153));
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    72
colors.put(OUTER, new Color(255, 255, 255));
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    73
colors.put(GRADIENT_A, new Color(255, 0, 101));
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    74
colors.put(GRADIENT_B, new Color(255, 255, 0));
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    75
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    76
addHierarchyListener(new HierarchyListener() {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    77
public void hierarchyChanged(HierarchyEvent e) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    78
if (isShowing()) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    79
start();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    80
} else {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    81
stop();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    82
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    83
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    84
});
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    85
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    86
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    87
public Color getBezierColor(BezierColor bezierColor) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    88
return colors.get(bezierColor);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    89
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    90
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    91
public void setBezierColor(BezierColor bezierColor, Color value) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    92
if (value != null) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    93
colors.put(bezierColor, value);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    94
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    95
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    96
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    97
public void start() {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    98
Dimension size = getSize();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
    99
for (int i = 0; i < animpts.length; i += 2) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   100
animpts[i] = (float) (Math.random() * size.width);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   101
animpts[i + 1] = (float) (Math.random() * size.height);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   102
deltas[i] = (float) (Math.random() * 4.0 + 2.0);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   103
deltas[i + 1] = (float) (Math.random() * 4.0 + 2.0);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   104
if (animpts[i] > size.width / 6.0f) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   105
deltas[i] = -deltas[i];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   106
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   107
if (animpts[i + 1] > size.height / 6.0f) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   108
deltas[i + 1] = -deltas[i + 1];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   109
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   110
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   111
anim = new Thread(this);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   112
anim.setPriority(Thread.MIN_PRIORITY);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   113
anim.start();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   114
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   115
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   116
public synchronized void stop() {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   117
anim = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   118
notify();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   119
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   120
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   121
private static void animate(float[] pts, float[] deltas, int index, int limit) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   122
float newpt = pts[index] + deltas[index];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   123
if (newpt <= 0) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   124
newpt = -newpt;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   125
deltas[index] = (float) (Math.random() * 3.0 + 2.0);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   126
} else if (newpt >= (float) limit) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   127
newpt = 2.0f * limit - newpt;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   128
deltas[index] = -(float) (Math.random() * 3.0 + 2.0);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   129
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   130
pts[index] = newpt;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   131
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   132
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   133
public void run() {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   134
Thread me = Thread.currentThread();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   135
while (getSize().width <= 0) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   136
try {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   137
Thread.sleep(500);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   138
} catch (InterruptedException e) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   139
return;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   140
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   141
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   142
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   143
Graphics2D g2d = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   144
Graphics2D bufferG2D = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   145
BasicStroke solid = new BasicStroke(9.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 9.0f);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   146
GeneralPath gp = new GeneralPath(GeneralPath.WIND_NON_ZERO);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   147
int rule = AlphaComposite.SRC_OVER;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   148
AlphaComposite opaque = AlphaComposite.SrcOver;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   149
AlphaComposite blend = AlphaComposite.getInstance(rule, 0.9f);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   150
AlphaComposite set = AlphaComposite.Src;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   151
Dimension oldSize = getSize();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   152
Shape clippath = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   153
while (anim == me) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   154
Dimension size = getSize();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   155
if (size.width != oldSize.width || size.height != oldSize.height) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   156
img = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   157
clippath = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   158
if (bufferG2D != null) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   159
bufferG2D.dispose();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   160
bufferG2D = null;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   161
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   162
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   163
oldSize = size;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   164
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   165
if (img == null) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   166
img = (BufferedImage) createImage(size.width, size.height);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   167
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   168
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   169
if (bufferG2D == null) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   170
bufferG2D = img.createGraphics();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   171
bufferG2D.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_DEFAULT);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   172
bufferG2D.setClip(clippath);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   173
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   174
g2d = bufferG2D;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   175
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   176
float[] ctrlpts;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   177
for (int i = 0; i < animpts.length; i += 2) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   178
animate(animpts, deltas, i, size.width);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   179
animate(animpts, deltas, i + 1, size.height);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   180
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   181
ctrlpts = animpts;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   182
int len = ctrlpts.length;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   183
gp.reset();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   184
float prevx = ctrlpts[len - 2];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   185
float prevy = ctrlpts[len - 1];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   186
float curx = ctrlpts[0];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   187
float cury = ctrlpts[1];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   188
float midx = (curx + prevx) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   189
float midy = (cury + prevy) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   190
gp.moveTo(midx, midy);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   191
for (int i = 2; i <= ctrlpts.length; i += 2) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   192
float x1 = (midx + curx) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   193
float y1 = (midy + cury) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   194
prevx = curx;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   195
prevy = cury;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   196
if (i < ctrlpts.length) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   197
curx = ctrlpts[i];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   198
cury = ctrlpts[i + 1];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   199
} else {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   200
curx = ctrlpts[0];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   201
cury = ctrlpts[1];
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   202
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   203
midx = (curx + prevx) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   204
midy = (cury + prevy) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   205
float x2 = (prevx + midx) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   206
float y2 = (prevy + midy) / 2.0f;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   207
gp.curveTo(x1, y1, x2, y2, midx, midy);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   208
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   209
gp.closePath();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   210
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   211
synchronized (lock) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   212
g2d.setComposite(set);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   213
g2d.setBackground(getBezierColor(BACKGROUND));
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   214
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   215
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   216
// g2d.clearRect(bounds.x-5, bounds.y-5, bounds.x + bounds.width
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   217
// + 5, bounds.y + bounds.height + 5);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   218
g2d.clearRect(0, 0, getWidth(), getHeight());
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   219
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   220
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   221
g2d.setColor(getBezierColor(OUTER));
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   222
g2d.setComposite(opaque);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   223
g2d.setStroke(solid);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   224
g2d.draw(gp);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   225
g2d.setPaint(gradient);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   226
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   227
Rectangle bounds = gp.getBounds();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   228
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   229
gradient = new GradientPaint(bounds.x, bounds.y, getBezierColor(GRADIENT_A), bounds.x + bounds.width,
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   230
bounds.y + bounds.height, getBezierColor(GRADIENT_B), true);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   231
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   232
g2d.setComposite(blend);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   233
g2d.fill(gp);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   234
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   235
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   236
repaint();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   237
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   238
Thread.yield();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   239
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   240
if (g2d != null) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   241
g2d.dispose();
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   242
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   243
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   244
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   245
public void paint(Graphics g) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   246
synchronized (lock) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   247
Graphics2D g2d = (Graphics2D) g;
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   248
if (img != null) {
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   249
g2d.setComposite(AlphaComposite.Src);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   250
g2d.drawImage(img, null, 0, 0);
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   251
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   252
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   253
}
f024302abefd 8217235: Create automated test for SwingSet ColorChooserDemoTest
akolarkunnu
parents:
diff changeset
   254
}