source: java/main/src/main/java/com/framsticks/gui/view/TreeCellRenderer.java @ 77

Last change on this file since 77 was 77, checked in by psniegowski, 11 years ago

Add new java codebase.

File size: 3.9 KB
Line 
1package com.framsticks.gui.view;
2
3import com.framsticks.gui.ImageProvider;
4import com.framsticks.gui.TreeNode;
5
6import javax.swing.*;
7import javax.swing.tree.DefaultTreeCellRenderer;
8import java.awt.*;
9
10/**
11 * Renderer of Tree. Sets appropriate icons for nodes.
12 */
13@SuppressWarnings("serial")
14public class TreeCellRenderer extends DefaultTreeCellRenderer {
15
16    public TreeCellRenderer() {
17        setOpenIcon(null);
18        setClosedIcon(null);
19        setLeafIcon(null);
20    }
21
22        @Override
23        public Component getTreeCellRendererComponent(JTree tree, Object value,
24                                                      boolean sel, boolean expanded, boolean leaf, int row,
25                                                      boolean hasFocus) {
26
27                //super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,
28                //              row, hasFocus);
29                if (value == null) {
30                        return this;
31                }
32                if (!(value instanceof TreeNode)) {
33            setIcon(ImageProvider.loadImage(ImageProvider.SERVER));
34            setText("framsticks");
35                        return this;
36                }
37                TreeNode treeNode = (TreeNode)value;
38        assert treeNode.getFrame().isActive();
39        setToolTipText(treeNode.getTooltip());
40        setIcon(ImageProvider.loadImage(treeNode.getIconName()));
41        setText(treeNode.getName());
42                return this;
43        }
44
45        public static String findIconName(String nodeName, String path) {
46        if (path == null || nodeName == null) {
47            return null;
48        }
49        if (path.equals("/")) {
50                        return ImageProvider.SERVER;
51                }
52                if (path.endsWith("simulator")) {
53                        return ImageProvider.SIMULATOR;
54                }
55                if (path.endsWith("cli")) {
56                        return ImageProvider.CLI;
57                }
58                if (path.endsWith("world")) {
59                        return ImageProvider.WORLD;
60                }
61                if (path.endsWith("genepools")) {
62                        return ImageProvider.GENEPOOLS;
63                }
64                if (path.endsWith("populations")) {
65                        return ImageProvider.POPULATIONS;
66                }
67                if (path.endsWith("experiment")) {
68                        return ImageProvider.EXPERIMENT;
69                }
70                if (path.endsWith("stats")) {
71                        return ImageProvider.STATISTIC;
72                }
73                if (nodeName.equals("creatures") || path.endsWith("creatures")) {
74                        return ImageProvider.CREATURES_GROUP;
75                }
76                if (nodeName.equals("Favourite Fields")) {
77                        return ImageProvider.FAVORITE_FIELDS;
78                }
79                if (nodeName.equals("genotypes") || path.endsWith("creatures")) {
80                        return ImageProvider.GENOTYPES_GROUP;
81                }
82                if (nodeName.equals("parts") || path.endsWith("parts")) {
83                        return ImageProvider.PART_GROUP;
84                }
85                if (nodeName.equals("joints") || path.endsWith("joints")) {
86                        return ImageProvider.JOINT_GROUP;
87                }
88                if (nodeName.equals("neurodefs") || path.endsWith("neurodefs")) {
89                        return ImageProvider.NEURON_DEF_GROUP;
90                }
91                if (nodeName.equals("mechparts") || path.endsWith("mechparts")) {
92                        return ImageProvider.MECH_PART_GROUP;
93                }
94                if (nodeName.equals("mechjoints") || path.endsWith("mechjoints")) {
95                        return ImageProvider.MECH_JOINT_GROUP;
96                }
97                if (nodeName.equals("neurons") || path.endsWith("neurons")) {
98                        return ImageProvider.NEURON_GROUP;
99                }
100                if (path.matches("^.*parts/[0-9]+$")) {
101                        return ImageProvider.PART;
102                }
103                if (path.matches("^.*joints/[0-9]+$")) {
104                        return ImageProvider.JOINT;
105                }
106                if (path.matches("^.*neurodefs/[0-9]+$")) {
107                        return ImageProvider.NEURON_DEF;
108                }
109                if (path.matches("^.*mechparts/[0-9]+$")) {
110                        return ImageProvider.MECH_PART;
111                }
112                if (path.matches("^.*mechjoints/[0-9]+$")) {
113                        return ImageProvider.MECH_JOINT;
114                }
115                if (path.matches("^.*neurons/[0-9]+$")) {
116                        return ImageProvider.NEURON;
117                }
118                if (path.matches("^.*creatures/c[0-9]+$")) {
119                        return ImageProvider.CREATURE;
120                }
121                if (path.matches("^.*genotypes/g[0-9]+$")) {
122                        return ImageProvider.GENOTYPES;
123                }
124                if (path.matches("^.*populations/groups/[0-9]+$")) {
125                        return ImageProvider.POPULATION_GROUP;
126                }
127                if (path.matches("^.*genepools/groups/[0-9]+$")) {
128                        return ImageProvider.GENEPOOLS_GROUP;
129                }
130                if (path.matches("^.*events/e[0-9]+$")) {
131                        return ImageProvider.EVENT;
132                }
133                return ImageProvider.SERVER;
134        }
135       
136       
137}
Note: See TracBrowser for help on using the repository browser.