RichTextArea: API Review
quizynox
quizynox at gmail.com
Wed Aug 14 13:35:42 UTC 2024
Hello,
> As also mentioned in the proposal, there are already 3rd party RTAs -
> RichTextFX and Gluon's. Does the proposed RTA offer more than these
> (besides the ease of use by being in JavaFX)? Do the building blocks
> of these offer advantages that the proposed building blocks don't? An
> abstract test that can be done is to see if these controls can be
> "retrofitted" with the proposed new building blocks (no need to
> actually rewrite the code). If not, it could hint to an
> incompatibility or a limit of the proposal that makes it less appealing.
- Gluon's RTA is dual-licensed, so unlike OpenJFX, it is not free for
commercial projects (even internal non-profit projects). It can't be an
alternative, because of this alone.
- RichTextFX depends on several long-unmaintained libraries, namely
ReactFX. There is nothing that can be done from the OpenJFX side, as it
would require rewriting RichTextFX from scratch.
I don't think anyone expects OpenJFX to provide something as complex as
CodeMirror. However, having a basic rich text control with reasonable
extension points would already be a significant improvement.
On 14/08/2024 16.03, Nir Lisker wrote:
> My questions are similar to the ones in the previous discussion, but
> now I can be more specific.
>
> I see a list of "building blocks" in
> https://bugs.openjdk.org/browse/JDK-8300569, which I like.
> Specifically, two types of building blocks additions are important as
> I see it: rich text-specific ones like document models and a way to
> add decorations/colors etc., and the split of controls in general into
> skin/input/behavior (on which there has been a long discussion). My
> questions are:
>
> 1. If these are provided to the user, how difficult is it for them to
> compose a RTA? JavaFX doesn't provide some somewhat-common controls
> that you see in various other libraries with the reasoning that the
> library should give the user the ability to create their own controls
> (which is not so easy right now). Is RTA an exception, like
> ColorPicker and DatePicker?
> 2. Can these building blocks be used to enhance existing controls? For
> example, to help with TextArea's performance with long texts, or allow
> rich text-like features in other controls, like the squiggly red line
> under the text in a TextField?
> 3. As also mentioned in the proposal, there are already 3rd party RTAs
> - RichTextFX and Gluon's. Does the proposed RTA offer more than these
> (besides the ease of use by being in JavaFX)? Do the building blocks
> of these offer advantages that the proposed building blocks don't? An
> abstract test that can be done is to see if these controls can be
> "retrofitted" with the proposed new building blocks (no need to
> actually rewrite the code). If not, it could hint to an
> incompatibility or a limit of the proposal that makes it less appealing.
>
> Thanks,
> Nir
>
>
> On Fri, Aug 2, 2024 at 10:41 PM Andy Goryachev
> <andy.goryachev at oracle.com> wrote:
>
> Dear fellow developers:
>
> Thank you for the early feedback on the RichTextArea proposal [0].
>
> We are moving to the next phase by submitting the public pull
> request [1].The main goal is to include the new control in an
> incubating module [8], hopefully in jfx24, as a means of putting
> non-final API in the hands of developers while the API and
> implementation progress towards either finalization or removal in
> a future release.
>
> For your convenience, two test applications are provided -
> *RichTextAreaDemoApp* and *CodeAreaDemoApp* which demonstrate the
> new controls with a number of different models.In addition to
> these two testers, please check out a simple standalone rich text
> editor application, *RichEditorDemoApp*,
>
> We would encourage anyone - the javafx developers, and especially
> the application developers, to take a look at the public API
> [3].It's probably less important at this stage to do a deep code
> review of the implementation, but we would certainly appreciate
> and welcome your code review comments.
>
> Thank you in advance,
>
> -andy
>
> [0] Proposal:
> https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextArea.md
>
> [1] Pull request: https://github.com/openjdk/jfx/pull/1524
>
> [2] Discussion points:
> https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextAreaDiscussion.md
>
> [3] API specification (javadoc):
> https://cr.openjdk.org/~angorya/RichTextArea/javadoc
>
> [4] CSS Reference:
> https://cr.openjdk.org/~angorya/RichTextArea/javadoc/javafx.graphics/javafx/scene/doc-files/cssref.html
>
> [5] Behavior doc:
> https://github.com/andy-goryachev-oracle/jfx/blob/8301121.RichTextArea/doc-files/behavior/RichTextAreaBehavior.md
>
> [6] RichTextArea RFE: https://bugs.openjdk.org/browse/JDK-8301121
> <https://bugs.openjdk.org/browse/JDK-8301121>
>
> [7] Previous (now obsolete) draft pull request:
> https://github.com/openjdk/jfx/pull/1374
>
> [8] Incubator module JEP:
> https://github.com/kevinrushforth/jfx/blob/javafx.incubator/INCUBATOR-MODULES.md
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240814/d649ea39/attachment-0001.htm>
More information about the openjfx-dev
mailing list