<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:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Apple Color Emoji";
        panose-1:0 0 0 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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.m7559572312290820301m-5390978088994589097s1
        {mso-style-name:m_7559572312290820301m-5390978088994589097s1;}
span.m7559572312290820301m-5390978088994589097s2
        {mso-style-name:m_7559572312290820301m-5390978088994589097s2;}
p.m7559572312290820301m-5390978088994589097m-7845812002942874958li1, li.m7559572312290820301m-5390978088994589097m-7845812002942874958li1, div.m7559572312290820301m-5390978088994589097m-7845812002942874958li1
        {mso-style-name:m_7559572312290820301m-5390978088994589097m-7845812002942874958li1;
        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.m7559572312290820301m-5390978088994589097m-7845812002942874958s1
        {mso-style-name:m_7559572312290820301m-5390978088994589097m-7845812002942874958s1;}
span.m7559572312290820301m-5390978088994589097m-7845812002942874958s2
        {mso-style-name:m_7559572312290820301m-5390978088994589097m-7845812002942874958s2;}
p.m7559572312290820301m-5390978088994589097m-7845812002942874958p2, li.m7559572312290820301m-5390978088994589097m-7845812002942874958p2, div.m7559572312290820301m-5390978088994589097m-7845812002942874958p2
        {mso-style-name:m_7559572312290820301m-5390978088994589097m-7845812002942874958p2;
        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;}
p.m7559572312290820301m-5390978088994589097m-7845812002942874958p1, li.m7559572312290820301m-5390978088994589097m-7845812002942874958p1, div.m7559572312290820301m-5390978088994589097m-7845812002942874958p1
        {mso-style-name:m_7559572312290820301m-5390978088994589097m-7845812002942874958p1;
        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.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:203182375;
        mso-list-template-ids:929563958;}
@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:1743408021;
        mso-list-template-ids:-760593368;}
@list l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l2
        {mso-list-id:1882816425;
        mso-list-template-ids:-1394184888;}
@list l2:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:2043433837;
        mso-list-template-ids:-1388696646;}
