On Tue, 11 Jan 2022 20:58:05 GMT, Alisen Chung <ach...@openjdk.org> wrote:

>> Adjusted the AquaLF scrollbar to account for border inset settings when 
>> dragging the thumb and clicking on the track.
>
> Alisen Chung has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   updated copyright dates, updated test and fix to also check vertical borders

Changes requested by aivanov (Reviewer).

src/java.desktop/macosx/classes/com/apple/laf/AquaScrollBarUI.java line 2:

> 1: /*
> 2:  * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights 
> reserved.

The must be a comma after the second year, it was there previously.
Suggestion:

 * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved.

src/java.desktop/macosx/classes/com/apple/laf/AquaScrollBarUI.java line 239:

> 237:         syncState(fScrollBar);
> 238:         Insets insets = fScrollBar.getInsets();
> 239:         return 
> JRSUIUtils.HitDetection.getHitForPoint(painter.getControl(), 0, 0,

Probably these zeroes should rather be `insets.left` and `insets.top` 
correspondingly.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 2:

> 1: /*
> 2:  * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights 
> reserved.

There must be a comma after the second year.
Suggestion:

 * Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
33:

> 31: import java.io.File;
> 32: import java.io.IOException;
> 33: import java.lang.reflect.InvocationTargetException;

Neither `ImageObserver` nor `InvocationTargetException` are used. These two 
imports must be removed.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
55:

> 53:     public static final int HEIGHT = 20;
> 54: 
> 55:     private static void setLookAndFeel(UIManager.LookAndFeelInfo laf) {

I'd suggest moving the `main` here, and placing the helper `setLookAndFeel` 
after both `test*` methods. This way a reader would know right away what the 
test does, the test methods follow `main` to see the actual test code.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
88:

> 86:         // check border for thumb
> 87:         for (int i = WIDTH - BORDER_WIDTH; i < WIDTH; i++) {
> 88:             for (int j = 0; j < HEIGHT; j++) {

Now that there are two test methods, I'd suggest using `x` and `y` as loop 
variables:
Suggestion:

        for (int x = WIDTH - BORDER_WIDTH; x < WIDTH; x++) {
            for (int y = 0; y < HEIGHT; y++) {


This would make it clearer how comparison works.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
90:

> 88:             for (int j = 0; j < HEIGHT; j++) {
> 89:                 int c1 = image1.getRGB(i,j);
> 90:                 int c2 = image2.getRGB(i,j);

Please put a space after the commas in parameter list.
Suggestion:

                int c1 = image1.getRGB(i, j);
                int c2 = image2.getRGB(i, j);

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
91:

> 89:                 int c1 = image1.getRGB(i,j);
> 90:                 int c2 = image2.getRGB(i,j);
> 91:                 if(c1 != c2) {

Please put a space between the keywords and an opening parenthesis.
 ```suggestion
                if (c1 != c2) {

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
126:

> 124:         // check border for thumb
> 125:         for (int i = WIDTH - BORDER_WIDTH; i < WIDTH; i++) {
> 126:             for (int j = 0; j < HEIGHT; j++) {

Using `x` and `y` would make the loops clearer:
Suggestion:

        for (int y = WIDTH - BORDER_WIDTH; y < WIDTH; y++) {
            for (int x = 0; x < HEIGHT; x++) {

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
129:

> 127:                 int c1 = image1.getRGB(j,i);
> 128:                 int c2 = image2.getRGB(j,i);
> 129:                 if(c1 != c2) {

Missing spaces
Suggestion:

                int c1 = image1.getRGB(j, i);
                int c2 = image2.getRGB(j, i);
                if (c1 != c2) {

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
133:

> 131:                                        + Integer.toHexString(c1));
> 132:                     System.out.println(i + " " + j + " " + "Color2: "
> 133:                                        + Integer.toHexString(c2));

The coordinates must be reversed in the case of vertical scrollbar.
However, if you rename the loop variables to `x` and `y` as suggested above, 
`getRGB` and the error messages would be the same and would use the natural 
order for `x` and `y`.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
160:

> 158: 
> 159:     // custom border
> 160:     private static class HorizontalCustomBorder implements Border {

Both `HorizontalCustomBorder` and `VerticalCustomBorder` could be implemented 
as a single parametrised class. However, it's okay to keep them separate, 
there's not much code; introducing a new superclass wouldn't make the code 
clearer.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
161:

> 159:     // custom border
> 160:     private static class HorizontalCustomBorder implements Border {
> 161:         public void paintBorder(Component c, Graphics g, int x, int y, 
> int width, int height) {

I suggest adding `@Override` annotation to the methods implementing `Border` 
interface, that is to all the methods in both Both `HorizontalCustomBorder` and 
`VerticalCustomBorder` classes.

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
167:

> 165: 
> 166:         public Insets getBorderInsets(Component c) {
> 167:             return new Insets(0, 0, 0, 150);

Suggestion:

            return new Insets(0, 0, 0, BORDER_WIDTH);

test/jdk/java/awt/Scrollbar/AquaLFScrollbarTest/ScrollBarBorderTest.java line 
183:

> 181: 
> 182:         public Insets getBorderInsets(Component c) {
> 183:             return new Insets(0, 0, 150, 0);

Suggestion:

            return new Insets(0, 0, BORDER_WIDTH, 0);

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

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

Reply via email to