From 1ae31588c4560325c8e4fc09729d36ce9ef5d073 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Tue, 11 Aug 2020 00:25:55 +0200 Subject: [PATCH] FlatSmoothScrollingTest: paint "temporary" scrollbar values in line chart using a lighter color --- .../testing/FlatSmoothScrollingTest.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSmoothScrollingTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSmoothScrollingTest.java index 410ad011..6967b338 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSmoothScrollingTest.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSmoothScrollingTest.java @@ -350,7 +350,7 @@ public class FlatSmoothScrollingTest private final String name; private final Color chartColor; private int count; - private long lastTime; + private long lastTime = System.nanoTime() / 1000000; ScrollBarChangeHandler( String name, Color chartColor ) { this.name = name; @@ -416,6 +416,12 @@ public class FlatSmoothScrollingTest this.value = value; this.time = time; } + + @Override + public String toString() { + // for debugging + return String.valueOf( value ); + } } private final Map> color2dataMap = new HashMap<>(); @@ -506,6 +512,7 @@ public class FlatSmoothScrollingTest for( Map.Entry> e : color2dataMap.entrySet() ) { Color chartColor = e.getKey(); List chartData = e.getValue(); + Color temporaryValueColor = new Color( (chartColor.getRGB() & 0xffffff) | 0x40000000, true ); long seqTime = 0; int seqX = 0; @@ -531,11 +538,18 @@ public class FlatSmoothScrollingTest px = seqX; pcount = 0; } else { + boolean isTemporaryValue = isTemporaryValue( chartData, i ) || isTemporaryValue( chartData, i - 1 ); + if( isTemporaryValue ) + g.setColor( temporaryValueColor ); + // line in sequence int dx = (int) (seqX + (((data.time - seqTime) / 1000.) * secondWidth)); g.drawLine( px, py, dx, dy ); px = dx; pcount++; + + if( isTemporaryValue ) + g.setColor( chartColor ); } py = dy; @@ -544,6 +558,13 @@ public class FlatSmoothScrollingTest } } + private boolean isTemporaryValue( List chartData, int i ) { + if( i == 0 || i == chartData.size() - 1 ) + return false; + + return chartData.get( i - 1 ).value == chartData.get( i + 1 ).value; + } + private int chartWidth() { int width = 0; for( List chartData : color2dataMap.values() )