summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStas Negara <snegara@google.com>2015-06-08 13:27:01 -0700
committerStas Negara <snegara@google.com>2015-06-08 13:28:20 -0700
commitfa44889629776abf75020182f2e7f6831dde5df4 (patch)
tree7ed656e37d10fb98b7ee8bc1147b8481b6f7efac
parent34a7a525fe19a15b807adc745903ef81ef6f4526 (diff)
downloadtesting-fa44889629776abf75020182f2e7f6831dde5df4.tar.gz
Fix text truncation issue of multi-clicked radio buttons.
Change-Id: I3466b1250b7c05d6d3e0b87033f66a8d3928c841
-rw-r--r--src/com/google/gct/testing/TwoPanelTree.java10
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;