<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hello,</p>
<p>
<blockquote type="cite">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.</blockquote>
</p>
<p>- 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.<br>
- 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.<br>
<br>
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.</p>
<div class="moz-cite-prefix">On 14/08/2024 16.03, Nir Lisker wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CA+0ynh-yDKgzoZJimvTMazSpHZbLxkrEojqXyHdasmVtrByksw@mail.gmail.com">
<div dir="ltr">My questions are similar to the ones in the
previous discussion, but now I can be more specific.
<div><br>
</div>
<div>I see a list of "building blocks" in <a
href="https://bugs.openjdk.org/browse/JDK-8300569"
moz-do-not-send="true" class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8300569</a>,
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:</div>
<div><br>
</div>
<div>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?</div>
<div>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?<br>
<div>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.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Nir</div>
<div><br>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Aug 2, 2024 at
10:41 PM Andy Goryachev <<a
href="mailto:andy.goryachev@oracle.com"
moz-do-not-send="true" class="moz-txt-link-freetext">andy.goryachev@oracle.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote">
<div class="msg-3454092310103602811">
<div lang="EN-US">
<div class="m_-3454092310103602811WordSection1">
<p class="m_-3454092310103602811p1"><span>Dear fellow
developers:</span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p1"><span>Thank you for
the early feedback on the RichTextArea proposal [0].</span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p1"><span>We are moving
to the next phase by submitting the public pull
request [1].<span
class="m_-3454092310103602811apple-converted-space">
</span>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.</span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p1"><span>For your
convenience, two test applications are provided -
<b>RichTextAreaDemoApp</b> and <b>CodeAreaDemoApp</b>
which demonstrate the new controls with a number of
different models.<span
class="m_-3454092310103602811apple-converted-space">
</span>In addition to these two testers, please
check out a simple standalone rich text editor
application,
<b>RichEditorDemoApp</b>,<span
class="m_-3454092310103602811apple-converted-space"> </span></span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p1"><span>We would
encourage anyone - the javafx developers, and
especially the application developers, to take a
look at the public API [3].<span
class="m_-3454092310103602811apple-converted-space">
</span>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.</span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p1"><span>Thank you in
advance,</span></p>
<p class="m_-3454092310103602811p1"><span>-andy</span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p2"><span> </span></p>
<p class="m_-3454092310103602811p1"><span>[0] Proposal:
<a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextArea.md"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextArea.md</a></span></p>
<p class="m_-3454092310103602811p1"><span>[1] Pull
request: <a
href="https://github.com/openjdk/jfx/pull/1524"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/openjdk/jfx/pull/1524</a></span></p>
<p class="m_-3454092310103602811p1"><span>[2] Discussion
points:
<a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextAreaDiscussion.md"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/andy-goryachev-oracle/Test/blob/main/doc/RichTextArea/RichTextAreaDiscussion.md</a></span></p>
<p class="m_-3454092310103602811p1"><span>[3] API
specification (javadoc):
<a
href="https://cr.openjdk.org/~angorya/RichTextArea/javadoc"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://cr.openjdk.org/~angorya/RichTextArea/javadoc</a></span></p>
<p class="m_-3454092310103602811p1"><span>[4] CSS
Reference: <a
href="https://cr.openjdk.org/~angorya/RichTextArea/javadoc/javafx.graphics/javafx/scene/doc-files/cssref.html"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://cr.openjdk.org/~angorya/RichTextArea/javadoc/javafx.graphics/javafx/scene/doc-files/cssref.html</a></span></p>
<p class="m_-3454092310103602811p1"><span>[5] Behavior
doc: <a
href="https://github.com/andy-goryachev-oracle/jfx/blob/8301121.RichTextArea/doc-files/behavior/RichTextAreaBehavior.md"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/andy-goryachev-oracle/jfx/blob/8301121.RichTextArea/doc-files/behavior/RichTextAreaBehavior.md</a></span></p>
<p class="m_-3454092310103602811p1"><span lang="DE">[6]
RichTextArea RFE:
</span><span><a
href="https://bugs.openjdk.org/browse/JDK-8301121"
target="_blank" moz-do-not-send="true"><span
lang="DE">https://bugs.openjdk.org/browse/JDK-8301121</span></a></span><span
lang="DE"></span></p>
<p class="m_-3454092310103602811p1"><span>[7] Previous
(now obsolete) draft pull request:
<a href="https://github.com/openjdk/jfx/pull/1374"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://github.com/openjdk/jfx/pull/1374</a></span></p>
<p class="m_-3454092310103602811p1"><span>[8] Incubator
module JEP:
<a
href="https://github.com/kevinrushforth/jfx/blob/javafx.incubator/INCUBATOR-MODULES.md"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/kevinrushforth/jfx/blob/javafx.incubator/INCUBATOR-MODULES.md</a></span></p>
<p class="MsoNormal"><span> </span></p>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</body>
</html>