26 package org.nexusformat.nxvalidate;
28 import java.awt.Color;
29 import java.awt.Component;
31 import javax.swing.Icon;
32 import javax.swing.ImageIcon;
33 import javax.swing.JLabel;
34 import javax.swing.JTree;
35 import javax.swing.tree.DefaultMutableTreeNode;
36 import javax.swing.tree.TreeCellRenderer;
38 import org.xml.sax.Attributes;
42 public static class ITag
implements IconAndTipCarrier {
46 private Attributes attr;
48 private String tipText;
50 public ITag(String n, Attributes a) {
53 for (
int i = 0; i < attr.getLength(); i++) {
54 String aname = attr.getQName(i);
55 String value = attr.getValue(i);
56 if (aname.equals(
"icon")) {
58 icon =
new ImageIcon(value);
64 public String getName() {
68 public Attributes getAttributes() {
72 public void setData(String d) {
76 public String getData() {
80 public String getToolTipText() {
84 public Icon getIcon() {
88 public void addData(String d) {
96 public String getAttributesAsString() {
97 StringBuffer buf =
new StringBuffer(256);
98 for (
int i = 0; i < attr.getLength(); i++) {
99 buf.append(attr.getQName(i));
101 buf.append(attr.getValue(i));
104 return buf.toString();
107 public String toString() {
108 String a = getAttributesAsString();
109 return name +
": " + a + (data == null ?
"" :
" (" + data +
")");
114 interface IconAndTipCarrier {
116 public Icon getIcon();
118 public String getToolTipText();
121 class IconAndTipRenderer
extends JLabel implements TreeCellRenderer {
126 private static final long serialVersionUID = -6749045036022861743L;
127 Color backColor =
new Color(0xFF, 0xCC, 0xFF);
128 Icon openIcon, closedIcon, leafIcon;
131 public IconAndTipRenderer(Icon open, Icon closed, Icon leaf) {
135 setBackground(backColor);
136 setForeground(Color.black);
139 public Component getTreeCellRendererComponent(JTree tree, Object value,
140 boolean selected,
boolean expanded,
boolean leaf,
int row,
142 setText(value.toString());
149 IconAndTipCarrier itc = null;
150 if (value instanceof DefaultMutableTreeNode) {
151 Object uo = ((DefaultMutableTreeNode) value).getUserObject();
152 if (uo instanceof IconAndTipCarrier) {
153 itc = (IconAndTipCarrier) uo;
155 }
else if (value instanceof IconAndTipCarrier) {
156 itc = (IconAndTipCarrier) value;
158 if ((itc != null) && (itc.getIcon() != null)) {
159 setIcon(itc.getIcon());
160 tipText = itc.getToolTipText();
174 public String getToolTipText() {