`JRSUIUtils.java` structurally does things weirdly. The utility class mostly 
passes parameters from functions to other functions. The indirection makes 
things harder to understand the eventual purpose.

Take `AquaInternalFrameBorderMetrics.java`. It has a `static boolean` that 
caches a call to `shouldUseLegacyBorderMetrics()`, which returns 
`isSnowLeopardOrBelow`, itself a cached call to `isMacOSXSnowLeopardOrBelow()`, 
which is what finally calls `currentMacOSXVersionMatchesGivenVersionRange()`. 
When looking at the code, it takes time to unravel the path it takes. Instead 
of that, a `public static final boolean` can expose the cached value and, in 
doing so, exposes the *meaning* behind the check.

In `AquaLookAndFeel.java`, the value of `TabbedPaneUI` is calculated using 
`JRSUIUtils.TabbedPane.shouldUseTabbedPaneContrastUI()`, but that could mean 
any reason for why `"AquaTabbedPaneContrastUI"` may be the value as opposed to 
`"AquaTabbedPaneUI"`. Replacing it with `JRSUIUtils.isSnowLeopardOrBelow` 
reveals that it actually has to do with the OS version being, well, Snow 
Leopard or below.

These change makes understanding the code easier and quicker. Also more 
optimized.

Changes:
* add JRSUIConstants.ScrollBarPart.ordinal() to return the property's ordinal 
value, which is not public
* change 3 access modifiers in JRSUIControl to public allowing for access 
outside the package
* JRSUIConstants.NineSliceMetricsProvider changed to a normal Function<>
* cache `isMacOSXBigSurOrAbove` rather than calling it twice
* inline the functions for clarity
* change static initialization to group all version checks together
* document JRSUIUtils

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

Commit messages:
 - Group OSX version getting into one static block
 - Update copyright year
 - apple.laf.JRSUIUtils does not indicate what is checked, and passes things 
unnecessarily

Changes: https://git.openjdk.org/jdk/pull/10326/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10326&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8298352
  Stats: 190 lines in 13 files changed: 19 ins; 89 del; 82 mod
  Patch: https://git.openjdk.org/jdk/pull/10326.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10326/head:pull/10326

PR: https://git.openjdk.org/jdk/pull/10326

Reply via email to