<!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>