OSDN Git Service

2113f65d75d34090014d062b866c38c3a6c95ab5
[jindolf/Jindolf.git] / src / main / java / jp / sourceforge / jindolf / VillageIconRenderer.java
1 /*\r
2  * Village icon renderer for JTree\r
3  *\r
4  * Copyright(c) 2008 olyutorskii\r
5  * $Id: VillageIconRenderer.java 888 2009-11-04 06:23:35Z olyutorskii $\r
6  */\r
7 \r
8 package jp.sourceforge.jindolf;\r
9 \r
10 import java.awt.Component;\r
11 import java.net.URL;\r
12 import javax.swing.ImageIcon;\r
13 import javax.swing.JTree;\r
14 import javax.swing.tree.DefaultTreeCellRenderer;\r
15 \r
16 /**\r
17  * JTreeの村別アイコン表示。\r
18  */\r
19 @SuppressWarnings("serial")\r
20 public class VillageIconRenderer extends DefaultTreeCellRenderer{\r
21 \r
22     private static final ImageIcon ICON_PROLOGUE;\r
23     private static final ImageIcon ICON_PROGRESS;\r
24     private static final ImageIcon ICON_EPILOGUE;\r
25     private static final ImageIcon ICON_GAMEOVER;\r
26     private static final ImageIcon ICON_INVALID;\r
27 \r
28     static{\r
29         URL url;\r
30         url = Jindolf.getResource("resources/image/prologue.png");\r
31         ICON_PROLOGUE = new ImageIcon(url);\r
32         url = Jindolf.getResource("resources/image/progress.png");\r
33         ICON_PROGRESS = new ImageIcon(url);\r
34         url = Jindolf.getResource("resources/image/epilogue.png");\r
35         ICON_EPILOGUE = new ImageIcon(url);\r
36         url = Jindolf.getResource("resources/image/gameover.png");\r
37         ICON_GAMEOVER = new ImageIcon(url);\r
38         url = Jindolf.getResource("resources/image/cross.png");\r
39         ICON_INVALID = new ImageIcon(url);\r
40     }\r
41 \r
42     /**\r
43      * コンストラクタ。\r
44      */\r
45     public VillageIconRenderer(){\r
46         super();\r
47         return;\r
48     }\r
49 \r
50     /**\r
51      * {@inheritDoc}\r
52      * 村種別によってツリーリストアイコンを書き分ける。\r
53      * @param tree {@inheritDoc}\r
54      * @param value {@inheritDoc}\r
55      * @param sel {@inheritDoc}\r
56      * @param expanded {@inheritDoc}\r
57      * @param leaf {@inheritDoc}\r
58      * @param row {@inheritDoc}\r
59      * @param hasFocus {@inheritDoc}\r
60      * @return {@inheritDoc}\r
61      */\r
62     @Override\r
63     public Component getTreeCellRendererComponent(\r
64             JTree tree,\r
65             Object value,\r
66             boolean sel,\r
67             boolean expanded,\r
68             boolean leaf,\r
69             int row,\r
70             boolean hasFocus ){\r
71         if(leaf && value instanceof Village){\r
72             Village village = (Village) value;\r
73             ImageIcon icon = null;\r
74             switch(village.getState()){\r
75             case PROLOGUE: icon = ICON_PROLOGUE; break;\r
76             case PROGRESS: icon = ICON_PROGRESS; break;\r
77             case EPILOGUE: icon = ICON_EPILOGUE; break;\r
78             case GAMEOVER: icon = ICON_GAMEOVER; break;\r
79             default: assert false; break;\r
80             }\r
81             if( ! village.isValid()) icon = ICON_INVALID;\r
82             setLeafIcon(icon);\r
83         }\r
84 \r
85         Component comp =\r
86                 super\r
87                 .getTreeCellRendererComponent(\r
88                     tree,\r
89                     value,\r
90                     sel,\r
91                     expanded,\r
92                     leaf,\r
93                     row,\r
94                     hasFocus\r
95                 );\r
96 \r
97         return comp;\r
98     }\r
99 \r
100 }\r