/[schmitzm]/branches/2.0-GP14/src/skrueger/swing/checkboxtree/CheckBoxNodeRenderer.java
ViewVC logotype

Contents of /branches/2.0-GP14/src/skrueger/swing/checkboxtree/CheckBoxNodeRenderer.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 759 - (show annotations)
Wed Mar 10 12:48:37 2010 UTC (14 years, 11 months ago) by alfonx
File MIME type: text/plain
File size: 2948 byte(s)
Created a branch for GP 1.4-fixes.. 

1 package skrueger.swing.checkboxtree;
2
3 import java.awt.Color;
4 import java.awt.Component;
5 import java.awt.Font;
6
7 import javax.swing.BorderFactory;
8 import javax.swing.JCheckBox;
9 import javax.swing.JTree;
10 import javax.swing.UIManager;
11 import javax.swing.tree.DefaultMutableTreeNode;
12 import javax.swing.tree.DefaultTreeCellRenderer;
13 import javax.swing.tree.TreeCellRenderer;
14
15 public class CheckBoxNodeRenderer implements TreeCellRenderer {
16 protected JCheckBox leafRenderer = new JCheckBox();
17
18 protected DefaultTreeCellRenderer nonLeafRenderer = new DefaultTreeCellRenderer();
19
20 Color selectionBorderColor;
21
22 protected Color selectionForeground;
23
24 protected Color selectionBackground;
25
26 protected Color textForeground;
27
28 protected Color textBackground;
29
30 public JCheckBox getLeafRenderer() {
31 return leafRenderer;
32 }
33
34 public CheckBoxNodeRenderer() {
35 Font fontValue;
36 fontValue = UIManager.getFont("Tree.font");
37 if (fontValue != null) {
38 leafRenderer.setFont(fontValue);
39 }
40 Boolean booleanValue = (Boolean) UIManager
41 .get("Tree.drawsFocusBorderAroundIcon");
42 leafRenderer.setFocusPainted((booleanValue != null)
43 && (booleanValue.booleanValue()));
44
45 leafRenderer.setBorder(BorderFactory.createEmptyBorder(1,1,1,1));
46
47 selectionBorderColor = UIManager.getColor("Tree.selectionBorderColor");
48 selectionForeground = UIManager.getColor("Tree.selectionForeground");
49 selectionBackground = UIManager.getColor("Tree.selectionBackground");
50 textForeground = UIManager.getColor("Tree.textForeground");
51 textBackground = UIManager.getColor("Tree.textBackground");
52 }
53
54 public Component getTreeCellRendererComponent(JTree tree, Object value,
55 boolean selected, boolean expanded, boolean leaf, int row,
56 boolean hasFocus) {
57
58 Component returnValue;
59 if (leaf) {
60
61 String stringValue = tree.convertValueToText(value, selected,
62 expanded, leaf, row, false);
63 leafRenderer.setText(stringValue);
64 leafRenderer.setSelected(false);
65
66 leafRenderer.setEnabled(tree.isEnabled());
67
68 if (selected) {
69 leafRenderer.setForeground(selectionForeground);
70 leafRenderer.setBackground(selectionBackground);
71 } else {
72 leafRenderer.setForeground(textForeground);
73 leafRenderer.setBackground(textBackground);
74 }
75
76 if ((value != null) && (value instanceof DefaultMutableTreeNode)) {
77 Object userObject = ((DefaultMutableTreeNode) value)
78 .getUserObject();
79 if (userObject instanceof CheckBoxNode) {
80 CheckBoxNode node = (CheckBoxNode) userObject;
81 leafRenderer.setText(node.getText());
82 leafRenderer.setSelected(node.isSelected());
83 }
84
85 }
86 returnValue = leafRenderer;
87 } else {
88 returnValue = nonLeafRenderer.getTreeCellRendererComponent(tree,
89 value, selected, expanded, leaf, row, hasFocus);
90 }
91 return returnValue;
92 }
93 }

Properties

Name Value
svn:eol-style native
svn:keywords Id URL
svn:mime-type text/plain

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26