3 import java.util.Calendar;
\r
4 import java.util.Date;
\r
5 import java.util.List;
\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
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
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
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
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
40 public static final int[] unit = { 10, 30, 60 };
\r
42 private TextView textView1;
\r
43 private EditPrefUtil pref = new EditPrefUtil(this);
\r
44 private HorizontalScrollView scrollView;
\r
45 private HistoryView historyView;
\r
47 private int prefYear;
\r
48 private int prefMonth;
\r
49 private int prefDay;
\r
50 private int prefYmdPos;
\r
52 private int prefStHour;
\r
53 private int prefStMinute;
\r
54 private int prefEnHour;
\r
55 private int prefEnMinute;
\r
57 private Date currentDate;
\r
60 public void onCreate(Bundle savedInstanceState) {
\r
61 super.onCreate(savedInstanceState);
\r
62 setContentView(R.layout.history);
\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
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
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
93 // DefaultCategoryDataset dataset = new DefaultCategoryDataset();
\r
94 // for (History history : list) {
\r
95 // int period = history.getPeriod();
\r
97 // if (period > 0) {
\r
99 // // val = history.getNum() * 60 / period;
\r
100 // val = history.getNum();
\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
107 // route = "
\8b\9e\95l
\93\8c\96k
\90ü";
\r
110 // route = "
\93\8c\8aC
\93¹
\90ü";
\r
113 // route = "
\8b\9e\8b}
\90ü";
\r
116 // Debug.d(this, route + " " + text + " " + val);
\r
117 // dataset.setValue(val, route, text);
\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
124 // HistoryView spcv = (HistoryView) findViewById(R.id.spcv);
\r
125 // spcv.setChart(chart);
\r
126 } catch (Exception e) {
\r
128 Debug.d(this, null, e);
\r
133 public static int W = 0;
\r
135 public void onWindowFocusChanged(boolean hasFocus) {
\r
136 int width = scrollView.getWidth();
\r
139 super.onWindowFocusChanged(hasFocus);
\r
143 public void onConfigurationChanged(Configuration newConfig ) {
\r
144 int width = scrollView.getWidth();
\r
147 super.onConfigurationChanged(newConfig);
\r
151 protected void onStart() {
\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
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
172 if (date.getDate() == startDate.getDate()) {
\r
173 hour = startDate.getHours();
\r
174 minute = startDate.getMinutes();
\r
176 prefStHour = pref.getInt(PREF_HIS_ST_HOUR, hour);
\r
177 prefStMinute = pref.getInt(PREF_HIS_ST_MINUTE, minute);
\r
180 prefYmdPos = pref.getInt(PREF_HIS_YMD_POS, M - 1);
\r
182 cal.add(Calendar.DATE, -(M - (prefYmdPos + 1)));
\r
183 currentDate = cal.getTime();
\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
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
204 DefaultCategoryDataset dataset = new DefaultCategoryDataset();
\r
205 for (History history : list) {
\r
206 int period = history.getPeriod();
\r
210 // val = history.getNum() * 60 / period;
\r
211 val = history.getNum();
\r
213 int hm = history.getHm();
\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
220 route = "
\8b\9e\95l
\93\8c\96k
\90ü";
\r
223 route = "
\93\8c\8aC
\93¹
\90ü";
\r
226 route = "
\8b\9e\8b}
\90ü";
\r
229 Debug.d(this, route + " " + text + " " + val);
\r
230 dataset.setValue(val, route, text);
\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
236 historyView.setChart(chart);
\r
238 String text = DateUtil.formattedDate(ymd, from, to);
\r
239 textView1.setText(text);
\r
241 } catch (Exception e) {
\r
243 Debug.d(this, null, e);
\r
247 public static void init(Context context) {
\r
248 EditPrefUtil pref = new EditPrefUtil(context);
\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
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
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