OSDN Git Service

履歴拡大α版完成
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / HistoryActivity.java
index 7555ee9..7d09a8a 100644 (file)
@@ -1,5 +1,7 @@
 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
@@ -7,52 +9,260 @@ import org.afree.chart.ChartFactory;
 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