Re: RFR: 8255015: Inconsistent illumination of 3D shape by PointLight [v13]

2021-10-28 Thread Ambarish Rapte
On Thu, 28 Oct 2021 13:50:40 GMT, Andreas Heger  wrote:

>> The inconsistent illumination happens on Macs with retina displays only if 
>> the 3D shape is placed in a SubScene. The light sources are located with 
>> wrong coordinates in sub scenes and this causes a different illumination. 
>> The wrong coordinates for the light sources come from the fact that the 
>> retina pixel scale factors are not used in a SubScene.
>> 
>> With this pull request, the retina pixel scale factors will be also used in 
>> SubScenes and this should resolve the bug 
>> [https://bugs.openjdk.java.net/browse/JDK-8255015](url)
>
> Andreas Heger has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8255015: Copyright year and wrong spelling in comment corrected

Marked as reviewed by arapte (Reviewer).

-

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


Integrated: 8271091: Missing API docs in UI controls classes

2021-10-28 Thread Ajit Ghaisas
On Wed, 20 Oct 2021 14:42:44 GMT, Ajit Ghaisas  wrote:

> This PR fixes javadoc warnings in javafx.controls and javafx.web modules.
> Note : 
> - The javadoc needs to be generated with the JDK 18 EA build.
> - 2 javadoc warnings in javafx.controls TabPane class will be fixed under - 
> [JDK-8271085](https://bugs.openjdk.java.net/browse/JDK-8271085)
> - There are still 20 javadoc warnings remaining in javafx.controls module and 
> 3 warnings remaining in javafx.web module. The root cause is different and 
> they will be addressed under 
> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)

This pull request has now been integrated.

Changeset: a9474055
Author:Ajit Ghaisas 
URL:   
https://git.openjdk.java.net/jfx/commit/a9474055994d104288aff22fdb70f76ed8519627
Stats: 269 lines in 49 files changed: 147 ins; 15 del; 107 mod

8271091: Missing API docs in UI controls classes

Reviewed-by: nlisker, kcr

-

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


Integrated: 8271090: Missing API docs in scenegraph classes

2021-10-28 Thread Ajit Ghaisas
On Fri, 22 Oct 2021 11:23:07 GMT, Ajit Ghaisas  wrote:

> This PR fixes javadoc warnings primarily in javafx.graphics module along with 
> a remaining few in javafx.fxml, javafx.base and javafx.media modules.
> 
> Note :
> - The javadoc needs to be generated with the JDK 18 EA build.
> - There are still few remaining warnings in these modules. The root cause is 
> different and they will be addressed under 
> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)

This pull request has now been integrated.

Changeset: e7a106fa
Author:Ajit Ghaisas 
URL:   
https://git.openjdk.java.net/jfx/commit/e7a106faf3c0bb0126080d2f516248195679bf61
Stats: 133 lines in 28 files changed: 89 ins; 4 del; 40 mod

8271090: Missing API docs in scenegraph classes

Reviewed-by: kcr, nlisker

-

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


Re: RFR: 8271091: Missing API docs in UI controls classes [v5]

2021-10-28 Thread Nir Lisker
On Thu, 28 Oct 2021 14:27:52 GMT, Ajit Ghaisas  wrote:

>> This PR fixes javadoc warnings in javafx.controls and javafx.web modules.
>> Note : 
>> - The javadoc needs to be generated with the JDK 18 EA build.
>> - 2 javadoc warnings in javafx.controls TabPane class will be fixed under - 
>> [JDK-8271085](https://bugs.openjdk.java.net/browse/JDK-8271085)
>> - There are still 20 javadoc warnings remaining in javafx.controls module 
>> and 3 warnings remaining in javafx.web module. The root cause is different 
>> and they will be addressed under 
>> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)
>
> Ajit Ghaisas has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   fix review comments

I didn't check the generated HTML pages or the correctness of the docs with 
respect to the functionality of their methods, but the docs themselves look 
good.

-

