<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    I think we just need a good name. I agree that "predict" isn't the
    API we want.<br>
    <br>
    How about "requestFocusTraversal"? It has symmetry with
    requestFocus.<br>
    <br>
    -- Kevin<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 10/23/2024 11:05 AM, Andy Goryachev
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:BL3PR10MB6185A2FEC3BBE3DC7F20CF5BE54D2@BL3PR10MB6185.namprd10.prod.outlook.com">
      
      <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:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 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:10.0pt;
        font-family:"Aptos",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Iosevka Fixed SS16";
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}div.WordSection1
        {page:WordSection1;}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">I
            don't think prediction should be the functionality we want
            in the Node.  This functionality, in my opinion, belongs to
            the traversal policy.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">All
            we want is to navigate away from the specified node.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">It
            might have been easier had we kept the original
            FocusTraversal class - not only one can add a bunch of
            convenience methods (predict, infer, contemplate, etc.) but
            we could have added applicationFocusOwnerProperty() etc.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Do
            we need another brainstorming round?<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">-andy<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
        <div id="mail-editor-reference-message-container">
          <div>
            <div>
              <div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
                <p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
                    </span></b><span style="font-size:12.0pt;color:black">openjfx-dev
                    <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev-retn@openjdk.org"><openjfx-dev-retn@openjdk.org></a> on behalf of
                    Michael Strauß <a class="moz-txt-link-rfc2396E" href="mailto:michaelstrau2@gmail.com"><michaelstrau2@gmail.com></a><br>
                    <b>Date: </b>Wednesday, October 23, 2024 at 10:58<br>
                    <b>To: </b><br>
                    <b>Cc: </b><a class="moz-txt-link-abbreviated" href="mailto:openjfx-dev@openjdk.org">openjfx-dev@openjdk.org</a>
                    <a class="moz-txt-link-rfc2396E" href="mailto:openjfx-dev@openjdk.org"><openjfx-dev@openjdk.org></a><br>
                    <b>Subject: </b>Re: Proposal: Focus Traversal API<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal"><span style="font-size:12.0pt">How
                    about „predictFocus“, which will return a Node
                    without changing focus?<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal"><span style="font-size:12.0pt">This
                    would give applications even more flexibility,
                    because they can then decide if they want to go
                    ahead and actually change focus by calling
                    predictFocus()?.requestFocus()<o:p></o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
              </div>
              <div>
                <p class="MsoNormal"><span style="font-size:12.0pt"><o:p> </o:p></span></p>
                <div>
                  <div>
                    <p class="MsoNormal"><span style="font-size:12.0pt">Andy
                        Goryachev <<a href="mailto:andy.goryachev@oracle.com" moz-do-not-send="true" class="moz-txt-link-freetext">andy.goryachev@oracle.com</a>>
                        schrieb am Mi. 23. Okt. 2024 um 19:16:<o:p></o:p></span></p>
                  </div>
                  <blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
                    <div>
                      <div>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Thank
                            you for suggestion!</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">My
                            only problem with a more assertive
                            “moveFocus” is that it implies a success,
                            while this API may or may not succeed
                            (similarly to requestFocus).</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">The
                            word "shift" in "shiftFocus" might clash
                            with the "shift" key, don't really like
                            that.</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Maybe
                            "requestTraversal" although it will expand
                            auto-completion list that has 2 items
                            already.  Welcome any alternative, as long
                            as it's not creat().</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                      </div>
                    </div>
                    <div>
                      <div>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">-andy</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                        <div id="m_4184658542356538446mail-editor-reference-message-container">
                          <div>
                            <div>
                              <div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:currentcolor currentcolor">
                                <p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
                                    </span></b><span style="font-size:12.0pt;color:black">openjfx-dev
                                    <<a href="mailto:openjfx-dev-retn@openjdk.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">openjfx-dev-retn@openjdk.org</a>>
                                    on behalf of Michael Strauß <<a href="mailto:michaelstrau2@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">michaelstrau2@gmail.com</a>><br>
                                    <b>Date: </b>Wednesday, October 23,
                                    2024 at 10:05<br>
                                    <b>To: </b><br>
                                    <b>Cc: </b><a href="mailto:openjfx-dev@openjdk.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">openjfx-dev@openjdk.org</a>
                                    <<a href="mailto:openjfx-dev@openjdk.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">openjfx-dev@openjdk.org</a>><br>
                                    <b>Subject: </b>Re: Proposal: Focus
                                    Traversal API</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                              </div>
                              <div>
                                <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt">Maybe we
                                    can polish the naming a bit:<br>
                                    <br>
                                    When used as a transitive verb,
                                    "traverse" means (according to<br>
                                    Merriam-Webster): to go or travel
                                    across or over, to move or pass<br>
                                    along or through.<br>
                                    <br>
                                    MW gives the example: "light rays
                                    traversing a crystal". So one thing<br>
                                    is moving (light rays), while the
                                    other thing is static (a crystal).<br>
                                    Cambridge gives the example "Stanley
                                    traversed the continent from west<br>
                                    to east." Again, "Stanley" is
                                    moving, "the continent" is static.<br>
                                    <br>
                                    Since "traverseFocus" is a
                                    transitive verb followed by a direct
                                    noun,<br>
                                    it sounds to me like "focus" is the
                                    thing that can be traversed over<br>
                                    or across.<br>
                                    As an analogy, let's call the method
                                    "traverseContinent" for a moment.<br>
                                    It becomes obvious that "continent"
                                    is the space which is traveled<br>
                                    across, and not the thing
                                    travelling.<br>
                                    <br>
                                    In our case, "focus" is the moving
                                    thing, not the thing that it is<br>
                                    moved across. I would use something
                                    like "moveFocus", "shiftFocus", or<br>
                                    something along those lines.<br>
                                    <br>
                                    As for "TraversalDirection", I think
                                    it is acceptable, but I'll note<br>
                                    that to me, "direction" implies one
                                    of the four directional modes, not<br>
                                    the two logical modes (previous and
                                    next).</span><span style="font-size:12.0pt"><o:p></o:p></span></p>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>