From 19db8b18f7f032a856fdbcbb95c76b7ac291b850 Mon Sep 17 00:00:00 2001 From: Eppleton IT Date: Fri, 6 Jul 2018 08:57:11 +0200 Subject: [PATCH] Run the rendering in individual quantas --- .../java/html/lib/snapsvg/SnapSvgTest.java | 62 ++++++++++++++----- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/snapsvg/src/test/java/net/java/html/lib/snapsvg/SnapSvgTest.java b/snapsvg/src/test/java/net/java/html/lib/snapsvg/SnapSvgTest.java index 3a1cb95e5af732..d25bf72e626af6 100644 --- a/snapsvg/src/test/java/net/java/html/lib/snapsvg/SnapSvgTest.java +++ b/snapsvg/src/test/java/net/java/html/lib/snapsvg/SnapSvgTest.java @@ -57,26 +57,54 @@ String assertText(String msg) { } @Test - public void drawSomethingSimple() throws Exception { + public Runnable[] drawSomethingSimple() throws Exception { Paper s = Exports.Snap("#demo"); - Element bigCircle = s.circle(150, 150, 100); - bigCircle.attr(values( - "fill", "#bada55", - "stroke", "#000", - "strokeWidth", 5 - )); - Element smallCircle = s.circle(100, 150, 70); - Element discs = Element.$as(s.group(smallCircle, s.circle(200, 150, 70))); - discs.attr(values( - "fill", "#fff" - )); + Element[] elements = { null, null, null }; - bigCircle.attr(values( - "mask", discs - )); - - smallCircle.animate(values("r", 50), 1000); + return new Runnable[] { + () -> { + if (elements[0] == null) try { + elements[0] = s.circle(150, 150, 100); + } catch (NullPointerException ex) { + ex.printStackTrace(); + } + }, + () -> { + if (elements[0] == null) try { + elements[0] = s.circle(150, 150, 100); + } catch (NullPointerException ex) { + ex.printStackTrace(); + } + }, + () -> { + Element bigCircle = elements[0]; + bigCircle.attr(values( + "fill", "#bada55", + "stroke", "#000", + "strokeWidth", 5 + )); + elements[0] = bigCircle; + }, + () -> { + Element smallCircle = s.circle(100, 150, 70); + Element discs = Element.$as(s.group(smallCircle, s.circle(200, 150, 70))); + discs.attr(values( + "fill", "#fff" + )); + elements[1] = smallCircle; + elements[2] = discs; + }, + () -> { + Element bigCircle = elements[0]; + Element smallCircle = elements[1]; + Element discs = elements[2]; + bigCircle.attr(values( + "mask", discs + )); + smallCircle.animate(values("r", 50), 1000); + } + }; } private static Objs values(Object... attrs) {