TOPCAT: truncate ellipsis in middle of string #75
+108
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As mentioned per email.
As far as I can tell, this should be relatively harmless. I've had a few problems where the drawing sometimes entirely fails (very not good) because the LabelUI draw call is "fired" before the window is ready, and so the FontMetrics are not initialised -- at least that's what I infer from trying to attach the Java debugger? As a consequence, there is an otherwise seemingly unneccessary check to see if FontMetrics is null. Since then, it's run very smoothly, but I would still recommend abusing this in any way you can to be on the safe side.
There is another way this could be done by implementing a custom
TableCellRenderer, but that leads to some complications, because the (pixel) width of the column is not easily known, nor is how the font will render the text -- so you'd either end up with a large whitespace gap at the end of the string in the cell, or the string would be cut off by the end of the column.