From a8f7ce9e3442e4c124f238e3c4793bb3f9984eb0 Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Wed, 2 Apr 2025 10:32:11 +0200 Subject: [PATCH] add tooltip for truncated labels in table cells --- .../sparrow/control/LabelCell.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sparrowwallet/sparrow/control/LabelCell.java b/src/main/java/com/sparrowwallet/sparrow/control/LabelCell.java index 96644fec..9da456c1 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/LabelCell.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/LabelCell.java @@ -38,12 +38,23 @@ class LabelCell extends TextFieldTreeTableCell implements Confirm if(empty) { setText(null); setGraphic(null); + setTooltip(null); } else { Entry entry = getTreeTableView().getTreeItem(getIndex()).getValue(); EntryCell.applyRowStyles(this, entry); setText(label); setContextMenu(new LabelContextMenu(entry, label)); + + double width = label == null || label.length() < 20 ? 0.0 : TextUtils.computeTextWidth(getFont(), label, 0.0D); + if(width > getTableColumn().getWidth()) { + Tooltip tooltip = new Tooltip(label); + tooltip.setPrefWidth(getTreeTableView().getWidth()); + tooltip.setWrapText(true); + setTooltip(tooltip); + } else { + setTooltip(null); + } } } @@ -121,7 +132,7 @@ class LabelCell extends TextFieldTreeTableCell implements Confirm return confirmationsProperty; } - private static class LabelContextMenu extends ContextMenu { + private class LabelContextMenu extends ContextMenu { public LabelContextMenu(Entry entry, String label) { MenuItem copyLabel = new MenuItem("Copy Label"); copyLabel.setOnAction(AE -> { @@ -141,6 +152,13 @@ class LabelCell extends TextFieldTreeTableCell implements Confirm } }); getItems().add(pasteLabel); + + MenuItem editLabel = new MenuItem("Edit Label..."); + editLabel.setOnAction(AE -> { + hide(); + startEdit(); + }); + getItems().add(editLabel); } } }