@list l3:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
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-family:"Iosevka Fixed SS16"">Daniel:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16"">Thank you, both the PR and the code have been updated.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16"">This change provides an illustration of the problem we have with JavaFX - it is nearly impossible to talk about custom skin development when most of the essential machinery is hidden behind
 accessors and non-public classes.  In this particular case, TableCellSkin and TreeTableCellSkins use what appears to be a "hack" - Properties.DEFER_TO_PARENT_PREF_WIDTH to irreversibly override the behavior of computePrefWidth() methods.  So anyone who wants
 to modify these skins, or to change Labeled skin to work nicely inside a tree/table is going to hit a brick wall in the form of com.sun.javafx.scene.control.Properties.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16"">This is a separate issue that was raised many times in this forum.  There is currently no easy solution - making every class public and extendable is out of the question (by design and by general
 consensus of the maintainers), the next best thing we can do is to identify missing APIs - APIs that **can** be made public to achieve extensibility, in each particular case.  This is too not an easy task, as anyone who reads this forum regularly can see.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16"">Still, our goal is to make JavaFX a viable and powerful platform, and I agree with Marius that we might want to start collecting info on the APIs that either missing or need to be made public
 (something like <a href="https://bugs.openjdk.org/browse/JDK-8300569">https://bugs.openjdk.org/browse/JDK-8300569</a>
</span><span style="font-family:"Apple Color Emoji"">☂</span><span style="font-family:"Iosevka Fixed SS16""> Missing APIs related to rich text control ?)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Iosevka Fixed SS16"">-andy<o:p></o:p></span></p>
<p class="MsoNormal"><span style="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;font-family:"Aptos",sans-serif;color:black">From:
</span></b><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">Daniel Peintner <daniel.peintner@gmail.com><br>
<b>Date: </b>Friday, March 8, 2024 at 00:30<br>
<b>To: </b>Andy Goryachev <andy.goryachev@oracle.com><br>
<b>Cc: </b>openjfx-dev@openjdk.org <openjfx-dev@openjdk.org><br>
<b>Subject: </b>Re: [External] : Re: Q: Labeled.textTruncated Property (RFE)<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal">Andy, Marius, all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thank you for your input and your insights.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">If I understand correctly we cannot purely do it with public methods for now (at least not for TableCells)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">This makes the argument to support <a href="https://urldefense.com/v3/__https:/github.com/openjdk/jfx/pull/1389__;!!ACWV5N9M2RV99hQ!Lt6vRjwJFIaC7l3TaV-Dls88HkxaORG8T76UGt3J0pwZqHSeWS2dDHSOYUeY5iJxjo-wQO_8Hq_6J4Ie5HJiJKBLfPfJH8o$">
https://github.com/openjdk/jfx/pull/1389</a> even stronger and maybe should be mentioned in the PR as well.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-- Daniel<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Mar 7, 2024 at 7:53 PM Andy Goryachev <<a href="mailto:andy.goryachev@oracle.com">andy.goryachev@oracle.com</a>> wrote:<o:p></o:p></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-family:"Iosevka Fixed SS16"">Daniel:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">Thank you for providing a sample app!</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">You are right: turns out Labeled in a TableView (in a TreeTableView as well) lives by different rules (TableCellSkinBase:152, TreeTableCellSkin:126).</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">The consequence of this is that the new functionality **cannot** be fully implemented with the public APIs alone.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">Cheers,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">-andy</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<div id="m_7559572312290820301mail-editor-reference-message-container">
<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;font-family:"Aptos",sans-serif;color:black">From:
</span></b><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">Daniel Peintner <<a href="mailto:daniel.peintner@gmail.com" target="_blank">daniel.peintner@gmail.com</a>><br>
<b>Date: </b>Thursday, March 7, 2024 at 07:11<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>Re: [External] : Re: Q: Labeled.textTruncated Property (RFE)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt">Andy, all,<br>
<br>
Some comments below:<o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l3 level1 lfo1">
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)<o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l3 level1 lfo1">
I tried to achieve what you did in JavaFX core for my use-case, TableView cells.<o:p></o:p></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:l2 level2 lfo2">
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!O5PIY6RzCkXt8IZB_cJDcwbbQtpWdIn_eD5UALkoKFCGeCJeVYBBfkTd4q6zuLXtArNITv6DWEHxlHfs3Gv6skap9isYa3A$" 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></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
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!O5PIY6RzCkXt8IZB_cJDcwbbQtpWdIn_eD5UALkoKFCGeCJeVYBBfkTd4q6zuLXtArNITv6DWEHxlHfs3Gv6skapYpmRbZI$" target="_blank">
https://gist.github.com/danielpeintner/9b561eb57261e8c5bc608f1346df74cf</a><br>
It still fails :-(<o:p></o:p></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
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></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo2">
Hence I also added a *normal* MyLabel example which does work as intended<o:p></o:p></li></ol>
</ol>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Maybe I miss something obvious but TableCells seem to be special Labeled instances and behave differently.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">-- Daniel<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">[1]
<a href="https://urldefense.com/v3/__https:/stackoverflow.com/a/52432862__;!!ACWV5N9M2RV99hQ!O5PIY6RzCkXt8IZB_cJDcwbbQtpWdIn_eD5UALkoKFCGeCJeVYBBfkTd4q6zuLXtArNITv6DWEHxlHfs3Gv6skappYtR2cY$" target="_blank">
https://stackoverflow.com/a/52432862</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Wed, Mar 6, 2024 at 6:10 PM Andy Goryachev <<a href="mailto:andy.goryachev@oracle.com" target="_blank">andy.goryachev@oracle.com</a>> wrote:<o:p></o:p></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;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)">
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">Dear Daniel:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="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><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span class="m7559572312290820301m-5390978088994589097s1"><span style="font-family:"Iosevka Fixed SS16";color:#172B4D;background:white"><a href="https://bugs.openjdk.org/browse/JDK-8327483" target="_blank"><span class="m7559572312290820301m-5390978088994589097s2"><span style="color:#0052CC">JDK-8327483</span></span></a></span></span><span style="font-family:"Iosevka Fixed SS16";color:#172B4D;background:white"> TreeView:
 Allow for tooltip when cell text is truncated</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="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: <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><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">-andy</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<div id="m_7559572312290820301m_-5390978088994589097mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;border-color:currentcolor">
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><b><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">From:
</span></b><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;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><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi Andy, all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thank you for the effort which I very much appreciate.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">We have a similar use-case as the one mentioned in JDK-8205211.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">-- Daniel<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">[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><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On Tue, Mar 5, 2024 at 10:15 PM Andy Goryachev <<a href="mailto:andy.goryachev@oracle.com" target="_blank">andy.goryachev@oracle.com</a>> wrote:<o:p></o:p></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;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)">
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">Dear colleagues:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">Do you think a new property,
<b>ReadOnlyBooleanProperty textTruncated</b>, should be added to the Labeled control?</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">On one hand, we do have a couple of tickets in JBS requesting that:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<ul type="disc">
<li class="m7559572312290820301m-5390978088994589097m-7845812002942874958li1" style="mso-list:l1 level1 lfo3">
<span class="m7559572312290820301m-5390978088994589097m-7845812002942874958s1"><span style="font-family:"Iosevka Fixed SS16""><a href="https://bugs.openjdk.org/browse/JDK-8091891" target="_blank"><span class="m7559572312290820301m-5390978088994589097m-7845812002942874958s2">JDK-8091891</span></a></span></span><span style="font-family:"Iosevka Fixed SS16"">
 TreeView: There is no tooltip available on truncated node</span><o:p></o:p></li><li class="m7559572312290820301m-5390978088994589097m-7845812002942874958li1" style="mso-list:l1 level1 lfo3">
<span class="m7559572312290820301m-5390978088994589097m-7845812002942874958s1"><span style="font-family:"Iosevka Fixed SS16""><a href="https://bugs.openjdk.org/browse/JDK-8205211" target="_blank"><span class="m7559572312290820301m-5390978088994589097m-7845812002942874958s2">JDK-8205211</span></a></span></span><span style="font-family:"Iosevka Fixed SS16"">
 Ability to show Tooltip only when text is shown with ellipsis (...)</span><o:p></o:p></li></ul>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="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><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">JBS:</span><o:p></o:p></p>
<ul type="disc">
<li class="m7559572312290820301m-5390978088994589097m-7845812002942874958li1" style="mso-list:l0 level1 lfo4">
<span class="m7559572312290820301m-5390978088994589097m-7845812002942874958s1"><span style="font-family:"Iosevka Fixed SS16""><a href="https://bugs.openjdk.org/browse/JDK-8092102" target="_blank"><span class="m7559572312290820301m-5390978088994589097m-7845812002942874958s2">JDK-8092102</span></a></span></span><span style="font-family:"Iosevka Fixed SS16"">
 Labeled: truncated property</span><o:p></o:p></li></ul>
<p class="m7559572312290820301m-5390978088994589097m-7845812002942874958p2"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="m7559572312290820301m-5390978088994589097m-7845812002942874958p1"><span style="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><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">What do you think?</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16""> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Iosevka Fixed SS16"">-andy</span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>