Integrated: 8374035: RichTextArea: add insertStyles property

Andy Goryachev angorya at openjdk.org
Wed Jan 7 21:48:48 UTC 2026


On Tue, 23 Dec 2025 16:51:31 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

> # Use Case
> 
> typing into RichTextArea with a default model (or any other model that supports discrete styles), in the presence of a tool bar or similar UI that allows to specify the styles to take effect on the next key press.  Example:
> - open MS Word or another rich text editor such as TextEdit
> - type something
> - place cursor at the middle of the typed text and hit command-B or ctrl-B on Win/Linux
> - notice how the formatting toolbar highlights [b] button indicating that the style for next character to be inserted has changed to bold
> - type something and confirm that inserted text is bold
> the new style is captured only in the toolbar UI, so clicking on some other part of the text reverts the bold button to the unselected state.
> 
> 
> # Problem
>  
> typing a character uses the model's logic to deal with the styles, via StyledTextModel::replace(StyleResolver resolver, TextPos start, TextPos end, String text) method, see RichTextAreaBehavior::handleTypedChar().  This worked well initially, however it makes it impossible (without extending RichTextAreaBehavior which is not a public class) to implement the behavior described earlier.
> 
> 
> # Solution
> 
> - add 'insertStyles<StyleAttributeMap>' property to the RichTextArea, which will override the model styles in RichTextAreaBehavior::handleTypedChar() if the value is not null

This pull request has now been integrated.

Changeset: 9c913f2b
Author:    Andy Goryachev <angorya at openjdk.org>
URL:       https://git.openjdk.org/jfx/commit/9c913f2b42afb2bd025751ea479f2d668a910fee
Stats:     81 lines in 3 files changed: 76 ins; 0 del; 5 mod

8374035: RichTextArea: add insertStyles property

Reviewed-by: lkostyra, kcr

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

PR: https://git.openjdk.org/jfx/pull/2017


More information about the openjfx-dev mailing list