<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I've had a look into the proposal and I like it a lot.</p>
    <p>I've had numerous encounters with "little tweaks" to keyboard
      handling and/or behaviour that I had to work around, all of which
      would (as far as I can tell) have been avoidable, if this API were
      in existence.</p>
    <p>So while there is quite some "API surface", as an application
      developer I can't wait to see this happening. It will go a long
      way to make JavaFX more easily usable.</p>
    <p><br>
    </p>
    <p>--Robert<br>
    </p>
    <div class="moz-cite-prefix">Am 11.03.24 um 16:22 schrieb Andy
      Goryachev:<br>
    </div>
    <blockquote type="cite"
cite="mid:BL3PR10MB61854AB271D153E123636DC5E5242@BL3PR10MB6185.namprd10.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator"
        content="Microsoft Word 15 (filtered medium)">
      <style>@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:"Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:"Iosevka Fixed SS16 Light";
        panose-1:2 0 4 9 3 0 0 0 0 4;}@font-face
        {font-family:"Iosevka Fixed SS16";
        panose-1:2 0 5 9 3 0 0 0 0 4;}@font-face
        {font-family:"Times New Roman \(Body CS\)";
        panose-1:2 11 6 4 2 2 2 2 2 4;}@font-face
        {font-family:"\@Yu Gothic";
        panose-1:2 11 4 0 0 0 0 0 0 0;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Iosevka Fixed SS16";
        color:windowtext;}span.apple-converted-space
        {mso-style-name:apple-converted-space;}.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">Dear
            JavaFX developers:</span><span style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">Thank
            you all for your feedback on my earlier Behavior/InputMap
            proposal [6], [7].  There was some positive reaction to the
            idea of allowing for easy customization of JavaFX controls
            behavior, as well as some push back.  Some of the objections
            were:</span><span style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <ul
style="margin-top:0in;caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px"
          type="disc">
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l2 level1 lfo1">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">desire
              for some static behavior to avoid the per-instance penalty</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l2 level1 lfo1">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">clearer
              separation of concerns between controls, skins, and
              behaviors</span><span style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l2 level1 lfo1">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">desire
              to have some sort of public API for behaviors</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l2 level1 lfo1">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">need
              for addressing an issue with the event handler execution
              order between application and skins</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
        </ul>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">I
            would like to restart the discussion by submitting the
            updated proposal [0] which addresses the issues raised
            earlier.  The new proposal retains the idea of allowing
            wider customization of key mappings via the InputMap.  The
            new features include:</span><span style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <ul
style="margin-top:0in;caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px"
          type="disc">
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l1 level1 lfo2">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">separation
              of SkinInputMap from the control's InputMap</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l1 level1 lfo2">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">enabling
              static skin input maps for stateless behaviors</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l1 level1 lfo2">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">explicit
              priority levels for event handlers and key mappings
              created by the application and by the skin</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
        </ul>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">The
            ideas put forth in this proposal have been validated with
            the proof-of-concept migration of some non-trivial controls:</span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <ul
style="margin-top:0in;caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px"
          type="disc">
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo3">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">complex
              popup-like controls: ComboBox, ColorPicker, DatePicker</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo3">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">complex
              text input controls: PasswordField, TextArea, TextField</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
          <li class="MsoListParagraph"
style="color:#212121;margin-top:0in;margin-bottom:0in;mso-list:l0 level1 lfo3">
            <span
              style="font-family:"Iosevka Fixed SS16 Light"">control
              with a stateless behavior: TabPane</span><span
              style="font-size:12.0pt"><o:p></o:p></span></li>
        </ul>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">as
            well as a brand new RichTextArea control being incubated
            [8].</span><span style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">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].</span><span style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">For
            context, the links to the original RFE [4] and the earlier
            proposals [6], [7] are provided below.</span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">What
            do you think?</span><span style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">-andy</span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <b><span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">References</span></b><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"> </span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[0]
            Proposal:<span class="apple-converted-space"> </span><a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/InputMapV2.md"
title="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/InputMapV2.md"
              moz-do-not-send="true"><span style="color:#0078D7">https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/InputMapV2.md</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[1]
            Discussion points:<span class="apple-converted-space"> </span><a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/InputMapV2-Discussion.md"
title="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/InputMapV2-Discussion.md"
              moz-do-not-send="true"><span style="color:#0078D7">https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/InputMapV2-Discussion.md</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[2]
            API specification (javadoc):<span
              class="apple-converted-space"> </span><a
              href="https://cr.openjdk.org/~angorya/InputMapV2/javadoc/"
title="https://cr.openjdk.org/~angorya/InputMapV2/javadoc/"
              moz-do-not-send="true"><span style="color:#0078D7">https://cr.openjdk.org/~angorya/InputMapV2/javadoc/</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[3]
            Draft Pull Request for API comments and feedback:<span
              class="apple-converted-space"> </span><a
              href="https://github.com/openjdk/jfx/pull/1395"
              title="https://github.com/openjdk/jfx/pull/1395"
              moz-do-not-send="true"><span style="color:#0078D7">https://github.com/openjdk/jfx/pull/1395</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[4]
            Public InputMap RFE:<span class="apple-converted-space"> </span><a
              href="https://bugs.openjdk.org/browse/JDK-8314968"
              title="https://bugs.openjdk.org/browse/JDK-8314968"
              moz-do-not-send="true"><span style="color:#0078D7">https://bugs.openjdk.org/browse/JDK-8314968</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[5]
            Documenting behaviors (WIP):<span
              class="apple-converted-space"> </span><a
href="https://github.com/openjdk/jfx/tree/master/doc-files/behavior"
title="https://github.com/openjdk/jfx/tree/master/doc-files/behavior"
              moz-do-not-send="true"><span style="color:#0078D7">https://github.com/openjdk/jfx/tree/master/doc-files/behavior</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[6]
            Earlier proposal:<span class="apple-converted-space"> </span><a
href="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/BehaviorInputMapProposal.md"
title="https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/BehaviorInputMapProposal.md"
              moz-do-not-send="true"><span style="color:#0078D7">https://github.com/andy-goryachev-oracle/Test/blob/main/doc/InputMap/BehaviorInputMapProposal.md</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121">[7]
            Earlier proposal in the OpenJFX mailing list:<span
              class="apple-converted-space"> </span><a
href="https://mail.openjdk.org/pipermail/openjfx-dev/2023-September/042819.html"
title="https://mail.openjdk.org/pipermail/openjfx-dev/2023-September/042819.html"
              moz-do-not-send="true"><span style="color:#0078D7">https://mail.openjdk.org/pipermail/openjfx-dev/2023-September/042819.html</span></a></span><span
            style="color:#212121"><o:p></o:p></span></p>
        <p class="MsoNormal"
style="caret-color: rgb(33, 33, 33);font-variant-caps: normal;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
          <span
style="font-family:"Iosevka Fixed SS16 Light";color:#212121"
            lang="DE">[8] RichTextArea (Incubator)<span
              class="apple-converted-space"> </span><a
href="https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextArea.md"
title="https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextArea.md"
              moz-do-not-send="true"><span style="color:#0078D7">https://github.com/andy-goryachev-oracle/Test/blob/rich.jep.review/doc/RichTextArea/RichTextArea.md</span></a></span><span
            style="color:#212121" lang="DE"><o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="font-family:"Iosevka Fixed SS16"" lang="DE"><o:p> </o:p></span></p>
      </div>
    </blockquote>
  </body>
</html>