RFR: 8301121: RichTextArea Control (Incubator)

danielpeintner duke at openjdk.org
Fri Aug 2 10:11:36 UTC 2024


On Wed, 31 Jul 2024 15:08:44 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> modules/jfx.incubator.richtext/src/main/java/jfx/incubator/scene/control/richtext/RichTextArea.java line 157:
>> 
>>> 155:  * @since 999 TODO
>>> 156:  */
>>> 157: public class RichTextArea extends Control {
>> 
>> The *old* `TextField` and `TextArea` controls extend `TextInputControl`.
>> 
>> I wonder whether there is a a _good_ reason not doing the same for `RichTextArea`?
>> Doing so would allow to more easily switch between one or the other.
>
> Thank you for a very good question!  
> 
> The main reason is that RichTextArea (RTA) can work with a large text model which needs to be represented differently from **TextInputControl**'s simple String **text** property.  Other things, like position within the text is also very different, using `{paragraphIndex,charOffset}` instead of a simple `int` offset.  The fact that the model is separated from the control also makes it very different.
> 
> At the end, there is simply no benefit in dragging the `TextInputControl` into the picture.

I was hoping to be able to easily replace one (old) control with the _new_ one. I mean `RichTextArea` still fulfilling the requirements of `TextInputControl`. Anyhow, I understand you rational not going along this path 👍

Let me provide the use-case I have in mind (which may explain better what I am looking for).
I would like to use/keep textfields and textareas with pure text. Anyhow, having the  possibility to _squiggly_ parts of the text showing spelling mistakes. Since I assume that loading many `RichTextArea` controls (i.e., in tables) will take much longer I expect to offer spelling suggestions (and `RichTextArea`  loading) on request only.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1524#discussion_r1701641116


More information about the openjfx-dev mailing list