[jfx15] RFR: 8228570: Add various documentation clarifications [v4]
Kevin Rushforth
kcr at openjdk.java.net
Tue Aug 11 20:53:30 UTC 2020
On Mon, 10 Aug 2020 16:08:31 GMT, Nir Lisker <nlisker at openjdk.org> wrote:
>> Adds clarifications to the documentation in various places. Some notes:
>>
>> * Point 6 should probably be deferred until it is verified that the tutorials are correct enough, seeing as they were
>> updated to Java 8 only.
>> * Point 8 has been deferred until all the animation bugs have been resolevd.
>> * Point 5: I wrote new documentation about the `extractor` for the `observableArrayList(Callback<E, Observable[]>
>> extractor)` method. Later I found that `observableList(List<E> list, Callback<E, Observable[]> extractor)` already
>> talks about it (I updated it too). I'm not sure which of them we want to keep, or maybe merge them.
>> * Point 1: I think that it's necessary to mention the internal implementation behavior even if it requires a caveat that
>> this is only the current behavior and may change in the future. What constitutes a "change" is extremely important and
>> there is no way for the user to know it. I've tripped on this hard when using ReactFX which uses object equality
>> instead, so when the JavaFX observables are wrapped by ReactFX observables, the behavior changes silently.
>> I think that in the future we will want to let the user define what a change is (for example, by creating an
>> overridable method with the current behavior as the default, or using object equality and letting the user override
>> that, although that's more risky). Even a `HashMap` that uses object equality has the sister implementation
>> `IndentityHashMap` to deal with this ambiguity.
>
> Nir Lisker has updated the pull request incrementally with one additional commit since the last revision:
>
> Reverted transforms-related changes and added API note for getProperties
I left a couple inline comments. I think the changes to the two `FXCollections` methods that take an extractor
parameter are fine, other than the one comment I made which would help unify the docs between the two methods.
modules/javafx.base/src/main/java/javafx/collections/FXCollections.java line 324:
> 323: * a change in one of those observables, the user is notified of it through an
> 324: * {@link ListChangeListener.Change#wasUpdated() update} change of an attached {@code ListChangeListener}.
> These changes 325: * are unrelated to the changes made to the observable list itself using methods such as {@code
> add} and {@code remove}.
I suggest to change this to `@linkplain`.
modules/javafx.base/src/main/java/javafx/collections/FXCollections.java line 330:
> 329: * @param <E> The type of List to be wrapped
> 330: * @param extractor element to Observable[] converter. Observable objects are listened for changes on the
> element. 331: * @return a newly created ObservableList
You can probably drop the second sentence (and thus the period after the first) if you copy the following from
`observableList` to the description of this method:
Observable objects returned by the extractor (applied to each list element) are listened for changes...
modules/javafx.controls/src/main/java/javafx/scene/control/Pagination.java line 90:
> 89: * public Node call(Integer pageIndex) {
> 90: * return new Label(pageIndex + 1 + ". Lorem ipsum dolor sit amet,\n"
> 91: * + "consectetur adipiscing elit,\n"
Do you think we need keep the non-lambda version of the example? It's up to you.
modules/javafx.graphics/src/main/java/javafx/animation/Timeline.java line 49:
> 48: * <p>
> 49: * {@code Timeline} processes individual a {@code KeyFrame} at or after the specified
> 50: * time interval elapsed, it does not guarantee the exact time when a {@code KeyFrame}
The `a` and `KeyFrame` are switched in this sentence; it should be `processes an individual @{KeyFrame}` instead.
Also, the previous paragraph should say either `processes individual {@code KeyFrame}s sequentially` or `processes
individual {@code KeyFrame} objects sequentially` or similar.
-------------
PR: https://git.openjdk.java.net/jfx/pull/276
More information about the openjfx-dev
mailing list