Marked as reviewed by nlisker (Reviewer).

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


Re: RFR: 8271090: Missing API docs in scenegraph classes [v4]

2021-10-28 Thread Kevin Rushforth
On Thu, 28 Oct 2021 07:23:53 GMT, Ajit Ghaisas  wrote:

>> This PR fixes javadoc warnings primarily in javafx.graphics module along 
>> with a remaining few in javafx.fxml, javafx.base and javafx.media modules.
>> 
>> Note :
>> - The javadoc needs to be generated with the JDK 18 EA build.
>> - There are still few remaining warnings in these modules. The root cause is 
>> different and they will be addressed under 
>> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)
>
> Ajit Ghaisas has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   fix review comments

Marked as reviewed by kcr (Lead).

-

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


Re: RFR: 8271091: Missing API docs in UI controls classes [v5]

2021-10-28 Thread Kevin Rushforth
On Thu, 28 Oct 2021 14:27:52 GMT, Ajit Ghaisas  wrote:

>> This PR fixes javadoc warnings in javafx.controls and javafx.web modules.
>> Note : 
>> - The javadoc needs to be generated with the JDK 18 EA build.
>> - 2 javadoc warnings in javafx.controls TabPane class will be fixed under - 
>> [JDK-8271085](https://bugs.openjdk.java.net/browse/JDK-8271085)
>> - There are still 20 javadoc warnings remaining in javafx.controls module 
>> and 3 warnings remaining in javafx.web module. The root cause is different 
>> and they will be addressed under 
>> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)
>
> Ajit Ghaisas has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   fix review comments

This looks good. I confirmed that the implicit constructor for 
`PopupControl.CSSBridge` is `protected` in JavaFX 17, so making the explicitly 
added contructor be `protected` is correct.

-

Marked as reviewed by kcr (Lead).

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


Re: RFR: 8255015: Inconsistent illumination of 3D shape by PointLight [v13]

2021-10-28 Thread Kevin Rushforth
On Thu, 28 Oct 2021 13:50:40 GMT, Andreas Heger  wrote:

