< prev index next >

modules/graphics/src/test/java/test/javafx/animation/StrokeTransitionTest.java

Print this page


   1 /*
   2  * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 109         assertNull(t0.getShape());
 110         assertEquals(DEFAULT_INTERPOLATOR, t0.getInterpolator());
 111         assertNull(t0.getOnFinished());
 112 
 113         // duration, shape, and values
 114         t0 = new StrokeTransition(TWO_SECS, shape, Color.BLACK, Color.WHITE);
 115         assertEquals(TWO_SECS, t0.getDuration());
 116         assertColorEquals(Color.BLACK, t0.getFromValue());
 117         assertColorEquals(Color.WHITE, t0.getToValue());
 118         assertEquals(shape, t0.getShape());
 119         assertEquals(DEFAULT_INTERPOLATOR, t0.getInterpolator());
 120         assertNull(t0.getOnFinished());
 121     }
 122 
 123     @Test
 124     public void testInterpolate() {
 125         final Color fromValue = Color.color(0.2, 0.3, 0.7, 0.1);
 126         final Color toValue = Color.color(0.8, 0.4, 0.2, 0.9);
 127         final StrokeTransition t0 = new StrokeTransition(ONE_SEC, shape, fromValue, toValue);
 128 
 129         assertTrue(AnimationShim.impl_startable(t0,true));
 130         AnimationShim.impl_start(t0,true);
 131         TransitionShim.interpolate(t0,0.0);
 132         assertColorEquals(Color.color(0.2, 0.3, 0.7, 0.1), shape.getStroke());
 133         TransitionShim.interpolate(t0,0.4);
 134         assertColorEquals(Color.color(0.44, 0.34, 0.5, 0.42), shape.getStroke());
 135         TransitionShim.interpolate(t0,1.0);
 136         assertColorEquals(Color.color(0.8, 0.4, 0.2, 0.9), shape.getStroke());
 137         AnimationShim.impl_finished(t0);
 138     }
 139 
 140     @Test
 141     public void testRedValueCombinations() {
 142         final StrokeTransition t0 = new StrokeTransition(ONE_SEC, shape, null, Color.WHITE);
 143         final double originalRed = 0.6;
 144         final double fromRed = 0.4;
 145         final Color originalValue = Color.color(originalRed, 1.0, 1.0);
 146         final Color fromValue = Color.color(fromRed, 1.0, 1.0);
 147 
 148         // no from value set
 149         shape.setStroke(originalValue);
 150         t0.setFromValue(null);
 151         assertTrue(AnimationShim.impl_startable(t0,true));
 152         AnimationShim.impl_start(t0,true);
 153         TransitionShim.interpolate(t0,0.0);
 154         assertColorEquals(originalValue, shape.getStroke());
 155         AnimationShim.impl_finished(t0);
 156 
 157         // from-value set
 158         shape.setStroke(originalValue);
 159         t0.setFromValue(fromValue);
 160         assertTrue(AnimationShim.impl_startable(t0,true));
 161         AnimationShim.impl_start(t0,true);
 162         TransitionShim.interpolate(t0,0.0);
 163         assertColorEquals(fromValue, shape.getStroke());
 164         AnimationShim.impl_finished(t0);
 165     }
 166 
 167     @Test
 168     public void testGetTargetNode() {
 169         final Color fromValue = Color.color(0.0, 0.4, 0.8, 1.0);
 170         final Color toValue = Color.color(1.0, 0.8, 0.6, 0.4);
 171         final StrokeTransition ft = new StrokeTransition(ONE_SEC, shape, fromValue, toValue);
 172         ft.setInterpolator(Interpolator.LINEAR);
 173         final Shape shape2 = new Rectangle();
 174         final ParallelTransition pt = new ParallelTransition();
 175         pt.getChildren().add(ft);
 176         pt.setNode(shape2);
 177         shape.setStroke(Color.WHITE);
 178         shape2.setStroke(Color.WHITE);
 179 
 180         // node set, parent set
 181         assertTrue(AnimationShim.impl_startable(ft,true));
 182         AnimationShim.impl_start(ft,true);
 183         TransitionShim.interpolate(ft,0.5);
 184         assertColorEquals(Color.color(0.5, 0.6, 0.7, 0.7), shape.getStroke());
 185         assertColorEquals(Color.WHITE, shape2.getStroke());
 186         AnimationShim.impl_finished(ft);
 187 
 188         // node null, parent set
 189         ft.setShape(null);
 190         assertTrue(AnimationShim.impl_startable(ft,true));
 191         AnimationShim.impl_start(ft,true);
 192         TransitionShim.interpolate(ft,0.4);
 193         assertColorEquals(Color.color(0.5, 0.6, 0.7, 0.7), shape.getStroke());
 194         assertColorEquals(Color.color(0.4, 0.56, 0.72, 0.76), shape2.getStroke());
 195         AnimationShim.impl_finished(ft);
 196 
 197         // node null, parent not shape set
 198         pt.setNode(new Group());
 199         assertFalse(AnimationShim.impl_startable(ft,true));
 200 
 201         // node null, parent null
 202         pt.setNode(null);
 203         assertFalse(AnimationShim.impl_startable(ft,true));
 204     }
 205 
 206     @Test
 207     public void testCachedValues() {
 208         final Color fromValue = Color.color(0.0, 0.4, 0.8, 0.2);
 209         final Color toValue = Color.color(1.0, 0.8, 0.6, 0.4);
 210         final StrokeTransition ft = new StrokeTransition(ONE_SEC, shape, fromValue, toValue);
 211         ft.setInterpolator(Interpolator.LINEAR);
 212 
 213         // start
 214         assertTrue(AnimationShim.impl_startable(ft,true));
 215         AnimationShim.impl_start(ft,true);
 216         ft.setFromValue(Color.WHITE);
 217         TransitionShim.interpolate(ft,0.5);
 218         assertColorEquals(Color.color(0.5, 0.6, 0.7, 0.3), shape.getStroke());
 219         AnimationShim.impl_finished(ft);
 220         ft.setFromValue(fromValue);
 221 
 222         // end
 223         assertTrue(AnimationShim.impl_startable(ft,true));
 224         AnimationShim.impl_start(ft,true);
 225         ft.setToValue(Color.BLACK);
 226         TransitionShim.interpolate(ft,0.2);
 227         assertColorEquals(Color.color(0.2, 0.48, 0.76, 0.24), shape.getStroke());
 228         AnimationShim.impl_finished(ft);
 229         ft.setToValue(toValue);
 230 
 231         // shape
 232         assertTrue(AnimationShim.impl_startable(ft,true));
 233         AnimationShim.impl_start(ft,true);
 234         ft.setShape(null);
 235         TransitionShim.interpolate(ft,0.7);
 236         assertColorEquals(Color.color(0.7, 0.68, 0.66, 0.34), shape.getStroke());
 237         AnimationShim.impl_finished(ft);
 238         ft.setShape(shape);
 239 
 240         // interpolator
 241         assertTrue(AnimationShim.impl_startable(ft,true));
 242         AnimationShim.impl_start(ft,true);
 243         ft.setInterpolator(null);
 244         TransitionShim.interpolate(ft,0.1);
 245         assertColorEquals(Color.color(0.1, 0.44, 0.78, 0.22), shape.getStroke());
 246         AnimationShim.impl_finished(ft);
 247         ft.setInterpolator(Interpolator.LINEAR);
 248     }
 249 
 250     @Test
 251     public void testStartable() {
 252         final StrokeTransition t0 = new StrokeTransition(Duration.ONE, shape, Color.WHITE, Color.BLACK);
 253         final Paint paint2 = new LinearGradient(0, 0, 1, 1, false, null,
 254                 new Stop[] { new Stop(0, Color.RED) });
 255         assertTrue(AnimationShim.impl_startable(t0,true));
 256 
 257         // duration is 0
 258         t0.setDuration(Duration.ZERO);
 259         assertFalse(AnimationShim.impl_startable(t0,true));
 260         t0.setDuration(Duration.ONE);
 261         assertTrue(AnimationShim.impl_startable(t0,true));
 262 
 263         // shape is null
 264         t0.setShape(null);
 265         assertFalse(AnimationShim.impl_startable(t0,true));
 266         t0.setShape(shape);
 267         assertTrue(AnimationShim.impl_startable(t0,true));
 268 
 269         // interpolator is null
 270         t0.setInterpolator(null);
 271         assertFalse(AnimationShim.impl_startable(t0,true));
 272         t0.setInterpolator(Interpolator.LINEAR);
 273         assertTrue(AnimationShim.impl_startable(t0,true));
 274 
 275         // fromValue
 276         t0.setFromValue(null);
 277         shape.setStroke(paint2);
 278         assertFalse(AnimationShim.impl_startable(t0,true));
 279         shape.setStroke(Color.BLACK);
 280         assertTrue(AnimationShim.impl_startable(t0,true));
 281         t0.setFromValue(Color.WHITE);
 282         shape.setStroke(paint2);
 283         assertTrue(AnimationShim.impl_startable(t0,true));
 284 
 285         // toValue
 286         t0.setToValue(null);
 287         assertFalse(AnimationShim.impl_startable(t0,true));
 288         t0.setToValue(Color.BLACK);
 289         assertTrue(AnimationShim.impl_startable(t0,true));
 290     }
 291 
 292     @Test
 293     public void testEvaluateStartValue() {
 294         final StrokeTransition t0 = new StrokeTransition(Duration.INDEFINITE, shape, null, Color.WHITE);
 295 
 296         // first run
 297         shape.setStroke(Color.GREY);
 298         assertTrue(AnimationShim.impl_startable(t0,true));
 299         AnimationShim.impl_start(t0,true);
 300         shape.setStroke(Color.TRANSPARENT);
 301         TransitionShim.interpolate(t0,0.0);
 302         assertColorEquals(Color.GREY, shape.getStroke());
 303         AnimationShim.impl_finished(t0);
 304 
 305         // second run
 306         shape.setStroke(Color.BLACK);
 307         assertTrue(AnimationShim.impl_startable(t0,true));
 308         AnimationShim.impl_start(t0,true);
 309         shape.setStroke(Color.WHITE);
 310         TransitionShim.interpolate(t0,0.0);
 311         assertColorEquals(Color.BLACK, shape.getStroke());
 312         AnimationShim.impl_finished(t0);
 313     }
 314 
 315 }
   1 /*
   2  * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 109         assertNull(t0.getShape());
 110         assertEquals(DEFAULT_INTERPOLATOR, t0.getInterpolator());
 111         assertNull(t0.getOnFinished());
 112 
 113         // duration, shape, and values
 114         t0 = new StrokeTransition(TWO_SECS, shape, Color.BLACK, Color.WHITE);
 115         assertEquals(TWO_SECS, t0.getDuration());
 116         assertColorEquals(Color.BLACK, t0.getFromValue());
 117         assertColorEquals(Color.WHITE, t0.getToValue());
 118         assertEquals(shape, t0.getShape());
 119         assertEquals(DEFAULT_INTERPOLATOR, t0.getInterpolator());
 120         assertNull(t0.getOnFinished());
 121     }
 122 
 123     @Test
 124     public void testInterpolate() {
 125         final Color fromValue = Color.color(0.2, 0.3, 0.7, 0.1);
 126         final Color toValue = Color.color(0.8, 0.4, 0.2, 0.9);
 127         final StrokeTransition t0 = new StrokeTransition(ONE_SEC, shape, fromValue, toValue);
 128 
 129         assertTrue(AnimationShim.startable(t0,true));
 130         AnimationShim.doStart(t0,true);
 131         TransitionShim.interpolate(t0,0.0);
 132         assertColorEquals(Color.color(0.2, 0.3, 0.7, 0.1), shape.getStroke());
 133         TransitionShim.interpolate(t0,0.4);
 134         assertColorEquals(Color.color(0.44, 0.34, 0.5, 0.42), shape.getStroke());
 135         TransitionShim.interpolate(t0,1.0);
 136         assertColorEquals(Color.color(0.8, 0.4, 0.2, 0.9), shape.getStroke());
 137         AnimationShim.finished(t0);
 138     }
 139 
 140     @Test
 141     public void testRedValueCombinations() {
 142         final StrokeTransition t0 = new StrokeTransition(ONE_SEC, shape, null, Color.WHITE);
 143         final double originalRed = 0.6;
 144         final double fromRed = 0.4;
 145         final Color originalValue = Color.color(originalRed, 1.0, 1.0);
 146         final Color fromValue = Color.color(fromRed, 1.0, 1.0);
 147 
 148         // no from value set
 149         shape.setStroke(originalValue);
 150         t0.setFromValue(null);
 151         assertTrue(AnimationShim.startable(t0,true));
 152         AnimationShim.doStart(t0,true);
 153         TransitionShim.interpolate(t0,0.0);
 154         assertColorEquals(originalValue, shape.getStroke());
 155         AnimationShim.finished(t0);
 156 
 157         // from-value set
 158         shape.setStroke(originalValue);
 159         t0.setFromValue(fromValue);
 160         assertTrue(AnimationShim.startable(t0,true));
 161         AnimationShim.doStart(t0,true);
 162         TransitionShim.interpolate(t0,0.0);
 163         assertColorEquals(fromValue, shape.getStroke());
 164         AnimationShim.finished(t0);
 165     }
 166 
 167     @Test
 168     public void testGetTargetNode() {
 169         final Color fromValue = Color.color(0.0, 0.4, 0.8, 1.0);
 170         final Color toValue = Color.color(1.0, 0.8, 0.6, 0.4);
 171         final StrokeTransition ft = new StrokeTransition(ONE_SEC, shape, fromValue, toValue);
 172         ft.setInterpolator(Interpolator.LINEAR);
 173         final Shape shape2 = new Rectangle();
 174         final ParallelTransition pt = new ParallelTransition();
 175         pt.getChildren().add(ft);
 176         pt.setNode(shape2);
 177         shape.setStroke(Color.WHITE);
 178         shape2.setStroke(Color.WHITE);
 179 
 180         // node set, parent set
 181         assertTrue(AnimationShim.startable(ft,true));
 182         AnimationShim.doStart(ft,true);
 183         TransitionShim.interpolate(ft,0.5);
 184         assertColorEquals(Color.color(0.5, 0.6, 0.7, 0.7), shape.getStroke());
 185         assertColorEquals(Color.WHITE, shape2.getStroke());
 186         AnimationShim.finished(ft);
 187 
 188         // node null, parent set
 189         ft.setShape(null);
 190         assertTrue(AnimationShim.startable(ft,true));
 191         AnimationShim.doStart(ft,true);
 192         TransitionShim.interpolate(ft,0.4);
 193         assertColorEquals(Color.color(0.5, 0.6, 0.7, 0.7), shape.getStroke());
 194         assertColorEquals(Color.color(0.4, 0.56, 0.72, 0.76), shape2.getStroke());
 195         AnimationShim.finished(ft);
 196 
 197         // node null, parent not shape set
 198         pt.setNode(new Group());
 199         assertFalse(AnimationShim.startable(ft,true));
 200 
 201         // node null, parent null
 202         pt.setNode(null);
 203         assertFalse(AnimationShim.startable(ft,true));
 204     }
 205 
 206     @Test
 207     public void testCachedValues() {
 208         final Color fromValue = Color.color(0.0, 0.4, 0.8, 0.2);
 209         final Color toValue = Color.color(1.0, 0.8, 0.6, 0.4);
 210         final StrokeTransition ft = new StrokeTransition(ONE_SEC, shape, fromValue, toValue);
 211         ft.setInterpolator(Interpolator.LINEAR);
 212 
 213         // start
 214         assertTrue(AnimationShim.startable(ft,true));
 215         AnimationShim.doStart(ft,true);
 216         ft.setFromValue(Color.WHITE);
 217         TransitionShim.interpolate(ft,0.5);
 218         assertColorEquals(Color.color(0.5, 0.6, 0.7, 0.3), shape.getStroke());
 219         AnimationShim.finished(ft);
 220         ft.setFromValue(fromValue);
 221 
 222         // end
 223         assertTrue(AnimationShim.startable(ft,true));
 224         AnimationShim.doStart(ft,true);
 225         ft.setToValue(Color.BLACK);
 226         TransitionShim.interpolate(ft,0.2);
 227         assertColorEquals(Color.color(0.2, 0.48, 0.76, 0.24), shape.getStroke());
 228         AnimationShim.finished(ft);
 229         ft.setToValue(toValue);
 230 
 231         // shape
 232         assertTrue(AnimationShim.startable(ft,true));
 233         AnimationShim.doStart(ft,true);
 234         ft.setShape(null);
 235         TransitionShim.interpolate(ft,0.7);
 236         assertColorEquals(Color.color(0.7, 0.68, 0.66, 0.34), shape.getStroke());
 237         AnimationShim.finished(ft);
 238         ft.setShape(shape);
 239 
 240         // interpolator
 241         assertTrue(AnimationShim.startable(ft,true));
 242         AnimationShim.doStart(ft,true);
 243         ft.setInterpolator(null);
 244         TransitionShim.interpolate(ft,0.1);
 245         assertColorEquals(Color.color(0.1, 0.44, 0.78, 0.22), shape.getStroke());
 246         AnimationShim.finished(ft);
 247         ft.setInterpolator(Interpolator.LINEAR);
 248     }
 249 
 250     @Test
 251     public void testStartable() {
 252         final StrokeTransition t0 = new StrokeTransition(Duration.ONE, shape, Color.WHITE, Color.BLACK);
 253         final Paint paint2 = new LinearGradient(0, 0, 1, 1, false, null,
 254                 new Stop[] { new Stop(0, Color.RED) });
 255         assertTrue(AnimationShim.startable(t0,true));
 256 
 257         // duration is 0
 258         t0.setDuration(Duration.ZERO);
 259         assertFalse(AnimationShim.startable(t0,true));
 260         t0.setDuration(Duration.ONE);
 261         assertTrue(AnimationShim.startable(t0,true));
 262 
 263         // shape is null
 264         t0.setShape(null);
 265         assertFalse(AnimationShim.startable(t0,true));
 266         t0.setShape(shape);
 267         assertTrue(AnimationShim.startable(t0,true));
 268 
 269         // interpolator is null
 270         t0.setInterpolator(null);
 271         assertFalse(AnimationShim.startable(t0,true));
 272         t0.setInterpolator(Interpolator.LINEAR);
 273         assertTrue(AnimationShim.startable(t0,true));
 274 
 275         // fromValue
 276         t0.setFromValue(null);
 277         shape.setStroke(paint2);
 278         assertFalse(AnimationShim.startable(t0,true));
 279         shape.setStroke(Color.BLACK);
 280         assertTrue(AnimationShim.startable(t0,true));
 281         t0.setFromValue(Color.WHITE);
 282         shape.setStroke(paint2);
 283         assertTrue(AnimationShim.startable(t0,true));
 284 
 285         // toValue
 286         t0.setToValue(null);
 287         assertFalse(AnimationShim.startable(t0,true));
 288         t0.setToValue(Color.BLACK);
 289         assertTrue(AnimationShim.startable(t0,true));
 290     }
 291 
 292     @Test
 293     public void testEvaluateStartValue() {
 294         final StrokeTransition t0 = new StrokeTransition(Duration.INDEFINITE, shape, null, Color.WHITE);
 295 
 296         // first run
 297         shape.setStroke(Color.GREY);
 298         assertTrue(AnimationShim.startable(t0,true));
 299         AnimationShim.doStart(t0,true);
 300         shape.setStroke(Color.TRANSPARENT);
 301         TransitionShim.interpolate(t0,0.0);
 302         assertColorEquals(Color.GREY, shape.getStroke());
 303         AnimationShim.finished(t0);
 304 
 305         // second run
 306         shape.setStroke(Color.BLACK);
 307         assertTrue(AnimationShim.startable(t0,true));
 308         AnimationShim.doStart(t0,true);
 309         shape.setStroke(Color.WHITE);
 310         TransitionShim.interpolate(t0,0.0);
 311         assertColorEquals(Color.BLACK, shape.getStroke());
 312         AnimationShim.finished(t0);
 313     }
 314 
 315 }
< prev index next >