package com.td;\r
\r
+import java.util.Calendar;\r
+import java.util.Date;\r
import java.util.List;\r
\r
import org.afree.chart.AFreeChart;\r
import org.afree.chart.plot.PlotOrientation;\r
import org.afree.data.category.DefaultCategoryDataset;\r
\r
+import android.content.Context;\r
+import android.content.Intent;\r
+import android.content.res.Configuration;\r
import android.os.Bundle;\r
+import android.view.View;\r
+import android.view.View.OnClickListener;\r
+import android.widget.Button;\r
+import android.widget.HorizontalScrollView;\r
+import android.widget.TextView;\r
\r
import com.td.db.History;\r
import com.td.db.HistoryDao;\r
import com.td.utility.BaseActivity;\r
+import com.td.utility.DateUtil;\r
import com.td.utility.Debug;\r
+import com.td.utility.EditPrefUtil;\r
\r
public class HistoryActivity extends BaseActivity {\r
+ public static final String PREF_HIS_YEAR = "HIS_YEAR";\r
+ public static final String PREF_HIS_MONTH = "HIS_MONTH";\r
+ public static final String PREF_HIS_DAY = "HIS_DAY";\r
+ public static final String PREF_HIS_YMD_POS = "HIS_YMD_POS";\r
+\r
+ public static final String PREF_HIS_ST_HOUR = "HIS_ST_HOUR";\r
+ public static final String PREF_HIS_ST_MINUTE = "HIS_ST_MINUTE";\r
+ public static final String PREF_HIS_EN_HOUR = "HIS_EN_HOUR";\r
+ public static final String PREF_HIS_EN_MINUTE = "HIS_EN_MINUTE";\r
+\r
+ public static final int[] unit = { 10, 30, 60 };\r
+\r
+ private TextView textView1;\r
+ private EditPrefUtil pref = new EditPrefUtil(this);\r
+ private HorizontalScrollView scrollView;\r
+ private HistoryView historyView;\r
+ \r
+ private int prefYear;\r
+ private int prefMonth;\r
+ private int prefDay;\r
+ private int prefYmdPos;\r
+\r
+ private int prefStHour;\r
+ private int prefStMinute;\r
+ private int prefEnHour;\r
+ private int prefEnMinute;\r
+\r
+ private Date currentDate;\r
+\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
setContentView(R.layout.history);\r
+ \r
+ try {\r
+ Button button1 = (Button) findViewById(R.id.button11);\r
+ button1.setOnClickListener(new OnClickListener() {\r
+ public void onClick(View view) {\r
+ Intent intent = new Intent(HistoryActivity.this,\r
+ (Class<?>) HistoryConfActivity.class);\r
+ startActivityForResult(intent, -1);\r
+ }\r
+ });\r
+\r
+ Button button2 = (Button) findViewById(R.id.button12);\r
+ button2.setOnClickListener(new OnClickListener() {\r
+ public void onClick(View view) {\r
+ HistoryActivity.this.finish();\r
+ }\r
+ });\r
+\r
+ textView1 = (TextView) findViewById(R.id.textView11);\r
+ scrollView = (HorizontalScrollView) findViewById(R.id.scrollView11);\r
+ historyView = (HistoryView) findViewById(R.id.historyView11);\r
+ historyView.setHistoryActivity(this);\r
+// HistoryDao dao = HistoryDao.getInstance();\r
+// // List<History> list = dao.search(this);\r
+// Calendar cal = Calendar.getInstance();\r
+// Date date = cal.getTime();\r
+// int ymd = DateUtil.getYmd(date);\r
+// List<History> list = dao.search(this, ymd, DateUtil.HM_MIN,\r
+// DateUtil.HM_MAX);\r
+//\r
+// DefaultCategoryDataset dataset = new DefaultCategoryDataset();\r
+// for (History history : list) {\r
+// int period = history.getPeriod();\r
+// double val = 0;\r
+// if (period > 0) {\r
+// // TODO\r
+// // val = history.getNum() * 60 / period;\r
+// val = history.getNum();\r
+// }\r
+// int hm = history.getHm();\r
+// String text = (hm / 100) + ":" + (hm % 100);\r
+// String route = "<none>";\r
+// switch (history.getRouteId()) {\r
+// case 1:\r
+// route = "\8b\9e\95l\93\8c\96k\90ü";\r
+// break;\r
+// case 2:\r
+// route = "\93\8c\8aC\93¹\90ü";\r
+// break;\r
+// case 3:\r
+// route = "\8b\9e\8b}\90ü";\r
+// break;\r
+// }\r
+// Debug.d(this, route + " " + text + " " + val);\r
+// dataset.setValue(val, route, text);\r
+// }\r
+//\r
+// AFreeChart chart = ChartFactory.createLineChart("\82Â\82Ô\82â\82«\97\9a\97ð", "\8e\9e\8d\8f",\r
+// "\82Â\82Ô\82â\82«\90\94(\89ñ/\8e\9e)", dataset, PlotOrientation.VERTICAL, true,\r
+// false, false);\r
+//\r
+// HistoryView spcv = (HistoryView) findViewById(R.id.spcv);\r
+// spcv.setChart(chart);\r
+ } catch (Exception e) {\r
+ // TODO\r
+ Debug.d(this, null, e);\r
+ }\r
+ }\r
+\r
+\r
+ public static int W = 0;\r
+ @Override\r
+ public void onWindowFocusChanged(boolean hasFocus) {\r
+ int width = scrollView.getWidth();\r
+ W = width; \r
+ \r
+ super.onWindowFocusChanged(hasFocus);\r
+ }\r
+ \r
+ @Override\r
+ public void onConfigurationChanged(Configuration newConfig ) {\r
+ int width = scrollView.getWidth();\r
+ W = width; \r
+ \r
+ super.onConfigurationChanged(newConfig);\r
+ }\r
+ \r
+ @Override\r
+ protected void onStart() {\r
+ super.onStart();\r
\r
- HistoryDao dao = HistoryDao.getInstance();\r
- List<History> list = dao.search(this);\r
+ try {\r
+ Calendar cal = Calendar.getInstance();\r
+ Date date = cal.getTime();\r
+ prefYear = pref.getInt(PREF_HIS_YEAR, date.getYear());\r
+ prefMonth = pref.getInt(PREF_HIS_MONTH, date.getMonth());\r
+ prefDay = pref.getInt(PREF_HIS_DAY, date.getDate());\r
\r
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();\r
- for (History history : list) {\r
- int period = history.getPeriod();\r
- double val = 0;\r
- if (period > 0){\r
- val = history.getNum() * 10 * 60 / period;\r
+ int H = 3;\r
+ prefEnHour = pref.getInt(PREF_HIS_EN_HOUR, date.getHours());\r
+ prefEnMinute = pref.getInt(PREF_HIS_EN_MINUTE, date.getMinutes());\r
+ cal = Calendar.getInstance();\r
+ cal.set(Calendar.HOUR_OF_DAY, prefEnHour);\r
+ cal.set(Calendar.MINUTE, prefEnMinute);\r
+ date = cal.getTime();\r
+ cal.add(Calendar.HOUR, -H);\r
+ Date startDate = cal.getTime();\r
+ int hour = 0;\r
+ int minute = 0;\r
+ if (date.getDate() == startDate.getDate()) {\r
+ hour = startDate.getHours();\r
+ minute = startDate.getMinutes();\r
}\r
- int hm = history.getHm();\r
- String text = (hm / 100) + ":" + (hm % 100);\r
- String route = "<none>";\r
- switch (history.getRouteId()){\r
- case 1:\r
- route = "\8b\9e\95l\93\8c\96k\90ü";\r
- break;\r
- case 2:\r
- route = "\93\8c\8aC\93¹\90ü";\r
- break;\r
- case 3:\r
- route = "\8b\9e\8b}\90ü";\r
- break;\r
+ prefStHour = pref.getInt(PREF_HIS_ST_HOUR, hour);\r
+ prefStMinute = pref.getInt(PREF_HIS_ST_MINUTE, minute);\r
+\r
+ int M = 7;\r
+ prefYmdPos = pref.getInt(PREF_HIS_YMD_POS, M - 1);\r
+\r
+ cal.add(Calendar.DATE, -(M - (prefYmdPos + 1)));\r
+ currentDate = cal.getTime();\r
+\r
+ pref.update();\r
+ \r
+ \r
+ HistoryDao dao = HistoryDao.getInstance();\r
+// // List<History> list = dao.search(this);\r
+// Calendar cal = Calendar.getInstance();\r
+// Date date = cal.getTime();\r
+// int ymd = DateUtil.getYmd(date);\r
+ // TODO\r
+// int ymd = (1900 + currentDate.getYear()) * 10000\r
+// + (currentDate.getMonth() + 1) * 100\r
+// + currentDate.getDate();\r
+// int from = prefStHour * 100 + prefStMinute;\r
+// int to = prefEnHour * 100 + prefEnMinute;\r
+ int ymd = DateUtil.getYmd(currentDate.getYear(), currentDate.getMonth(), currentDate.getDate());\r
+ int from = DateUtil.getHm(prefStHour, prefStMinute);\r
+ int to = DateUtil.getHm(prefEnHour, prefEnMinute);\r
+ List<History> list = dao.search(this, ymd, from, to);\r
+\r
+ DefaultCategoryDataset dataset = new DefaultCategoryDataset();\r
+ for (History history : list) {\r
+ int period = history.getPeriod();\r
+ double val = 0;\r
+ if (period > 0) {\r
+ // TODO\r
+ // val = history.getNum() * 60 / period;\r
+ val = history.getNum();\r
+ }\r
+ int hm = history.getHm();\r
+ // TODO\r
+ //String text = (hm / 100) + ":" + (hm % 100);\r
+ String text = DateUtil.formattedHm(hm);\r
+ String route = "<none>";\r
+ switch (history.getRouteId()) {\r
+ case 1:\r
+ route = "\8b\9e\95l\93\8c\96k\90ü";\r
+ break;\r
+ case 2:\r
+ route = "\93\8c\8aC\93¹\90ü";\r
+ break;\r
+ case 3:\r
+ route = "\8b\9e\8b}\90ü";\r
+ break;\r
+ }\r
+ Debug.d(this, route + " " + text + " " + val);\r
+ dataset.setValue(val, route, text);\r
}\r
- Debug.d(this, route + " " + text + " " + val);\r
- dataset.setValue(val, route, text);\r
+\r
+ AFreeChart chart = ChartFactory.createLineChart("\82Â\82Ô\82â\82«\97\9a\97ð", "\8e\9e\8d\8f",\r
+ "\82Â\82Ô\82â\82«\90\94(\89ñ/\8e\9e)", dataset, PlotOrientation.VERTICAL, true,\r
+ false, false);\r
+ historyView.setChart(chart);\r
+ \r
+ String text = DateUtil.formattedDate(ymd, from, to);\r
+ textView1.setText(text);\r
+ \r
+ } catch (Exception e) {\r
+ // TODO\r
+ Debug.d(this, null, e);\r
}\r
+ }\r
\r
- AFreeChart chart = ChartFactory.createLineChart("\82Â\82Ô\82â\82«\97\9a\97ð", "\8e\9e\8d\8f",\r
- "\82Â\82Ô\82â\82«\90\94(\89ñ/\8e\9e)", dataset, PlotOrientation.VERTICAL, true, false,\r
- false);\r
+ public static void init(Context context) {\r
+ EditPrefUtil pref = new EditPrefUtil(context);\r
\r
- HistoryView spcv = (HistoryView) findViewById(R.id.spcv);\r
- spcv.setChart(chart);\r
+ pref.remove(PREF_HIS_YEAR);\r
+ pref.remove(PREF_HIS_MONTH);\r
+ pref.remove(PREF_HIS_DAY);\r
+ pref.remove(PREF_HIS_YMD_POS);\r
+\r
+ pref.remove(PREF_HIS_ST_HOUR);\r
+ pref.remove(PREF_HIS_ST_MINUTE);\r
+ pref.remove(PREF_HIS_EN_HOUR);\r
+ pref.remove(PREF_HIS_EN_MINUTE);\r
+\r
+ pref.update();\r
+ }\r
+ \r
+ public void magnification(float dw){\r
+ // TODO \8cv\8eZ\95û\96@\r
+ int x = scrollView.getScrollX();\r
+ scrollView.scrollTo((int)(x * (dw / 2)), 0);\r
}\r
}\r