[99] | 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 | |
---|
[100] | 17 | protected final TreeModel treeModel; |
---|
[99] | 18 | |
---|
[100] | 19 | |
---|
| 20 | /** |
---|
| 21 | * @param treeModel |
---|
| 22 | */ |
---|
| 23 | public TreeCellRenderer(TreeModel treeModel) { |
---|
| 24 | this.treeModel = treeModel; |
---|
[99] | 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)) { |
---|
[100] | 40 | setText("?"); |
---|
| 41 | // treeModel.renderTreeObject(Casting.throwCast(TreeNode.class, value), this); |
---|
[99] | 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 | } |
---|
[102] | 91 | return ImageProvider.FOLDER_OPEN; |
---|
[99] | 92 | } |
---|
| 93 | |
---|
| 94 | |
---|
| 95 | } |
---|