Thank you for offering your perspective!

Just wanted to add that one of the design goals of CodeArea is to enable the 
app or third party devs to implement the functionality found in CodeMirror or a 
similar code editor.

-andy



From: openjfx-dev <openjfx-dev-r...@openjdk.org> on behalf of quizynox 
<quizy...@gmail.com>
Date: Wednesday, August 14, 2024 at 06:35
To: openjfx-dev@openjdk.org <openjfx-dev@openjdk.org>
Subject: Re: RichTextArea: API Review

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.goryac...@oracle.com<mailto:andy.goryac...@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

[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

Reply via email to