>> The inconsistent illumination happens on Macs with retina displays only if 
>> the 3D shape is placed in a SubScene. The light sources are located with 
>> wrong coordinates in sub scenes and this causes a different illumination. 
>> The wrong coordinates for the light sources come from the fact that the 
>> retina pixel scale factors are not used in a SubScene.
>> 
>> With this pull request, the retina pixel scale factors will be also used in 
>> SubScenes and this should resolve the bug 
>> [https://bugs.openjdk.java.net/browse/JDK-8255015](url)
>
> Andreas Heger has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8255015: Copyright year and wrong spelling in comment corrected

Marked as reviewed by kcr (Lead).

-

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


Re: RFR: 8271091: Missing API docs in UI controls classes [v5]

2021-10-28 Thread Kevin Rushforth
On Thu, 28 Oct 2021 23:30:32 GMT, Kevin Rushforth  wrote:

>> Ajit Ghaisas has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   fix review comments
>
> modules/javafx.controls/src/main/java/javafx/scene/control/PopupControl.java 
> line 1132:
> 
>> 1130:  * Constructor for subclasses to call.
>> 1131:  */
>> 1132: protected CSSBridge() {
> 
> Please revert this change. Since the class is protected, it's a compatible 
> change, but any change to a method's signature, return type, or modifiers 
> needs a CSR.

Oh! never mind. I misread this. I see that you _are_ reverting it back. That's 
good then (and a good catch).

-

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


Re: RFR: 8271091: Missing API docs in UI controls classes [v5]

2021-10-28 Thread Kevin Rushforth
On Thu, 28 Oct 2021 14:27:52 GMT, Ajit Ghaisas  wrote:

>> This PR fixes javadoc warnings in javafx.controls and javafx.web modules.
>> Note : 
>> - The javadoc needs to be generated with the JDK 18 EA build.
>> - 2 javadoc warnings in javafx.controls TabPane class will be fixed under - 
>> [JDK-8271085](https://bugs.openjdk.java.net/browse/JDK-8271085)
>> - There are still 20 javadoc warnings remaining in javafx.controls module 
>> and 3 warnings remaining in javafx.web module. The root cause is different 
>> and they will be addressed under 
>> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)
>
> Ajit Ghaisas has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   fix review comments

The doc changes look good. Please revert the access modifier change.

modules/javafx.controls/src/main/java/javafx/scene/control/PopupControl.java 
line 1132:

> 1130:  * Constructor for subclasses to call.
> 1131:  */
> 1132: protected CSSBridge() {

Please revert this change. Since the class is protected, it's a compatible 
change, but any change to a method's signature, return type, or modifiers needs 
a CSR.

-

Changes requested by kcr (Lead).

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


Re: RFR: 8274274: Update JUnit to version 5.8.1 [v5]

2021-10-28 Thread John Hendrikx
On Sat, 25 Sep 2021 13:55:15 GMT, John Hendrikx  wrote:

>> I've added JUnit 5 as a test dependency and made sure that the JUnit 4 tests 
>> still work.  Also added a single JUnit 5 tests, and confirmed it works.
>> 
>> I've updated the Eclipse project file for the base module only.
>
> John Hendrikx has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Readd junit declaration in allprojects and set junit version to 4.13.2

I was on holidays, I've updated the title.

-

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


Re: Improve property system to facilitate correct usage

2021-10-28 Thread Michael Strauß
I'd like to discuss the API changes surrounding content bindings for
this PR: https://github.com/openjdk/jfx/pull/590

Content bindings in the property system are semantically similar to
regular bindings:
1. You can only have a single content binding for a collection-type property
2. Unidirectional content bindings and bidirectional content bindings
are mutually exclusive

For this reason, and in order to support the behavioral changes
outlined in the PR, the content binding API (in ReadOnlyListProperty)
was changed as follows:

void bindContent(ObservableList source);
  + @Deprecated(since = "18", forRemoval = true)
void unbindContent(Object object);
  + void unbindContent();
  + boolean isContentBound();

This is not a breaking change, and allows application developers to
phase out the superfluous argument for `unbindContent` over time.

What might be more controversial is that this imposes a new
implementation requirement for some exotic implementations of
collection-type properties:

1. Right now, content bindings are implemented in
ReadOnlyListProperty, and every implementation of ROLP inherits the
default content binding implementation.

2. With the changed API, the implementation moves from
ReadOnlyListProperty to (ReadOnly)ListPropertyBase. This means that a
class that implements (RO)LP, but not (RO)LPBase, does not inherit the
default content binding implementation and needs to provide its own
implementation if it wants to support content bindings.

Of course, implementing (RO)LP without using (RO)LPBase is extremely
unusual. It requires the implementer to re-implement lots of code like
`ListExpressionHelper` and binding listeners.
Still, it's an additional requirement for these implementations that
also want to support content bindings. If content bindings are not
required, then the "old" (RO)LP implementation will continue to
compile and work.

What we get from this change are powerful correctness guarantees for
users of the API. Do you think this is a trade worth making?


On Wed, Jul 28, 2021 at 1:23 AM Michael Strauß  wrote:
>
> I propose a set of changes to the JavaFX property system that I've
> outlined in this PR: https://github.com/openjdk/jfx/pull/590
>
> The changes fall into two categories: enforcement of correct usage
> (there are several cases listed in the PR), and deprecating untyped
> APIs (for removal in a future version) so as to make the intent of the
> API more clear to developers.
>
> Even though there are breaking changes, the impact on application code
> should be minimal. I'd welcome any comments on this proposal.


Re: RFR: 8271091: Missing API docs in UI controls classes [v5]

2021-10-28 Thread Ajit Ghaisas
> This PR fixes javadoc warnings in javafx.controls and javafx.web modules.
> Note : 
> - The javadoc needs to be generated with the JDK 18 EA build.
> - 2 javadoc warnings in javafx.controls TabPane class will be fixed under - 
> [JDK-8271085](https://bugs.openjdk.java.net/browse/JDK-8271085)
> - There are still 20 javadoc warnings remaining in javafx.controls module and 
> 3 warnings remaining in javafx.web module. The root cause is different and 
> they will be addressed under 
> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)

Ajit Ghaisas has updated the pull request incrementally with one additional 
commit since the last revision:

  fix review comments

-

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/646/files
  - new: https://git.openjdk.java.net/jfx/pull/646/files/b4d5dc4f..1ab36f72

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=646&range=04
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=646&range=03-04

  Stats: 10 lines in 3 files changed: 0 ins; 0 del; 10 mod
  Patch: https://git.openjdk.java.net/jfx/pull/646.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/646/head:pull/646

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


Re: RFR: 8271091: Missing API docs in UI controls classes [v4]

2021-10-28 Thread Ajit Ghaisas
On Wed, 27 Oct 2021 16:12:11 GMT, Nir Lisker  wrote:

>> Ajit Ghaisas has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   fix review comments
>
> modules/javafx.controls/src/main/java/javafx/scene/control/CheckMenuItem.java 
> line 89:
> 
>> 87:  
>> **/
>> 88: /**
>> 89:  * Constructs a default {@code CheckMenuItem}.
> 
> `Label` uses "Creates an empty label" for the default constructor because it 
> has no text or graphic. Maybe it's more informative that way.

It does make sense to modify it. I will change it.

> modules/javafx.controls/src/main/java/javafx/scene/control/PopupControl.java 
> line 1133:
> 
>> 1131:  */
>> 1132: public CSSBridge() {
>> 1133: }
> 
> Looking at the [docs for 
> 17](https://openjfx.io/javadoc/17/javafx.controls/javafx/scene/control/PopupControl.CSSBridge.html),
>  the constructor there is `protected`, here it's `public`. Was this changed 
> recently? If it's supposed to be `protected`, then the constructor is for 
> subclasses.

This is a very good catch. Thanks!

Changing this to public was a mistake this PR was about to make.
In openjfx17, there is no constructor defined - that means - it gets generated 
implicitly which is `protected`.
I introduced an explicit constructor in this PR while fixing the "missing 
javadoc" comment. Inadvertently I had made it `public` in this PR.
Now, I have made it `protected` in the latest commit.

> modules/javafx.controls/src/main/java/javafx/scene/control/skin/VirtualContainerBase.java
>  line 67:
> 
>> 65: 
>> 66: /**
>> 67:  * Constructs a {@code VirtualContainerBase}
> 
> The class is `abstract`, so possibly the constructor should be `protected`, 
> and we might want to say "Constructor for subclasses" anyway.

I have corrected the javadoc to match "Constructor for subclasses to call.".
I would like to avoid changing the access modifier to `protected` as part of 
javadoc fix.

-

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


Re: RFR: 8255015: Inconsistent illumination of 3D shape by PointLight [v13]

2021-10-28 Thread Andreas Heger
> The inconsistent illumination happens on Macs with retina displays only if 
> the 3D shape is placed in a SubScene. The light sources are located with 
> wrong coordinates in sub scenes and this causes a different illumination. The 
> wrong coordinates for the light sources come from the fact that the retina 
> pixel scale factors are not used in a SubScene.
> 
> With this pull request, the retina pixel scale factors will be also used in 
> SubScenes and this should resolve the bug 
> [https://bugs.openjdk.java.net/browse/JDK-8255015](url)

Andreas Heger has updated the pull request incrementally with one additional 
commit since the last revision:

  8255015: Copyright year and wrong spelling in comment corrected

-

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/531/files
  - new: https://git.openjdk.java.net/jfx/pull/531/files/1598c604..9c10d967

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=531&range=12
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=531&range=11-12

  Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jfx/pull/531.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/531/head:pull/531

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


Re: RFR: 8255015: Inconsistent illumination of 3D shape by PointLight [v12]

2021-10-28 Thread Andreas Heger
On Wed, 27 Oct 2021 09:36:20 GMT, Ambarish Rapte  wrote:

>> Andreas Heger has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   8255015: testScene variable must be volatile and new line at the end of 
>> the file added
>
> tests/system/src/test/java/test/robot/test3d/PointLightIlluminationTest.java 
> line 148:
> 
>> 146:  * Creates a new scene with a subscene which contains a perspective 
>> camera and a sphere
>> 147:  * Although this test class checks the pointlight illumination, 
>> there is no explicit pointlight
>> 148:  * in the scene. For the test, it is sufficient to use the default 
>> pointlight which is created
> 
> minor: Please include this small correction along with the copyright year 
> change. 
> pointlight -> point light

Thanks for the review! I corrected the copyright year and the point light 
spelling.

-

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


Re: RFR: 8271090: Missing API docs in scenegraph classes [v4]

2021-10-28 Thread Nir Lisker
On Thu, 28 Oct 2021 07:23:53 GMT, Ajit Ghaisas  wrote:

>> This PR fixes javadoc warnings primarily in javafx.graphics module along 
>> with a remaining few in javafx.fxml, javafx.base and javafx.media modules.
>> 
>> Note :
>> - The javadoc needs to be generated with the JDK 18 EA build.
>> - There are still few remaining warnings in these modules. The root cause is 
>> different and they will be addressed under 
>> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)
>
> Ajit Ghaisas has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   fix review comments

I didn't check the generated HTML pages, and in some cases I'm not familiar 
enough with the API to evaluate the correctness of the description, but I 
checked the doc comments by themselves and these look good.

-

Marked as reviewed by nlisker (Reviewer).

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


Re: RFR: 8271090: Missing API docs in scenegraph classes [v4]

2021-10-28 Thread Ajit Ghaisas
> This PR fixes javadoc warnings primarily in javafx.graphics module along with 
> a remaining few in javafx.fxml, javafx.base and javafx.media modules.
> 
> Note :
> - The javadoc needs to be generated with the JDK 18 EA build.
> - There are still few remaining warnings in these modules. The root cause is 
> different and they will be addressed under 
> [JDK-8270996](https://bugs.openjdk.java.net/browse/JDK-8270996)

Ajit Ghaisas has updated the pull request incrementally with one additional 
commit since the last revision:

  fix review comments

-

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/650/files
  - new: https://git.openjdk.java.net/jfx/pull/650/files/e4d337c5..69b6a759

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=650&range=03
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=650&range=02-03

  Stats: 16 lines in 2 files changed: 0 ins; 0 del; 16 mod
  Patch: https://git.openjdk.java.net/jfx/pull/650.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/650/head:pull/650

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


Re: RFR: 8271090: Missing API docs in scenegraph classes [v3]

2021-10-28 Thread Ajit Ghaisas
On Wed, 27 Oct 2021 16:06:38 GMT, Nir Lisker  wrote:

> Added a few more comments, otherwise looks fine.

Thanks for your detailed review.

> modules/javafx.graphics/src/main/java/javafx/stage/PopupWindow.java line 156:
> 
>> 154: 
>> 155: /**
>> 156:  * Creates a {@code PopupWindow}.
> 
> The `PopupWIndow` class is abstract. Do we still keep this wording?

I have changed it to - "Constructor for subclasses to call." as in other cases.

> modules/javafx.graphics/src/main/java/javafx/stage/Window.java line 794:
> 
>> 792:  *
>> 793:  * An {@link IllegalStateException} is thrown if this property is 
>> set
>> 794:  * on a thread other than the JavaFX Application Thread.
> 
> Shouldn't this be in a `@throws`?

Yes, only javadoc for `setScene()` method should use `@throws`.
The description for the property does not (and should not) recognize a 
`@throws`, hence I have kept the original description intact.

-

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