RFR: 8242523: Update the animation and clip envelope classes

Nir Lisker nlisker at openjdk.java.net
Thu May 28 15:18:13 UTC 2020


On Tue, 26 May 2020 21:12:07 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>> Mostly refactoring in preparation of the upcoming fixes. The changes might look like a lot, but it's mostly rearranging
>> of methods. Summery of changes:
>> ### Animation
>> * Added `isNearZero` and `areNearEqual` methods that deal with `EPSILON` checks.
>> * Added `isStopped`, `isRunning` and `isPaused` convenience methods.
>> * Added `runHandler` method to deal with running the handler.
>> * Moved methods to be grouped closer to where they are used rather than by visibility.
>> * Removed the static import for `TickCalculation`.
>> * Various small subjective readability changes.
>> * Behavioral changes: switching `autoReverse` and `onFinished` properties from "Simple" to "Base" properties; and lazily
>>   initializing the `cuePoints` map.
>> 
>> ### Clip Envelopes
>> * Added `MultiLoopClipEnvelope` as an intermediate parent for infinite and finite clip envelopes.
>> * Rearranged methods order to be consistent.
>> * Replaced the `checkBounds` method with a new overload of `Utils.clamp`.
>> * Renamed `pos` to `cyclePos`.
>> * Extracted common methods: `changedDirection` and `ticksRateChange`
>> * Added internal documentation.
>> 
>> Also corrected a typo in `TicksCalculation` and added an explanation for an animation test.
>
> modules/javafx.graphics/src/main/java/javafx/animation/Animation.java line 332:
> 
>> 331:                     }
>> 332:                     if (isNearZero(newRate)) {
>> 333:                         if (isRunning()) {
> 
> The code from here to the end of the method used to be in an `else` block of the `if (isRunningEmbedded())` test. It
> will now be run even if that test is true. Was this intended, and if so, why?

If the test for `isRunningEmbedded()` passes, the method will throw an exception.

-------------

PR: https://git.openjdk.java.net/jfx/pull/196


More information about the openjfx-dev mailing list