1 | // License: GPL. For details, see LICENSE file.
|
---|
2 | package org.openstreetmap.josm.gui.dialogs.validator;
|
---|
3 |
|
---|
4 | import java.awt.Component;
|
---|
5 |
|
---|
6 | import javax.swing.JTree;
|
---|
7 | import javax.swing.tree.DefaultMutableTreeNode;
|
---|
8 | import javax.swing.tree.DefaultTreeCellRenderer;
|
---|
9 |
|
---|
10 | import org.openstreetmap.josm.data.validation.Severity;
|
---|
11 | import org.openstreetmap.josm.data.validation.TestError;
|
---|
12 | import org.openstreetmap.josm.data.validation.util.MultipleNameVisitor;
|
---|
13 | import org.openstreetmap.josm.tools.ImageProvider;
|
---|
14 |
|
---|
15 | /**
|
---|
16 | * Tree renderer for displaying errors
|
---|
17 | * @author frsantos
|
---|
18 | */
|
---|
19 | public class ValidatorTreeRenderer extends DefaultTreeCellRenderer {
|
---|
20 |
|
---|
21 | @Override
|
---|
22 | public Component getTreeCellRendererComponent(JTree tree, Object value,
|
---|
23 | boolean selected, boolean expanded, boolean leaf, int row,
|
---|
24 | boolean hasFocus) {
|
---|
25 | super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
|
---|
26 |
|
---|
27 | DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
|
---|
28 | Object nodeInfo = node.getUserObject();
|
---|
29 |
|
---|
30 | if (nodeInfo instanceof Severity) {
|
---|
31 | Severity s = (Severity) nodeInfo;
|
---|
32 | setIcon(ImageProvider.get("data", s.getIcon()));
|
---|
33 | } else if (nodeInfo instanceof TestError) {
|
---|
34 | TestError error = (TestError) nodeInfo;
|
---|
35 | MultipleNameVisitor v = new MultipleNameVisitor();
|
---|
36 | v.visit(error.getPrimitives());
|
---|
37 | setText(v.getText());
|
---|
38 | setIcon(v.getIcon());
|
---|
39 | }
|
---|
40 | return this;
|
---|
41 | }
|
---|
42 | }
|
---|