Andy, Marius, all, Thank you for your input and your insights.
If I understand correctly we cannot purely do it with public methods for now (at least not for TableCells) This makes the argument to support https://github.com/openjdk/jfx/pull/1389 even stronger and maybe should be mentioned in the PR as well. Thanks, -- Daniel On Thu, Mar 7, 2024 at 7:53 PM Andy Goryachev <andy.goryac...@oracle.com> wrote: > Daniel: > > > > Thank you for providing a sample app! > > > > You are right: turns out Labeled in a TableView (in a TreeTableView as > well) lives by different rules (TableCellSkinBase:152, > TreeTableCellSkin:126). > > > > The consequence of this is that the new functionality **cannot** be fully > implemented with the public APIs alone. > > > > Cheers, > > -andy > > > > > > > > *From: *Daniel Peintner <daniel.peint...@gmail.com> > *Date: *Thursday, March 7, 2024 at 07:11 > *To: *Andy Goryachev <andy.goryac...@oracle.com> > *Cc: *openjfx-dev@openjdk.org <openjfx-dev@openjdk.org> > *Subject: *Re: [External] : Re: Q: Labeled.textTruncated Property (RFE) > > Andy, all, > > Some comments below: > > 1. 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) > 2. I tried to achieve what you did in JavaFX core for my use-case, > TableView cells. > > > 1. In my real application I tried and failed since the boolean > condition in > > https://github.com/openjdk/jfx/blob/8a5cb17ed6525b0a218595865ead3e399e3b29dd/modules/javafx.controls/src/main/java/javafx/scene/control/Labeled.java#L838-L841 > > <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$> > always reports false > 2. Hence I tried to create a short self-contained TableView example > to explore it further, see Gist > https://gist.github.com/danielpeintner/9b561eb57261e8c5bc608f1346df74cf > > <https://urldefense.com/v3/__https:/gist.github.com/danielpeintner/9b561eb57261e8c5bc608f1346df74cf__;!!ACWV5N9M2RV99hQ!O5PIY6RzCkXt8IZB_cJDcwbbQtpWdIn_eD5UALkoKFCGeCJeVYBBfkTd4q6zuLXtArNITv6DWEHxlHfs3Gv6skapYpmRbZI$> > It still fails :-( > 3. 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. > 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" > 4. Hence I also added a *normal* MyLabel example which does work as > intended > > Maybe I miss something obvious but TableCells seem to be special Labeled > instances and behave differently. > > > > Thanks, > > > > -- Daniel > > > > [1] https://stackoverflow.com/a/52432862 > <https://urldefense.com/v3/__https:/stackoverflow.com/a/52432862__;!!ACWV5N9M2RV99hQ!O5PIY6RzCkXt8IZB_cJDcwbbQtpWdIn_eD5UALkoKFCGeCJeVYBBfkTd4q6zuLXtArNITv6DWEHxlHfs3Gv6skappYtR2cY$> > > > > > > On Wed, Mar 6, 2024 at 6:10 PM Andy Goryachev <andy.goryac...@oracle.com> > wrote: > > Dear Daniel: > > > > 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): > > > > JDK-8327483 <https://bugs.openjdk.org/browse/JDK-8327483> TreeView: Allow > for tooltip when cell text is truncated > > > > 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: > https://github.com/openjdk/jfx/pull/1389 > <https://urldefense.com/v3/__https:/github.com/openjdk/jfx/pull/1389__;!!ACWV5N9M2RV99hQ!LUwCrjMEKxlGC0k5v9-zO0Axw6TqddmMJM7_6onFdHOLL1eo5MDNu1lVj7grGquhgJdnqXX_eCyA7MGEMNyIivVMcBB9XfY$> > > > > -andy > > > > > > *From: *Daniel Peintner <daniel.peint...@gmail.com> > *Date: *Tuesday, March 5, 2024 at 23:53 > *To: *Andy Goryachev <andy.goryac...@oracle.com> > *Cc: *openjfx-dev@openjdk.org <openjfx-dev@openjdk.org> > *Subject: *[External] : Re: Q: Labeled.textTruncated Property (RFE) > > Hi Andy, all, > > > > Thank you for the effort which I very much appreciate. > > We have a similar use-case as the one mentioned in JDK-8205211. > > > > 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. > > > > 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. > > > > Thanks, > > > > -- Daniel > > > > [1] https://stackoverflow.com/a/52432862 > <https://urldefense.com/v3/__https:/stackoverflow.com/a/52432862__;!!ACWV5N9M2RV99hQ!LUwCrjMEKxlGC0k5v9-zO0Axw6TqddmMJM7_6onFdHOLL1eo5MDNu1lVj7grGquhgJdnqXX_eCyA7MGEMNyIivVMSbAOrZg$> > > > > On Tue, Mar 5, 2024 at 10:15 PM Andy Goryachev <andy.goryac...@oracle.com> > wrote: > > Dear colleagues: > > > > Do you think a new property, *ReadOnlyBooleanProperty textTruncated*, > should be added to the Labeled control? > > > > > > On one hand, we do have a couple of tickets in JBS requesting that: > > > > - JDK-8091891 <https://bugs.openjdk.org/browse/JDK-8091891> TreeView: > There is no tooltip available on truncated node > - JDK-8205211 <https://bugs.openjdk.org/browse/JDK-8205211> Ability to > show Tooltip only when text is shown with ellipsis (...) > > > > 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. > > > > JBS: > > - JDK-8092102 <https://bugs.openjdk.org/browse/JDK-8092102> Labeled: > truncated property > > > > Pull Request: https://github.com/openjdk/jfx/pull/1389 > <https://urldefense.com/v3/__https:/github.com/openjdk/jfx/pull/1389__;!!ACWV5N9M2RV99hQ!LUwCrjMEKxlGC0k5v9-zO0Axw6TqddmMJM7_6onFdHOLL1eo5MDNu1lVj7grGquhgJdnqXX_eCyA7MGEMNyIivVMcBB9XfY$> > > > > What do you think? > > > > -andy > >