RFR: 8374035: RichTextArea: add insertStyles property [v3]
Andy Goryachev
angorya at openjdk.org
Wed Jan 7 21:43:35 UTC 2026
On Tue, 6 Jan 2026 21:07:38 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
>
> Andy Goryachev has updated the pull request incrementally with one additional commit since the last revision:
>
> review comments
Thank you all!
-------------
PR Comment: https://git.openjdk.org/jfx/pull/2017#issuecomment-3720927769
More information about the openjfx-dev
mailing list