diff options
author | Stas Negara <snegara@google.com> | 2015-06-08 13:27:01 -0700 |
---|---|---|
committer | Stas Negara <snegara@google.com> | 2015-06-08 13:28:20 -0700 |
commit | fa44889629776abf75020182f2e7f6831dde5df4 (patch) | |
tree | 7ed656e37d10fb98b7ee8bc1147b8481b6f7efac | |
parent | 34a7a525fe19a15b807adc745903ef81ef6f4526 (diff) | |
download | testing-fa44889629776abf75020182f2e7f6831dde5df4.tar.gz |
Fix text truncation issue of multi-clicked radio buttons.
Change-Id: I3466b1250b7c05d6d3e0b87033f66a8d3928c841
-rw-r--r-- | src/com/google/gct/testing/TwoPanelTree.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/com/google/gct/testing/TwoPanelTree.java b/src/com/google/gct/testing/TwoPanelTree.java index 0ef3e1b..e0acafb 100644 --- a/src/com/google/gct/testing/TwoPanelTree.java +++ b/src/com/google/gct/testing/TwoPanelTree.java @@ -462,7 +462,7 @@ public class TwoPanelTree extends MouseAdapter implements ListSelectionListener, } } - private boolean isAnyLeafChecked(CheckboxTree currentTree) { + private static boolean isAnyLeafChecked(CheckboxTree currentTree) { TreeNode root = (TreeNode)currentTree.getModel().getRoot(); for (int i = 0; i < root.getChildCount(); i++) { CheckedTreeNode firstLevelChild = (CheckedTreeNode)root.getChildAt(i); @@ -569,6 +569,14 @@ public class TwoPanelTree extends MouseAdapter implements ListSelectionListener, public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { + if (tree instanceof CheckboxTree) { + if (!isAnyLeafChecked((CheckboxTree) tree)) { + // Avoid double rendering when a user tries to uncheck a radio button, which is not allowed anyway, but will cause + // weird text rendering quirks. + return this; + } + } + invalidate(); if (value instanceof CheckedTreeNode) { CheckedTreeNode node = (CheckedTreeNode)value; |