<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hello,</p>
<p>>> A 3rd party control, RichTextFX already exists -- what
is this new proposal adding that RichTextFX does not have?<br>
<br>
It uses the standard JavaFX VirtualFlow API and and does not need
to work with reactive streams. RichtextFX depends on several long
unmaintained libs: ReactFX (last commit 8 years ago),
WellBehavedFX (last commit 6 years ago), UndoFX (last commit 3
years ago). To say it's actively maintained is a big exaggeration.<br>
<br>
>> What (if anything) is stopping a 3rd party from building
a RichTextArea themselves?<br>
<br>
- The lack of a standard API. The Behavior API has been discussed
for ages, but is still not implemented. Moreover, WellBehavedFX is
literally a rejected JEP/CSR implementation.<br>
- The closedness of JavaFX in general. All internals are
explicitly private and final. A few simple examples. The date
picker popup uses a private API to calculate its width based on
text size, but you're forbidden to do the same thing. All i18n
resources are not exported, you're forbidden to use them to create
a context menu. You're not encouraging 3rd party libs, you're
going in the opposite direction (for the sake of stability of
course).<br>
- The JavaFX community is very small. The "tens of thousands of
developers" you talk about don't exist. Even famous projects are
poorly maintained or not maintained at all, including ControlsFX
and ScenicView. You have fewer features -> you have fewer
users/market share -> you have less promotion -> you have
fewer committers -> you have fewer features. It's that simple.<br>
- There's literally no docs about creating new controls. Even Skin
API is badly documented. You can only learn from existing control
libs.<br>
<br>
This particular feature would be a HUGE step forward. I'm really
glad to see it. Hopefully it won't get buried under a bunch of
pointless abstract discussions like the CSS theme CSR. Just get
some feedback and implement it the way you want. It's a million
times better than doing nothing.</p>
<div class="moz-cite-prefix">On 23/02/2024 14.45, Johan Vos wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CABxFH2Eo-uJjFLfkhTdjqccmmN_A3Ympzj3XB8XFb4SbUo4odw@mail.gmail.com">
<div dir="ltr">
<div dir="ltr">I fully agree with John on this.
<div><br>
<div>A RichTextArea is something that can "easily" be
developed outside OpenJFX .</div>
<div>There are a number of examples already, e.g.
RichTextFX, and our (Gluon) RichTextArea at </div>
<div><a href="https://github.com/gluonhq/rich-text-area"
moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/gluonhq/rich-text-area</a><br>
</div>
<div><br>
</div>
<div>In the past, we clearly said that this was not a focus
for OpenJFX.</div>
<div><br>
</div>
<div>
<div>There are a huge amount of outstanding issues in JBS
that can only be fixed in the OpenJFX "core". Developers
(of custom components/controls) rely on the core OpenJFX
development to address those issues. That is what this
group (the openjfx-dev list) is supposed to do.</div>
</div>
</div>
<div><br>
</div>
<div>I highly encourage developers to create custom components
and controls, but not as part of OpenJFX. As others noted as
well, we have many other things to fix that can only be
fixed in OpenJFX, and that is where the priorities of
OpenJFX should be, imho.</div>
<div><br>
</div>
<div>- Johan</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Feb 23, 2024 at
2:48 AM John Hendrikx <<a
href="mailto:john.hendrikx@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">john.hendrikx@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote">
<div>
<p>Hi,<br>
</p>
<p>Far be it from me to tell the FX team what it should
do, I am still wondering the following:</p>
<p>- A 3rd party control, RichTextFX already exists --
what is this new proposal adding that RichTextFX does
not have?<br>
- What (if anything) is stopping a 3rd party from
building a RichTextArea themselves?<br>
</p>
<p>In other words, I think the FX team ought to focus on
**facilitating** the building of complex controls like
RichTextArea, by identifying gaps in the current Control
API that is **stopping** 3rd parties from doing this
themselves in the same integrated manner as a "native"
FX control.</p>
<p>Enabling thousands or tens of thousand of developers to
build more complicated controls seems to me like a much
better investment than what I think will be a
significant investment in one of the most complex
controls imaginable. RichTextFX was actively developed
over a 4 year period, with 45 contributors and over 1400
commits (for comparison, JavaFX had 250 commits in the
past year). If it will be significantly less
complicated, then what does it offer over RichTextFX?</p>
<p>--John<br>
</p>
<div>On 21/02/2024 19:07, Andy Goryachev wrote:<br>
</div>
<blockquote type="cite">
<div>
<p class="MsoNormal"><span>Dear JavaFX developers:</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>We would like to propose a
new feature - rich text control, RichTextArea,
intended to bridge the functional gap with Swing
and its StyledEditorKit/JEditorPane. The main
design goal is to provide a control that is
complete enough to be useful out-of-the box, as
well as open to extension by the application
developers.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>This is a complex feature
with a large API surface that would be nearly
impossible to get right the first time, even after
an extensive review. We are, therefore,
introducing this in an incubating module, <b>javafx.incubator.richtext</b>.
This will allow us to evolve the API in future
releases without the strict compatibility
constraints that other JavaFX modules have.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Please take a look at the
proposal [0], a list of discussion points [1], and
the API Specification (javadoc) [2]. While the
proposed API is ready for review, it isn't
complete nor set in stone. We are looking for
feedback, and will update the proposal based on
the suggestions we receive from the community. We
encourage you to comment either in the mailing
list, or by leaving comments inline in a draft
pull request [3]. For context, the links to the
original RFE [4] and a list of missing APIs
related to rich text [5] are provided below.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Sincerely,</span></p>
<p class="MsoNormal"><span>Your friendly JavaFX
development team.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>References</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>[0] Proposal: <a
href="https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextArea.md"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextArea.md</a></span></p>
<p class="MsoNormal"><span>[1] Discussion points: <a
href="https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextAreaDiscussion.md"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">
https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextAreaDiscussion.md</a></span></p>
<p class="MsoNormal"><span>[2] 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="MsoNormal"><span>[3] Draft Pull Request for
API comments and feedback: <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="MsoNormal"><span lang="DE">[4] RichTextArea
RFE: <a
href="https://bugs.openjdk.org/browse/JDK-8301121" target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8301121</a></span></p>
<p class="MsoNormal"><span>[5] Missing APIs related to
rich text control: <a
href="https://bugs.openjdk.org/browse/JDK-8300569" target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">https://bugs.openjdk.org/browse/JDK-8300569</a></span></p>
<p class="MsoNormal"><span> </span></p>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</body>
</html>