<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@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;}
/* Style Definitions */
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.m-5390978088994589097s1
        {mso-style-name:m_-5390978088994589097s1;}
span.m-5390978088994589097s2
        {mso-style-name:m_-5390978088994589097s2;}
p.m-5390978088994589097m-7845812002942874958li1, li.m-5390978088994589097m-7845812002942874958li1, div.m-5390978088994589097m-7845812002942874958li1
        {mso-style-name:m_-5390978088994589097m-7845812002942874958li1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
span.m-5390978088994589097m-7845812002942874958s1
        {mso-style-name:m_-5390978088994589097m-7845812002942874958s1;}
span.m-5390978088994589097m-7845812002942874958s2
        {mso-style-name:m_-5390978088994589097m-7845812002942874958s2;}
p.m-5390978088994589097m-7845812002942874958p2, li.m-5390978088994589097m-7845812002942874958p2, div.m-5390978088994589097m-7845812002942874958p2
        {mso-style-name:m_-5390978088994589097m-7845812002942874958p2;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
p.m-5390978088994589097m-7845812002942874958p1, li.m-5390978088994589097m-7845812002942874958p1, div.m-5390978088994589097m-7845812002942874958p1
        {mso-style-name:m_-5390978088994589097m-7845812002942874958p1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
span.EmailStyle25
        {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;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:633828017;
        mso-list-template-ids:-1984533340;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1165126863;
        mso-list-template-ids:1136834908;}
@list l2
        {mso-list-id:1620649038;
        mso-list-template-ids:-708645588;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16"">Thank you for the feedback!
<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"">The property is being added to Labeled, which happens to be a base class for the cells' skins.  The truncated property therefore must work in all the subclasses, even those
 where computePrefWidth is hacked via `Properties.DEFER_TO_PARENT_PREF_WIDTH`.<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"">> Second, I would rather want to see if this can be changed without adding some flags which once again will not help application developers that may want to extend something
 like this.<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"">This is a much more difficult task:  First, it needs a careful discussion on which APIs to add, if any (there is a possibility that some people might say that no new APIs are
 needed as one can always create an instance of Text or Label and use it to get the sizing).  There might be a need to undo the hacks made by the founding father such as `Properties.DEFER_TO_PARENT_PREF_WIDTH`.  I would say all this is out of scope for this
 PR, as it achieves its goal without introducing the new APIs.<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"">> IMO, the separation of concern is wrong. A Cell should always give back the prefWidth, other callers should think if they want to use the pref width or the table column width.<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"">Why cells are controls is slightly beyond me, but who am I to ask?  I would say there should be one control in this picture, and that is TableView (or any other cell-based
 control) whose job is to size and lay out its various parts.  The current design is different, and it is out of scope for this PR to change the design.<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"">> In order to move this forward, I would like to see only the necessary changes<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"">And that 's exactly what you see here - only the necessary changes (that unfortunately include undoing the earlier hacks in cells).<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"">As for tests - I certainly agree, but that would be a manual test.  The behavior can be verified with the examples in JDK-8205211, I just felt the value of a manual test is
 rather low.  What I would rather see is an automated test that actually verifies the new property behavior down to a pixel.  Any ideas how to make one?<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>
<div id="mail-editor-reference-message-container">
<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">Marius Hanl <mariushanl@web.de><br>
<b>Date: </b>Monday, March 11, 2024 at 15:49<br>
<b>To: </b>Daniel Peintner <daniel.peintner@gmail.com><br>
<b>Cc: </b>Andy Goryachev <andy.goryachev@oracle.com>, openjfx-dev@openjdk.org <openjfx-dev@openjdk.org><br>
<b>Subject: </b>Aw: Re: [External] : Re: Q: Labeled.textTruncated Property (RFE)<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">I think this can still be implemented for cells without any special handling.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">It is rather unexpected that a cell does not give the correct pref width, so we need to think about how to improve the current situation.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">In my opinion, it should not be the concern of the Cell to give the actual width of the column it belongs to, but the pref width, as we would expect.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">We need to check where this is called.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">-- Marius<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> 
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> 
<o:p></o:p></span></p>
<div style="border:none;border-left:solid #C3D9E5 1.5pt;padding:0in 0in 0in 8.0pt;margin-left:7.5pt;margin-top:7.5pt;margin-right:3.75pt;margin-bottom:3.75pt" name="quote">
<div style="margin-bottom:7.5pt">
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Gesendet:</span></b><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> Donnerstag, 07. März 2024 um 16:07 Uhr<br>
<b>Von:</b> "Daniel Peintner" <daniel.peintner@gmail.com><br>
<b>An:</b> "Andy Goryachev" <andy.goryachev@oracle.com><br>
<b>Cc:</b> "openjfx-dev@openjdk.org" <openjfx-dev@openjdk.org><br>
<b>Betreff:</b> Re: [External] : Re: Q: Labeled.textTruncated Property (RFE)<o:p></o:p></span></p>
</div>
<div name="quoted-content">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Andy, all,<br>
<br>
Some comments below:<br>
  <o:p></o:p></span></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1">
<span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Even if it is possible to do the same with public means I think it is useful. Anyhow we need to promote the solutions better (e.g., on StackOverflow)<br>
 <o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1">
<span style="font-size:9.0pt;font-family:"Verdana",sans-serif">I tried to achieve what you did in JavaFX core for my use-case, TableView cells.
<o:p></o:p></span></li></ol>
<ol start="2" type="1">
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo1">
<span style="font-size:9.0pt;font-family:"Verdana",sans-serif">In my real application I tried and failed since the boolean condition in
<a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx/blob/8a5cb17ed6525b0a218595865ead3e399e3b29dd/modules/javafx.controls/src/main/java/javafx/scene/control/Labeled.java*L838-L841__;Iw!!ACWV5N9M2RV99hQ!JoAaduFdFfQdPcSVdkE7oZbkwg6oeCdmWsh0RTvQALlv9ti--OQHFGtHU3gRE_WPiNLBxlX6eVCGufL5rk0kXFjO$" target="_blank">
https://github.com/openjdk/jfx/blob/8a5cb17ed6525b0a218595865ead3e399e3b29dd/modules/javafx.controls/src/main/java/javafx/scene/control/Labeled.java#L838-L841</a> always reports false<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo1">
<span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Hence I tried to create a short self-contained TableView example to explore it further, see Gist
<a href="https://urldefense.com/v3/__https:/gist.github.com/danielpeintner/9b561eb57261e8c5bc608f1346df74cf__;!!ACWV5N9M2RV99hQ!JoAaduFdFfQdPcSVdkE7oZbkwg6oeCdmWsh0RTvQALlv9ti--OQHFGtHU3gRE_WPiNLBxlX6eVCGufL5rgWNKS4B$" target="_blank">
https://gist.github.com/danielpeintner/9b561eb57261e8c5bc608f1346df74cf</a><br>
It still fails :-(<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo1">
<span style="font-size:9.0pt;font-family:"Verdana",sans-serif">The Email field in the table ideally should report "true" once the text entered exceeds the visible view. Somehow it fails... getWidth() and  prefWidth(-1) always return the same double value. Please
 try the Gist above to confirm.<br>
e.g., edit cell and extend the email text to longer than column width --> results in System.out "Table-Email-Cell !isWrapText: 182.0 < 182.0 --> false"<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level2 lfo1">
<span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Hence I also added a *normal* MyLabel example which does work as intended<o:p></o:p></span></li></ol>
</ol>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Maybe I miss something obvious but TableCells seem to be special Labeled instances and behave differently.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Thanks,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">-- Daniel<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">[1]
<a href="https://urldefense.com/v3/__https:/stackoverflow.com/a/52432862__;!!ACWV5N9M2RV99hQ!JoAaduFdFfQdPcSVdkE7oZbkwg6oeCdmWsh0RTvQALlv9ti--OQHFGtHU3gRE_WPiNLBxlX6eVCGufL5riJDXXyw$" target="_blank">
https://stackoverflow.com/a/52432862</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> <o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"> 
<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">On Wed, Mar 6, 2024 at 6:10</span><span style="font-size:9.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">PM Andy
 Goryachev <<a href="mailto:andy.goryachev@oracle.com" target="_blank">andy.goryachev@oracle.com</a>> wrote:<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>
<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"">Dear Daniel:</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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"">Thank you for confirming the need for this enhancement.  Your case is covered by this ticket (I included a wrong
 ticket in my previous message by mistake, sorry):</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span class="m-5390978088994589097s1"><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16";color:#172B4D;background:white"><a href="https://bugs.openjdk.org/browse/JDK-8327483" target="_blank"><span class="m-5390978088994589097s2"><span style="color:#0052CC">JDK-8327483</span></span></a></span></span><span style="font-size:11.0pt;font-family:"Iosevka Fixed SS16";color:#172B4D;background:white"> TreeView:
 Allow for tooltip when cell text is truncated</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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 concern is that this functionality theoretically can be achieved by the application code just as easy, since
 the solution does not use any internal APIs, as can be seen here: </span><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16""><a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx/pull/1389__;!!ACWV5N9M2RV99hQ!LUwCrjMEKxlGC0k5v9-zO0Axw6TqddmMJM7_6onFdHOLL1eo5MDNu1lVj7grGquhgJdnqXX_eCyA7MGEMNyIivVMcBB9XfY$" target="_blank">https://github.com/openjdk/jfx/pull/1389</a></span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<div id="m_-5390978088994589097mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in">
<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">Daniel Peintner <<a href="mailto:daniel.peintner@gmail.com" target="_blank">daniel.peintner@gmail.com</a>><br>
<b>Date: </b>Tuesday, March 5, 2024 at 23:53<br>
<b>To: </b>Andy Goryachev <<a href="mailto:andy.goryachev@oracle.com" target="_blank">andy.goryachev@oracle.com</a>><br>
<b>Cc: </b><a href="mailto:openjfx-dev@openjdk.org" target="_blank">openjfx-dev@openjdk.org</a> <<a href="mailto:openjfx-dev@openjdk.org" target="_blank">openjfx-dev@openjdk.org</a>><br>
<b>Subject: </b>[External] : Re: Q: Labeled.textTruncated Property (RFE)</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
</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:"Verdana",sans-serif">Hi Andy, all,</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">Thank you for the effort which I very much appreciate.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">We have a similar use-case as the one mentioned in JDK-8205211.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">We would like to show a Tooltip with the corresponding text once the text is shown with ellipsis for a TableCell.
 The *hacky* solution we are using is sketched in [1] and requires us to calculate the width again. Moreover, once different fonts come into the game it becomes even more brittle.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">Having an easy (easier?) way to detect and observe whether a label is truncated is of importance for us and definitely
 improves the usability of JavaFX.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">Thanks,</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">-- Daniel</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">[1]
<a href="https://urldefense.com/v3/__https:/stackoverflow.com/a/52432862__;!!ACWV5N9M2RV99hQ!LUwCrjMEKxlGC0k5v9-zO0Axw6TqddmMJM7_6onFdHOLL1eo5MDNu1lVj7grGquhgJdnqXX_eCyA7MGEMNyIivVMSbAOrZg$" target="_blank">
https://stackoverflow.com/a/52432862</a></span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif"> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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;font-family:"Verdana",sans-serif">On Tue, Mar 5, 2024 at 10:15</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif"> </span><span style="font-size:11.0pt;font-family:"Verdana",sans-serif">PM
 Andy Goryachev <<a href="mailto:andy.goryachev@oracle.com" target="_blank">andy.goryachev@oracle.com</a>> wrote:</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
</div>
<blockquote style="border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<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"">Dear colleagues:</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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"">Do you think a new property,
<b>ReadOnlyBooleanProperty textTruncated</b>, should be added to the Labeled control?</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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"">On one hand, we do have a couple of tickets in JBS requesting that:</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<ul type="disc">
<li class="m-5390978088994589097m-7845812002942874958li1" style="mso-list:l2 level1 lfo2">
<span class="m-5390978088994589097m-7845812002942874958s1"><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16""><a href="https://bugs.openjdk.org/browse/JDK-8091891" target="_blank"><span class="m-5390978088994589097m-7845812002942874958s2">JDK-8091891</span></a></span></span><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16"">
 TreeView: There is no tooltip available on truncated node</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></li><li class="m-5390978088994589097m-7845812002942874958li1" style="mso-list:l2 level1 lfo2">
<span class="m-5390978088994589097m-7845812002942874958s1"><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16""><a href="https://bugs.openjdk.org/browse/JDK-8205211" target="_blank"><span class="m-5390978088994589097m-7845812002942874958s2">JDK-8205211</span></a></span></span><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16"">
 Ability to show Tooltip only when text is shown with ellipsis (...)</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></li></ul>
<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:9.0pt;font-family:"Verdana",sans-serif"><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"">On the other hand, this functionality can in theory be implemented at the application level, although the number
 of changes required might be uncomfortably large in the case of Tree/TreeTable/TableView.</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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"">JBS:</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<ul type="disc">
<li class="m-5390978088994589097m-7845812002942874958li1" style="mso-list:l0 level1 lfo3">
<span class="m-5390978088994589097m-7845812002942874958s1"><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16""><a href="https://bugs.openjdk.org/browse/JDK-8092102" target="_blank"><span class="m-5390978088994589097m-7845812002942874958s2">JDK-8092102</span></a></span></span><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16"">
 Labeled: truncated property</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></li></ul>
<p class="m-5390978088994589097m-7845812002942874958p2"><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16""> </span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
<p class="m-5390978088994589097m-7845812002942874958p1"><span style="font-size:9.0pt;font-family:"Iosevka Fixed SS16"">Pull Request:
<a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx/pull/1389__;!!ACWV5N9M2RV99hQ!LUwCrjMEKxlGC0k5v9-zO0Axw6TqddmMJM7_6onFdHOLL1eo5MDNu1lVj7grGquhgJdnqXX_eCyA7MGEMNyIivVMcBB9XfY$" target="_blank">
https://github.com/openjdk/jfx/pull/1389</a></span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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"">What do you think?</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><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:9.0pt;font-family:"Verdana",sans-serif"><o:p></o:p></span></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>