RFR: 8371070: RichParagraph enhancements [v9]
Kevin Rushforth
kcr at openjdk.org
Mon Dec 22 23:37:09 UTC 2025
On Mon, 22 Dec 2025 23:29:19 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> This PR addresses the user feedback:
>>
>> In RichParagraph you have a note to make getSegments() public. It would be helpful if it was.
>>
>>
>> The problem being solved here is to allow the developers to easily add functionality to the existing `RichTextModel` (and its storage implementation) without creating a new model from scratch.
>>
>> This is done in two parts:
>>
>> 1. Allowing the custom model to alter the paragraph by giving access to its Builder via a new protected method
>>
>>
>> protected RichParagraph.Builder buildParagraph(int index)
>>
>>
>> 2. Adding two methods that give access to the segments in the `RichParagraph` and `RichParagraph.Builder` classes:
>>
>> - getSegmentCount()
>> - getSegment(int index)
>>
>> NOTE: Even though returning an (immutable) List might be considered "more useful", doing so would necessitate creating a copy - something I do want to avoid.
>
> Andy Goryachev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
>
> - prepare paragraph
> - Merge branch 'master' into 8371070.enhance
> - javadoc
> - cleanup
> - Merge branch 'master' into 8366198.rbuilder
> - rich paragraph builder api
> - Merge branch 'master' into 8371070.enhance
> - npe
> - merge
> - Merge branch 'master' into 8371070.enhance
> - ... and 4 more: https://git.openjdk.org/jfx/compare/b39e1faa...dd3ec196
Looks good.
Go ahead and create the CSR.
modules/jfx.incubator.richtext/src/main/java/jfx/incubator/scene/control/richtext/model/RichTextModel.java line 90:
> 88: * Prepares the paragraph by populating a builder with the paragraph content.
> 89: * This method allows the custom model to add highlights and decorations
> 90: * without affecting the base class storage model.
Thank you. This is clear now.
modules/jfx.incubator.richtext/src/main/java/jfx/incubator/scene/control/richtext/model/RichTextModel.java line 810:
> 808: }
> 809:
> 810: private RichParagraph.Builder buildParagraph() {
Minor: this is an impl detail, but maybe rename this one, too? Up to you.
-------------
Marked as reviewed by kcr (Lead).
PR Review: https://git.openjdk.org/jfx/pull/1966#pullrequestreview-3606074611
PR Review Comment: https://git.openjdk.org/jfx/pull/1966#discussion_r2641515471
PR Review Comment: https://git.openjdk.org/jfx/pull/1966#discussion_r2641516066
More information about the openjfx-dev
mailing list