RFR: JDK-8287261: [macos] JList Focus Ring color doesn't follow Accent color changes on macOS
Harshitha Onkar
honkar at openjdk.java.net
Wed Jun 1 16:58:33 UTC 2022
On Wed, 1 Jun 2022 10:08:37 GMT, Tejesh R <tr at openjdk.org> wrote:
>> With the proposed fix, JList's focus ring color follows accent color changes. Previously the focus ring for JList was not prominently visible and did not follow accent color changes.
>>
>> While investing a similar issue related to JTable (https://github.com/openjdk/jdk/pull/7768#discussion_r839813517), it was observed that List.focusCellHighlightBorder was using the cellFocusRing color as well. This PR extends the focus ring accent color changes to JLists.
>>
>> Related issues: [JDK-7124282](https://bugs.openjdk.java.net/browse/JDK-7124282) , [JDK-8261243](https://bugs.openjdk.java.net/browse/JDK-8261243)
>>
>> #### Summary of changes
>>
>> - focusCellHighlightBorder in `AquaLookAndFeel` changed which is used for cell border for lists and tables
>> - code related to on-the-fly focus ring color refactored into a separate method (`changeFocusRingColor()`) for re-usability
>> - `changeFocusRingColor()` called when PropertyChangeEvent == FRAME_ACTIVE_PROPERTY and the frame gains focus, instead of calling in individual `swapSelectionColors` in `AquaFocusHandler.java`
>> - Common test added - `CellFocusRingTest`, which tests for both cases - Tables & Lists.
>>
>> **Before and After screenshots of JList** _(Screenshots from SwingSet2 demo)_
>>
>> 
>
> test/jdk/javax/swing/JTable/CellFocusRingTest.java line 85:
>
>> 83: }
>> 84:
>> 85: if (UIManager.getDefaults().get("CellFocus.color") != null
>
> if (UIManager.getDefaults().get("CellFocus.color") != null
> && UIManager.getDefaults().get("CellFocus.color")
> instanceof Color)
>
> can be changed into
>
> if (UIManager.getDefaults().get("CellFocus.color")
> instanceof Color)
>
> Since if the object is null then `instanceof` returns false.
@TejeshR13 The second half of the condition is executed only if `"CellFocus.color" != null` (due to and conditional)
-------------
PR: https://git.openjdk.java.net/jdk/pull/8896
More information about the client-libs-dev
mailing list