On Thu, 10 Mar 2022 22:22:29 GMT, Harshitha Onkar <d...@openjdk.java.net> wrote:

>> Previously while tabbing through the JTable cell, the cell highlighter/focus 
>> ring was not visible against the selection background. 
>> 
>> Changes are made to Aqua LAF to derive a brighter focus ring color by 
>> changing hue, saturation and brightness of selection background color so 
>> that it is visible while tabbing through `JTable` cells. A new method is 
>> added for this purpose which takes in `selectionBackground` color, does the 
>> hue, saturation and brightness manipulation and returns a new focus ring 
>> color. There are edge cases where the HSB transformation does not yield the 
>> right focus ring color, for these cases a default color is returned that is 
>> different and can be seen against the `selectionBackground`.
>> 
>> **Edge Cases**
>> **Selection Background**     -----       **Returned Focus Ring Color**
>> - White/ Black                        ----->          Gray
>> 
>> - Shade of Gray 
>> towards white (r=g=b >= 128)  ----->      Black
>> 
>> - Shade of Gray 
>> towards Black (r=g=b < 128)    ------>     White
>> 
>> A test case is added to compare the RGB difference between the original 
>> focus ring color & selection background and the brighter focus ring color & 
>> selection background.
>> 
>> PS: The native L&F (Mac OS) and Swing L&F for JTable cell tabbing differs 
>> (on native tables the cell background turns white on focus with a cell focus 
>> ring). Since the background for Swing tables can be set by users and also 
>> overridden by subclassing `DefaultTableCellRenderer`, and to adhere to 
>> current implementation of Swing, the cell background changes are not 
>> incorporated. Only the Focus Ring/ Cell Highlighter is made more prominent 
>> against the selection background.
>
> Harshitha Onkar has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   formatting changes to test case

src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java line 892:

> 890:             "Table.focusCellBackground", textHighlightText,
> 891:             "Table.focusCellForeground", textHighlight,
> 892:             "Table.focusCellHighlightBorder", new 
> BorderUIResource.LineBorderUIResource(deriveContrastFocusRing(selectionBackground),
>  2),

You have used border thickness as 2 without relying on scale factor. Did you 
check if it looks same in retina as well as non-retina display?

src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java line 1192:

> 1190: 
> 1191:         //create and return Color corresponding to new hsbValues
> 1192:         return Color.getHSBColor(hsbValues[0], hsbValues[1], 
> hsbValues[2]);

It seems you are only manipulating hue and saturation, not the brightness which 
is set to 1.0f throughout..need to change the javadoc comment

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

PR: https://git.openjdk.java.net/jdk/pull/7768

Reply via email to