OSDN Git Service

remove subversion keyword
[jindolf/Jindolf.git] / src / main / java / jp / sourceforge / jindolf / VillageInfoPanel.java
1 /*\r
2  * village information panel\r
3  *\r
4  * License : The MIT License\r
5  * Copyright(c) 2009 olyutorskii\r
6  */\r
7 \r
8 package jp.sourceforge.jindolf;\r
9 \r
10 import java.awt.GridBagConstraints;\r
11 import java.awt.GridBagLayout;\r
12 import java.awt.Insets;\r
13 import javax.swing.JLabel;\r
14 import javax.swing.JPanel;\r
15 \r
16 /**\r
17  * 村情報表示パネル。\r
18  */\r
19 @SuppressWarnings("serial")\r
20 public class VillageInfoPanel extends JPanel{\r
21 \r
22     private Village village;\r
23 \r
24     private final JLabel landName    = new JLabel();\r
25     private final JLabel villageName = new JLabel();\r
26     private final JLabel villageID   = new JLabel();\r
27     private final JLabel state       = new JLabel();\r
28     private final JLabel days        = new JLabel();\r
29     private final JLabel limit       = new JLabel();\r
30 \r
31     private final JLabel limitCaption = new JLabel();\r
32 \r
33     /**\r
34      * コンストラクタ。\r
35      */\r
36     public VillageInfoPanel(){\r
37         super();\r
38 \r
39         design();\r
40 \r
41         updateVillage(null);\r
42 \r
43         return;\r
44     }\r
45 \r
46     /**\r
47      * レイアウトを行う。\r
48      */\r
49     private void design(){\r
50         GridBagLayout layout = new GridBagLayout();\r
51         GridBagConstraints constraints = new GridBagConstraints();\r
52         setLayout(layout);\r
53 \r
54         constraints.insets = new Insets(2, 2, 2, 2);\r
55 \r
56         constraints.anchor = GridBagConstraints.EAST;\r
57         constraints.gridwidth = 1;\r
58         add(new JLabel("国名 : "), constraints);\r
59         constraints.anchor = GridBagConstraints.WEST;\r
60         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
61         add(this.landName, constraints);\r
62 \r
63         constraints.anchor = GridBagConstraints.EAST;\r
64         constraints.gridwidth = 1;\r
65         add(new JLabel("村名 : "), constraints);\r
66         constraints.anchor = GridBagConstraints.WEST;\r
67         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
68         add(this.villageName, constraints);\r
69 \r
70         constraints.anchor = GridBagConstraints.EAST;\r
71         constraints.gridwidth = 1;\r
72         add(new JLabel("村ID : "), constraints);\r
73         constraints.anchor = GridBagConstraints.WEST;\r
74         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
75         add(this.villageID, constraints);\r
76 \r
77         constraints.anchor = GridBagConstraints.EAST;\r
78         constraints.gridwidth = 1;\r
79         add(new JLabel("状態 : "), constraints);\r
80         constraints.anchor = GridBagConstraints.WEST;\r
81         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
82         add(this.state, constraints);\r
83 \r
84         constraints.anchor = GridBagConstraints.EAST;\r
85         constraints.gridwidth = 1;\r
86         add(new JLabel("所要日数 : "), constraints);\r
87         constraints.anchor = GridBagConstraints.WEST;\r
88         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
89         add(this.days, constraints);\r
90 \r
91         constraints.anchor = GridBagConstraints.EAST;\r
92         constraints.gridwidth = 1;\r
93         add(this.limitCaption, constraints);\r
94         constraints.anchor = GridBagConstraints.WEST;\r
95         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
96         add(this.limit, constraints);\r
97 \r
98         constraints.fill = GridBagConstraints.BOTH;\r
99         constraints.weightx = 1.0;\r
100         constraints.weighty = 1.0;\r
101         constraints.gridwidth = GridBagConstraints.REMAINDER;\r
102         constraints.gridheight = GridBagConstraints.REMAINDER;\r
103         add(new JPanel(), constraints);  // ダミー詰め物\r
104 \r
105         return;\r
106     }\r
107 \r
108     /**\r
109      * 村を返す。\r
110      * @return 村\r
111      */\r
112     public Village getVillage(){\r
113         return this.village;\r
114     }\r
115 \r
116     /**\r
117      * 村情報を更新する。\r
118      * @param villageArg 村\r
119      */\r
120     public final void updateVillage(Village villageArg){\r
121         this.village = villageArg;\r
122 \r
123         if(this.village == null){\r
124             this.landName   .setText("???");\r
125             this.villageName.setText("???");\r
126             this.villageID  .setText("???");\r
127             this.state      .setText("???");\r
128             this.days       .setText("???");\r
129             this.limit      .setText("???");\r
130 \r
131             this.limitCaption.setText("更新日時 : ");\r
132 \r
133             return;\r
134         }\r
135 \r
136         String land  = this.village.getParentLand()\r
137                                    .getLandDef()\r
138                                    .getLandName();\r
139         String vName = "「" + this.village.getVillageFullName() + "」";\r
140         String vID   = this.village.getVillageID();\r
141 \r
142         int progressDays = this.village.getProgressDays();\r
143         String status;\r
144         String daysInfo;\r
145         String caption;\r
146         switch(this.village.getState()){\r
147         case PROLOGUE:\r
148             status = "プロローグ中";\r
149             daysInfo = "プロローグ中";\r
150             caption = "プロローグ終了予想 : ";\r
151             break;\r
152         case PROGRESS:\r
153             status = "ゲーム進行中";\r
154             daysInfo = "プロローグ + " + progressDays + "日目";\r
155             caption = "更新日時 : ";\r
156             break;\r
157         case EPILOGUE:\r
158             status = "エピローグ中";\r
159             daysInfo = "プロローグ + " + progressDays + "日 + エピローグ中";\r
160             caption = "エピローグ終了予想 : ";\r
161             break;\r
162         case GAMEOVER:\r
163             status = "ゲーム終了";\r
164             daysInfo = "プロローグ + " + progressDays + "日 + エピローグ";\r
165             caption = "エピローグ終了日時 : ";\r
166             break;\r
167         case UNKNOWN:\r
168             status = "不明";\r
169             daysInfo = "不明";\r
170             caption = "更新日時 : ";\r
171             break;\r
172         default:\r
173             assert false;\r
174             status = "???";\r
175             daysInfo = "???";\r
176             caption = "更新日時 : ";\r
177             break;\r
178         }\r
179 \r
180         int limitMonth  = this.village.getLimitMonth();\r
181         int limitDay    = this.village.getLimitDay();\r
182         int limitHour   = this.village.getLimitHour();\r
183         int limitMinute = this.village.getLimitMinute();\r
184 \r
185         String limitDate = limitMonth + "月" + limitDay + "日";\r
186         String limitTime = "";\r
187         if(limitHour < 10) limitTime += "0";\r
188         limitTime += limitHour + ":";\r
189         if(limitMinute < 10) limitTime += "0";\r
190         limitTime += limitMinute;\r
191 \r
192         this.landName   .setText(land);\r
193         this.villageName.setText(vName);\r
194         this.villageID  .setText(vID);\r
195         this.state      .setText(status);\r
196         this.days       .setText(daysInfo);\r
197         this.limit      .setText(limitDate + " " + limitTime);\r
198 \r
199         this.limitCaption.setText(caption);\r
200 \r
201         return;\r
202     }\r
203 \r
204 }\r