OSDN Git Service

7d09a8a631dc41ababc57aa9f588d36bc1c7be8d
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / HistoryActivity.java
1 package com.td;\r
2 \r
3 import java.util.Calendar;\r
4 import java.util.Date;\r
5 import java.util.List;\r
6 \r
7 import org.afree.chart.AFreeChart;\r
8 import org.afree.chart.ChartFactory;\r
9 import org.afree.chart.plot.PlotOrientation;\r
10 import org.afree.data.category.DefaultCategoryDataset;\r
11 \r
12 import android.content.Context;\r
13 import android.content.Intent;\r
14 import android.content.res.Configuration;\r
15 import android.os.Bundle;\r
16 import android.view.View;\r
17 import android.view.View.OnClickListener;\r
18 import android.widget.Button;\r
19 import android.widget.HorizontalScrollView;\r
20 import android.widget.TextView;\r
21 \r
22 import com.td.db.History;\r
23 import com.td.db.HistoryDao;\r
24 import com.td.utility.BaseActivity;\r
25 import com.td.utility.DateUtil;\r
26 import com.td.utility.Debug;\r
27 import com.td.utility.EditPrefUtil;\r
28 \r
29 public class HistoryActivity extends BaseActivity {\r
30         public static final String PREF_HIS_YEAR = "HIS_YEAR";\r
31         public static final String PREF_HIS_MONTH = "HIS_MONTH";\r
32         public static final String PREF_HIS_DAY = "HIS_DAY";\r
33         public static final String PREF_HIS_YMD_POS = "HIS_YMD_POS";\r
34 \r
35         public static final String PREF_HIS_ST_HOUR = "HIS_ST_HOUR";\r
36         public static final String PREF_HIS_ST_MINUTE = "HIS_ST_MINUTE";\r
37         public static final String PREF_HIS_EN_HOUR = "HIS_EN_HOUR";\r
38         public static final String PREF_HIS_EN_MINUTE = "HIS_EN_MINUTE";\r
39 \r
40         public static final int[] unit = { 10, 30, 60 };\r
41 \r
42         private TextView textView1;\r
43         private EditPrefUtil pref = new EditPrefUtil(this);\r
44     private HorizontalScrollView scrollView;\r
45     private HistoryView historyView;\r
46     \r
47         private int prefYear;\r
48         private int prefMonth;\r
49         private int prefDay;\r
50         private int prefYmdPos;\r
51 \r
52         private int prefStHour;\r
53         private int prefStMinute;\r
54         private int prefEnHour;\r
55         private int prefEnMinute;\r
56 \r
57         private Date currentDate;\r
58 \r
59         @Override\r
60         public void onCreate(Bundle savedInstanceState) {\r
61                 super.onCreate(savedInstanceState);\r
62                 setContentView(R.layout.history);\r
63                 \r
64                 try {\r
65                         Button button1 = (Button) findViewById(R.id.button11);\r
66                         button1.setOnClickListener(new OnClickListener() {\r
67                                 public void onClick(View view) {\r
68                                         Intent intent = new Intent(HistoryActivity.this,\r
69                                                         (Class<?>) HistoryConfActivity.class);\r
70                                         startActivityForResult(intent, -1);\r
71                                 }\r
72                         });\r
73 \r
74                         Button button2 = (Button) findViewById(R.id.button12);\r
75                         button2.setOnClickListener(new OnClickListener() {\r
76                                 public void onClick(View view) {\r
77                                         HistoryActivity.this.finish();\r
78                                 }\r
79                         });\r
80 \r
81                         textView1 = (TextView) findViewById(R.id.textView11);\r
82                         scrollView = (HorizontalScrollView) findViewById(R.id.scrollView11);\r
83                         historyView = (HistoryView) findViewById(R.id.historyView11);\r
84                         historyView.setHistoryActivity(this);\r
85 //                      HistoryDao dao = HistoryDao.getInstance();\r
86 //                      // List<History> list = dao.search(this);\r
87 //                      Calendar cal = Calendar.getInstance();\r
88 //                      Date date = cal.getTime();\r
89 //                      int ymd = DateUtil.getYmd(date);\r
90 //                      List<History> list = dao.search(this, ymd, DateUtil.HM_MIN,\r
91 //                                      DateUtil.HM_MAX);\r
92 //\r
93 //                      DefaultCategoryDataset dataset = new DefaultCategoryDataset();\r
94 //                      for (History history : list) {\r
95 //                              int period = history.getPeriod();\r
96 //                              double val = 0;\r
97 //                              if (period > 0) {\r
98 //                                      // TODO\r
99 //                                      // val = history.getNum() * 60 / period;\r
100 //                                      val = history.getNum();\r
101 //                              }\r
102 //                              int hm = history.getHm();\r
103 //                              String text = (hm / 100) + ":" + (hm % 100);\r
104 //                              String route = "<none>";\r
105 //                              switch (history.getRouteId()) {\r
106 //                              case 1:\r
107 //                                      route = "\8b\9e\95l\93\8c\96k\90ü";\r
108 //                                      break;\r
109 //                              case 2:\r
110 //                                      route = "\93\8c\8aC\93¹\90ü";\r
111 //                                      break;\r
112 //                              case 3:\r
113 //                                      route = "\8b\9e\8b}\90ü";\r
114 //                                      break;\r
115 //                              }\r
116 //                              Debug.d(this, route + " " + text + " " + val);\r
117 //                              dataset.setValue(val, route, text);\r
118 //                      }\r
119 //\r
120 //                      AFreeChart chart = ChartFactory.createLineChart("\82Â\82Ô\82â\82«\97\9a\97ð", "\8e\9e\8d\8f",\r
121 //                                      "\82Â\82Ô\82â\82«\90\94(\89ñ/\8e\9e)", dataset, PlotOrientation.VERTICAL, true,\r
122 //                                      false, false);\r
123 //\r
124 //                      HistoryView spcv = (HistoryView) findViewById(R.id.spcv);\r
125 //                      spcv.setChart(chart);\r
126                 } catch (Exception e) {\r
127                         // TODO\r
128                         Debug.d(this, null, e);\r
129                 }\r
130         }\r
131 \r
132 \r
133         public static int W = 0;\r
134         @Override\r
135         public void onWindowFocusChanged(boolean hasFocus) {\r
136                 int width = scrollView.getWidth();\r
137                 W = width;              \r
138                 \r
139                 super.onWindowFocusChanged(hasFocus);\r
140         }\r
141         \r
142         @Override\r
143     public void onConfigurationChanged(Configuration newConfig ) {\r
144                 int width = scrollView.getWidth();\r
145                 W = width;              \r
146                 \r
147         super.onConfigurationChanged(newConfig);\r
148     }\r
149         \r
150     @Override\r
151         protected void onStart() {\r
152                 super.onStart();\r
153 \r
154                 try {\r
155                         Calendar cal = Calendar.getInstance();\r
156                         Date date = cal.getTime();\r
157                         prefYear = pref.getInt(PREF_HIS_YEAR, date.getYear());\r
158                         prefMonth = pref.getInt(PREF_HIS_MONTH, date.getMonth());\r
159                         prefDay = pref.getInt(PREF_HIS_DAY, date.getDate());\r
160 \r
161                         int H = 3;\r
162                         prefEnHour = pref.getInt(PREF_HIS_EN_HOUR, date.getHours());\r
163                         prefEnMinute = pref.getInt(PREF_HIS_EN_MINUTE, date.getMinutes());\r
164                         cal = Calendar.getInstance();\r
165                         cal.set(Calendar.HOUR_OF_DAY, prefEnHour);\r
166                         cal.set(Calendar.MINUTE, prefEnMinute);\r
167                         date = cal.getTime();\r
168                         cal.add(Calendar.HOUR, -H);\r
169                         Date startDate = cal.getTime();\r
170                         int hour = 0;\r
171                         int minute = 0;\r
172                         if (date.getDate() == startDate.getDate()) {\r
173                                 hour = startDate.getHours();\r
174                                 minute = startDate.getMinutes();\r
175                         }\r
176                         prefStHour = pref.getInt(PREF_HIS_ST_HOUR, hour);\r
177                         prefStMinute = pref.getInt(PREF_HIS_ST_MINUTE, minute);\r
178 \r
179                         int M = 7;\r
180                         prefYmdPos = pref.getInt(PREF_HIS_YMD_POS, M - 1);\r
181 \r
182                         cal.add(Calendar.DATE, -(M - (prefYmdPos + 1)));\r
183                         currentDate = cal.getTime();\r
184 \r
185                         pref.update();\r
186                         \r
187                         \r
188                         HistoryDao dao = HistoryDao.getInstance();\r
189 //                      // List<History> list = dao.search(this);\r
190 //                      Calendar cal = Calendar.getInstance();\r
191 //                      Date date = cal.getTime();\r
192 //                      int ymd = DateUtil.getYmd(date);\r
193                         // TODO\r
194 //                      int ymd = (1900 + currentDate.getYear()) * 10000\r
195 //                                      + (currentDate.getMonth() + 1) * 100\r
196 //                                      + currentDate.getDate();\r
197 //                      int from = prefStHour * 100 + prefStMinute;\r
198 //                      int to = prefEnHour * 100 + prefEnMinute;\r
199                         int ymd = DateUtil.getYmd(currentDate.getYear(), currentDate.getMonth(), currentDate.getDate());\r
200                         int from = DateUtil.getHm(prefStHour, prefStMinute);\r
201                         int to = DateUtil.getHm(prefEnHour, prefEnMinute);\r
202                         List<History> list = dao.search(this, ymd, from, to);\r
203 \r
204                         DefaultCategoryDataset dataset = new DefaultCategoryDataset();\r
205                         for (History history : list) {\r
206                                 int period = history.getPeriod();\r
207                                 double val = 0;\r
208                                 if (period > 0) {\r
209                                         // TODO\r
210                                         // val = history.getNum() * 60 / period;\r
211                                         val = history.getNum();\r
212                                 }\r
213                                 int hm = history.getHm();\r
214                                 // TODO\r
215                                 //String text = (hm / 100) + ":" + (hm % 100);\r
216                                 String text = DateUtil.formattedHm(hm);\r
217                                 String route = "<none>";\r
218                                 switch (history.getRouteId()) {\r
219                                 case 1:\r
220                                         route = "\8b\9e\95l\93\8c\96k\90ü";\r
221                                         break;\r
222                                 case 2:\r
223                                         route = "\93\8c\8aC\93¹\90ü";\r
224                                         break;\r
225                                 case 3:\r
226                                         route = "\8b\9e\8b}\90ü";\r
227                                         break;\r
228                                 }\r
229                                 Debug.d(this, route + " " + text + " " + val);\r
230                                 dataset.setValue(val, route, text);\r
231                         }\r
232 \r
233                         AFreeChart chart = ChartFactory.createLineChart("\82Â\82Ô\82â\82«\97\9a\97ð", "\8e\9e\8d\8f",\r
234                                         "\82Â\82Ô\82â\82«\90\94(\89ñ/\8e\9e)", dataset, PlotOrientation.VERTICAL, true,\r
235                                         false, false);\r
236                         historyView.setChart(chart);\r
237                         \r
238                         String text = DateUtil.formattedDate(ymd, from, to);\r
239                         textView1.setText(text);\r
240                         \r
241                 } catch (Exception e) {\r
242                         // TODO\r
243                         Debug.d(this, null, e);\r
244                 }\r
245         }\r
246 \r
247         public static void init(Context context) {\r
248                 EditPrefUtil pref = new EditPrefUtil(context);\r
249 \r
250                 pref.remove(PREF_HIS_YEAR);\r
251                 pref.remove(PREF_HIS_MONTH);\r
252                 pref.remove(PREF_HIS_DAY);\r
253                 pref.remove(PREF_HIS_YMD_POS);\r
254 \r
255                 pref.remove(PREF_HIS_ST_HOUR);\r
256                 pref.remove(PREF_HIS_ST_MINUTE);\r
257                 pref.remove(PREF_HIS_EN_HOUR);\r
258                 pref.remove(PREF_HIS_EN_MINUTE);\r
259 \r
260                 pref.update();\r
261         }\r
262         \r
263         public void magnification(float dw){\r
264                 // TODO \8cv\8eZ\95û\96@\r
265                 int x = scrollView.getScrollX();\r
266                 scrollView.scrollTo((int)(x * (dw / 2)), 0);\r
267         }\r
268 }\r