RFR: 8092102: Labeled: truncated property [v8]

Karthik P K kpk at openjdk.org
Wed Apr 10 12:54:15 UTC 2024


On Thu, 28 Mar 2024 21:44:49 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> Adds **Labeled.textTruncated** property which indicates when the text is visually truncated (and the ellipsis string is inserted) in order to fit the available width.
>> 
>> The new property reacts to changes in the following properties:
>> - ellipsisString
>> - font
>> - height
>> - text
>> - width
>> - wrapText
>> 
>> I don't think it's worth creating a headful test (headless won't work) due to relative simplicity of the code.
>> 
>> **Alternative**
>> 
>> The desired functionality can be just as easily achieved on an application level, by adding a similar property to a subclass.  What is the benefit of adding this functionality to the core?
>> 
>> UPDATE 2024/03/07: 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.
>> 
>> **See Also**
>> 
>> * [JDK-8327483](https://bugs.openjdk.org/browse/JDK-8327483) TreeView: Allow for tooltip when cell text is truncated
>> * [JDK-8205211](https://bugs.openjdk.org/browse/JDK-8205211) Ability to show Tooltip only when text is shown with ellipsis (...)
>
> Andy Goryachev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   add exports

Overall this looks good to me. Left couple of inline comments.

modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/LabeledHelper.java line 38:

> 36:         /**
> 37:          * Returns true when the Labeled must compute the actual content width in computePrefWidth().
> 38:          * @return whether computePrefWidth() must compute the actual content width

Do you think re-wording the sentence to explain when this function returns true/false would be better here?

modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/LabeledHelper.java line 58:

> 56:     /**
> 57:      * Returns true when the Labeled must compute the actual content width in computePrefWidth().
> 58:      * @return whether computePrefWidth() must compute the actual content width

Same comment as above

modules/javafx.controls/src/test/java/test/javafx/scene/control/LabeledTruncatedTest.java line 42:

> 40: /**
> 41:  * Tests textTruncated property of Labeled, using Label, TableCell, and TreeTableCell controls
> 42:  * (the last two contain conditional code that redirects the execution of computePrefWidth()

Missing `)`?

-------------

PR Review: https://git.openjdk.org/jfx/pull/1389#pullrequestreview-1991164711
PR Review Comment: https://git.openjdk.org/jfx/pull/1389#discussion_r1559103685
PR Review Comment: https://git.openjdk.org/jfx/pull/1389#discussion_r1559108375
PR Review Comment: https://git.openjdk.org/jfx/pull/1389#discussion_r1559148976


More information about the openjfx-dev mailing list