Hello,

>> A 3rd party control, RichTextFX already exists -- what is this new proposal adding that RichTextFX does not have?

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.

>> What (if anything) is stopping a 3rd party from building a RichTextArea themselves?

- 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. - 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). - 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. - There's literally no docs about creating new controls. Even Skin API is badly documented. You can only learn from existing control libs.

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.

On 23/02/2024 14.45, Johan Vos wrote:
I fully agree with John on this.

A RichTextArea is something that can "easily" be developed outside OpenJFX . There are a number of examples already, e.g. RichTextFX, and our (Gluon) RichTextArea at
https://github.com/gluonhq/rich-text-area

In the past, we clearly said that this was not a focus for OpenJFX.

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.

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.

- Johan

On Fri, Feb 23, 2024 at 2:48 AM John Hendrikx <john.hendr...@gmail.com> wrote:

    Hi,

    Far be it from me to tell the FX team what it should do, I am
    still wondering the following:

    - A 3rd party control, RichTextFX already exists -- what is this
    new proposal adding that RichTextFX does not have?
    - What (if anything) is stopping a 3rd party from building a
    RichTextArea themselves?

    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.

    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?

    --John

    On 21/02/2024 19:07, Andy Goryachev wrote:

    Dear JavaFX developers:

    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.

    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, *javafx.incubator.richtext*. This will allow
    us to evolve the API in future releases without the strict
    compatibility constraints that other JavaFX modules have.

    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.

    Sincerely,

    Your friendly JavaFX development team.

    References

    [0] Proposal:
    
https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextArea.md

    [1] Discussion points:
    
https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextAreaDiscussion.md

    [2] API specification (javadoc):
    https://cr.openjdk.org/~angorya/RichTextArea/javadoc

    [3] Draft Pull Request for API comments and feedback:
    https://github.com/openjdk/jfx/pull/1374

    [4] RichTextArea RFE: https://bugs.openjdk.org/browse/JDK-8301121

    [5] Missing APIs related to rich text control:
    https://bugs.openjdk.org/browse/JDK-8300569

Reply via email to