2 * village information panel
4 * License : The MIT License
5 * Copyright(c) 2009 olyutorskii
8 package jp.sfjp.jindolf.view;
10 import java.awt.GridBagConstraints;
11 import java.awt.GridBagLayout;
12 import java.awt.Insets;
13 import javax.swing.JLabel;
14 import javax.swing.JPanel;
15 import jp.sfjp.jindolf.data.Village;
20 @SuppressWarnings("serial")
21 public class VillageInfoPanel extends JPanel{
23 private Village village;
25 private final JLabel landName = new JLabel();
26 private final JLabel villageName = new JLabel();
27 private final JLabel villageID = new JLabel();
28 private final JLabel state = new JLabel();
29 private final JLabel days = new JLabel();
30 private final JLabel limit = new JLabel();
32 private final JLabel limitCaption = new JLabel();
37 public VillageInfoPanel(){
50 private void design(){
51 GridBagLayout layout = new GridBagLayout();
52 GridBagConstraints constraints = new GridBagConstraints();
55 constraints.insets = new Insets(2, 2, 2, 2);
57 constraints.anchor = GridBagConstraints.EAST;
58 constraints.gridwidth = 1;
59 add(new JLabel("国名 : "), constraints);
60 constraints.anchor = GridBagConstraints.WEST;
61 constraints.gridwidth = GridBagConstraints.REMAINDER;
62 add(this.landName, constraints);
64 constraints.anchor = GridBagConstraints.EAST;
65 constraints.gridwidth = 1;
66 add(new JLabel("村名 : "), constraints);
67 constraints.anchor = GridBagConstraints.WEST;
68 constraints.gridwidth = GridBagConstraints.REMAINDER;
69 add(this.villageName, constraints);
71 constraints.anchor = GridBagConstraints.EAST;
72 constraints.gridwidth = 1;
73 add(new JLabel("村ID : "), constraints);
74 constraints.anchor = GridBagConstraints.WEST;
75 constraints.gridwidth = GridBagConstraints.REMAINDER;
76 add(this.villageID, constraints);
78 constraints.anchor = GridBagConstraints.EAST;
79 constraints.gridwidth = 1;
80 add(new JLabel("状態 : "), constraints);
81 constraints.anchor = GridBagConstraints.WEST;
82 constraints.gridwidth = GridBagConstraints.REMAINDER;
83 add(this.state, constraints);
85 constraints.anchor = GridBagConstraints.EAST;
86 constraints.gridwidth = 1;
87 add(new JLabel("所要日数 : "), constraints);
88 constraints.anchor = GridBagConstraints.WEST;
89 constraints.gridwidth = GridBagConstraints.REMAINDER;
90 add(this.days, constraints);
92 constraints.anchor = GridBagConstraints.EAST;
93 constraints.gridwidth = 1;
94 add(this.limitCaption, constraints);
95 constraints.anchor = GridBagConstraints.WEST;
96 constraints.gridwidth = GridBagConstraints.REMAINDER;
97 add(this.limit, constraints);
99 constraints.fill = GridBagConstraints.BOTH;
100 constraints.weightx = 1.0;
101 constraints.weighty = 1.0;
102 constraints.gridwidth = GridBagConstraints.REMAINDER;
103 constraints.gridheight = GridBagConstraints.REMAINDER;
104 add(new JPanel(), constraints); // ダミー詰め物
113 public Village getVillage(){
119 * @param villageArg 村
121 public final void updateVillage(Village villageArg){
122 this.village = villageArg;
124 if(this.village == null){
125 this.landName .setText("???");
126 this.villageName.setText("???");
127 this.villageID .setText("???");
128 this.state .setText("???");
129 this.days .setText("???");
130 this.limit .setText("???");
132 this.limitCaption.setText("更新日時 : ");
137 String land = this.village.getParentLand()
140 String vName = "「" + this.village.getVillageFullName() + "」";
141 String vID = this.village.getVillageID();
143 int progressDays = this.village.getProgressDays();
147 switch(this.village.getState()){
151 caption = "プロローグ終了予想 : ";
155 daysInfo = "プロローグ + " + progressDays + "日目";
160 daysInfo = "プロローグ + " + progressDays + "日 + エピローグ中";
161 caption = "エピローグ終了予想 : ";
165 daysInfo = "プロローグ + " + progressDays + "日 + エピローグ";
166 caption = "エピローグ終了日時 : ";
181 int limitMonth = this.village.getLimitMonth();
182 int limitDay = this.village.getLimitDay();
183 int limitHour = this.village.getLimitHour();
184 int limitMinute = this.village.getLimitMinute();
186 String limitDate = limitMonth + "月" + limitDay + "日";
187 String limitTime = "";
188 if(limitHour < 10) limitTime += "0";
189 limitTime += limitHour + ":";
190 if(limitMinute < 10) limitTime += "0";
191 limitTime += limitMinute;
193 this.landName .setText(land);
194 this.villageName.setText(vName);
195 this.villageID .setText(vID);
196 this.state .setText(status);
197 this.days .setText(daysInfo);
198 this.limit .setText(limitDate + " " + limitTime);
200 this.limitCaption.setText(caption);