1 | package com.framsticks.gui.tree; |
---|
2 | |
---|
3 | import java.awt.Component; |
---|
4 | |
---|
5 | import javax.swing.JTree; |
---|
6 | import javax.swing.tree.DefaultTreeCellRenderer; |
---|
7 | |
---|
8 | import com.framsticks.gui.ImageProvider; |
---|
9 | import com.framsticks.params.CompositeParam; |
---|
10 | |
---|
11 | /** |
---|
12 | * Renderer of Tree. Sets appropriate icons for nodes. |
---|
13 | */ |
---|
14 | @SuppressWarnings("serial") |
---|
15 | public class TreeCellRenderer extends DefaultTreeCellRenderer { |
---|
16 | |
---|
17 | protected final TreeModel treeModel; |
---|
18 | |
---|
19 | |
---|
20 | /** |
---|
21 | * @param treeModel |
---|
22 | */ |
---|
23 | public TreeCellRenderer(TreeModel treeModel) { |
---|
24 | this.treeModel = treeModel; |
---|
25 | } |
---|
26 | |
---|
27 | @Override |
---|
28 | public Component getTreeCellRendererComponent(JTree tree, Object value, |
---|
29 | boolean sel, boolean expanded, boolean leaf, int row, |
---|
30 | boolean hasFocus) { |
---|
31 | |
---|
32 | super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); |
---|
33 | |
---|
34 | if (value == null) { |
---|
35 | setText("!null value"); |
---|
36 | return this; |
---|
37 | } |
---|
38 | |
---|
39 | if (!(value instanceof AbstractNode)) { |
---|
40 | setText("?"); |
---|
41 | // treeModel.renderTreeObject(Casting.throwCast(TreeNode.class, value), this); |
---|
42 | return this; |
---|
43 | } |
---|
44 | ((AbstractNode) value).render(this); |
---|
45 | |
---|
46 | return this; |
---|
47 | } |
---|
48 | |
---|
49 | public static String findIconName(CompositeParam param) { |
---|
50 | switch (param.getFramsTypeName()) { |
---|
51 | case "o Server": return ImageProvider.SERVER; |
---|
52 | case "o Simulator": return ImageProvider.SIMULATOR; |
---|
53 | case "o CLI": return ImageProvider.CLI; |
---|
54 | case "o World": return ImageProvider.WORLD; |
---|
55 | case "o GenePools": return ImageProvider.GENEPOOLS; |
---|
56 | case "l GenePool": return ImageProvider.SIMULATOR; //HERE |
---|
57 | case "o GenePool": return ImageProvider.GENEPOOLS_GROUP; //HERE |
---|
58 | |
---|
59 | case "o Populations": return ImageProvider.POPULATIONS; |
---|
60 | case "l Population": return ImageProvider.SIMULATOR; ///HERE |
---|
61 | case "o Population": return ImageProvider.POPULATION_GROUP; |
---|
62 | case "o ExpParams": return ImageProvider.EXPERIMENT; |
---|
63 | case "o stats": return ImageProvider.STATISTIC; |
---|
64 | case "l Genotype uid": return ImageProvider.GENOTYPES_GROUP; |
---|
65 | case "o Genotype": return ImageProvider.GENOTYPES; |
---|
66 | |
---|
67 | case "o Part": return ImageProvider.PART; |
---|
68 | case "o Joint": return ImageProvider.JOINT; |
---|
69 | case "o NeuroDef": return ImageProvider.NEURON_DEF; |
---|
70 | case "o NeuroConn": return ImageProvider.NEURON_DEF; |
---|
71 | |
---|
72 | case "o MechPart": return ImageProvider.MECH_PART; |
---|
73 | case "o MechJoint": return ImageProvider.MECH_JOINT; |
---|
74 | case "o Neuro": return ImageProvider.NEURON; |
---|
75 | |
---|
76 | case "l Part": return ImageProvider.PART_GROUP; |
---|
77 | case "l Joint": return ImageProvider.JOINT_GROUP; |
---|
78 | case "l NeuroDef": return ImageProvider.NEURON_DEF_GROUP; |
---|
79 | case "l NeuroConn": return ImageProvider.NEURON_DEF_GROUP; |
---|
80 | |
---|
81 | case "l MechPart": return ImageProvider.MECH_PART_GROUP; |
---|
82 | case "l MechJoint": return ImageProvider.MECH_JOINT_GROUP; |
---|
83 | case "l Neuro": return ImageProvider.NEURON_GROUP; |
---|
84 | |
---|
85 | case "o Creature": return ImageProvider.CREATURE; |
---|
86 | case "l Creature uid": return ImageProvider.CREATURES_GROUP; |
---|
87 | case "l Event id": return ImageProvider.EVENT; |
---|
88 | case "o Event": return ImageProvider.EVENT; |
---|
89 | |
---|
90 | } |
---|
91 | return ImageProvider.FOLDER_OPEN; |
---|
92 | } |
---|
93 | |
---|
94 | |
---|
95 | } |
---|