X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=workspace%2FTrainDelayed%2Fsrc%2Fcom%2Ftd%2FHistoryActivity.java;h=7d09a8a631dc41ababc57aa9f588d36bc1c7be8d;hb=4003923423d0a24287fb7368c77bf3ab7478bc6c;hp=7555ee949ff8752c5862bb229780d122f48817dc;hpb=d8f91afa21035a1474a65ac3ba2d921cb4bc263d;p=train-delayed%2Fsource.git diff --git a/workspace/TrainDelayed/src/com/td/HistoryActivity.java b/workspace/TrainDelayed/src/com/td/HistoryActivity.java index 7555ee9..7d09a8a 100644 --- a/workspace/TrainDelayed/src/com/td/HistoryActivity.java +++ b/workspace/TrainDelayed/src/com/td/HistoryActivity.java @@ -1,5 +1,7 @@ package com.td; +import java.util.Calendar; +import java.util.Date; import java.util.List; import org.afree.chart.AFreeChart; @@ -7,52 +9,260 @@ import org.afree.chart.ChartFactory; import org.afree.chart.plot.PlotOrientation; import org.afree.data.category.DefaultCategoryDataset; +import android.content.Context; +import android.content.Intent; +import android.content.res.Configuration; import android.os.Bundle; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.HorizontalScrollView; +import android.widget.TextView; import com.td.db.History; import com.td.db.HistoryDao; import com.td.utility.BaseActivity; +import com.td.utility.DateUtil; import com.td.utility.Debug; +import com.td.utility.EditPrefUtil; public class HistoryActivity extends BaseActivity { + public static final String PREF_HIS_YEAR = "HIS_YEAR"; + public static final String PREF_HIS_MONTH = "HIS_MONTH"; + public static final String PREF_HIS_DAY = "HIS_DAY"; + public static final String PREF_HIS_YMD_POS = "HIS_YMD_POS"; + + public static final String PREF_HIS_ST_HOUR = "HIS_ST_HOUR"; + public static final String PREF_HIS_ST_MINUTE = "HIS_ST_MINUTE"; + public static final String PREF_HIS_EN_HOUR = "HIS_EN_HOUR"; + public static final String PREF_HIS_EN_MINUTE = "HIS_EN_MINUTE"; + + public static final int[] unit = { 10, 30, 60 }; + + private TextView textView1; + private EditPrefUtil pref = new EditPrefUtil(this); + private HorizontalScrollView scrollView; + private HistoryView historyView; + + private int prefYear; + private int prefMonth; + private int prefDay; + private int prefYmdPos; + + private int prefStHour; + private int prefStMinute; + private int prefEnHour; + private int prefEnMinute; + + private Date currentDate; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.history); + + try { + Button button1 = (Button) findViewById(R.id.button11); + button1.setOnClickListener(new OnClickListener() { + public void onClick(View view) { + Intent intent = new Intent(HistoryActivity.this, + (Class) HistoryConfActivity.class); + startActivityForResult(intent, -1); + } + }); + + Button button2 = (Button) findViewById(R.id.button12); + button2.setOnClickListener(new OnClickListener() { + public void onClick(View view) { + HistoryActivity.this.finish(); + } + }); + + textView1 = (TextView) findViewById(R.id.textView11); + scrollView = (HorizontalScrollView) findViewById(R.id.scrollView11); + historyView = (HistoryView) findViewById(R.id.historyView11); + historyView.setHistoryActivity(this); +// HistoryDao dao = HistoryDao.getInstance(); +// // List list = dao.search(this); +// Calendar cal = Calendar.getInstance(); +// Date date = cal.getTime(); +// int ymd = DateUtil.getYmd(date); +// List list = dao.search(this, ymd, DateUtil.HM_MIN, +// DateUtil.HM_MAX); +// +// DefaultCategoryDataset dataset = new DefaultCategoryDataset(); +// for (History history : list) { +// int period = history.getPeriod(); +// double val = 0; +// if (period > 0) { +// // TODO +// // val = history.getNum() * 60 / period; +// val = history.getNum(); +// } +// int hm = history.getHm(); +// String text = (hm / 100) + ":" + (hm % 100); +// String route = ""; +// switch (history.getRouteId()) { +// case 1: +// route = "‹ž•l“Œ–kü"; +// break; +// case 2: +// route = "“ŒŠC“¹ü"; +// break; +// case 3: +// route = "‹ž‹}ü"; +// break; +// } +// Debug.d(this, route + " " + text + " " + val); +// dataset.setValue(val, route, text); +// } +// +// AFreeChart chart = ChartFactory.createLineChart("‚‚Ԃ₫—š—ð", "Žž", +// "‚‚Ԃ₫”(‰ñ/Žž)", dataset, PlotOrientation.VERTICAL, true, +// false, false); +// +// HistoryView spcv = (HistoryView) findViewById(R.id.spcv); +// spcv.setChart(chart); + } catch (Exception e) { + // TODO + Debug.d(this, null, e); + } + } + + + public static int W = 0; + @Override + public void onWindowFocusChanged(boolean hasFocus) { + int width = scrollView.getWidth(); + W = width; + + super.onWindowFocusChanged(hasFocus); + } + + @Override + public void onConfigurationChanged(Configuration newConfig ) { + int width = scrollView.getWidth(); + W = width; + + super.onConfigurationChanged(newConfig); + } + + @Override + protected void onStart() { + super.onStart(); - HistoryDao dao = HistoryDao.getInstance(); - List list = dao.search(this); + try { + Calendar cal = Calendar.getInstance(); + Date date = cal.getTime(); + prefYear = pref.getInt(PREF_HIS_YEAR, date.getYear()); + prefMonth = pref.getInt(PREF_HIS_MONTH, date.getMonth()); + prefDay = pref.getInt(PREF_HIS_DAY, date.getDate()); - DefaultCategoryDataset dataset = new DefaultCategoryDataset(); - for (History history : list) { - int period = history.getPeriod(); - double val = 0; - if (period > 0){ - val = history.getNum() * 10 * 60 / period; + int H = 3; + prefEnHour = pref.getInt(PREF_HIS_EN_HOUR, date.getHours()); + prefEnMinute = pref.getInt(PREF_HIS_EN_MINUTE, date.getMinutes()); + cal = Calendar.getInstance(); + cal.set(Calendar.HOUR_OF_DAY, prefEnHour); + cal.set(Calendar.MINUTE, prefEnMinute); + date = cal.getTime(); + cal.add(Calendar.HOUR, -H); + Date startDate = cal.getTime(); + int hour = 0; + int minute = 0; + if (date.getDate() == startDate.getDate()) { + hour = startDate.getHours(); + minute = startDate.getMinutes(); } - int hm = history.getHm(); - String text = (hm / 100) + ":" + (hm % 100); - String route = ""; - switch (history.getRouteId()){ - case 1: - route = "‹ž•l“Œ–kü"; - break; - case 2: - route = "“ŒŠC“¹ü"; - break; - case 3: - route = "‹ž‹}ü"; - break; + prefStHour = pref.getInt(PREF_HIS_ST_HOUR, hour); + prefStMinute = pref.getInt(PREF_HIS_ST_MINUTE, minute); + + int M = 7; + prefYmdPos = pref.getInt(PREF_HIS_YMD_POS, M - 1); + + cal.add(Calendar.DATE, -(M - (prefYmdPos + 1))); + currentDate = cal.getTime(); + + pref.update(); + + + HistoryDao dao = HistoryDao.getInstance(); +// // List list = dao.search(this); +// Calendar cal = Calendar.getInstance(); +// Date date = cal.getTime(); +// int ymd = DateUtil.getYmd(date); + // TODO +// int ymd = (1900 + currentDate.getYear()) * 10000 +// + (currentDate.getMonth() + 1) * 100 +// + currentDate.getDate(); +// int from = prefStHour * 100 + prefStMinute; +// int to = prefEnHour * 100 + prefEnMinute; + int ymd = DateUtil.getYmd(currentDate.getYear(), currentDate.getMonth(), currentDate.getDate()); + int from = DateUtil.getHm(prefStHour, prefStMinute); + int to = DateUtil.getHm(prefEnHour, prefEnMinute); + List list = dao.search(this, ymd, from, to); + + DefaultCategoryDataset dataset = new DefaultCategoryDataset(); + for (History history : list) { + int period = history.getPeriod(); + double val = 0; + if (period > 0) { + // TODO + // val = history.getNum() * 60 / period; + val = history.getNum(); + } + int hm = history.getHm(); + // TODO + //String text = (hm / 100) + ":" + (hm % 100); + String text = DateUtil.formattedHm(hm); + String route = ""; + switch (history.getRouteId()) { + case 1: + route = "‹ž•l“Œ–kü"; + break; + case 2: + route = "“ŒŠC“¹ü"; + break; + case 3: + route = "‹ž‹}ü"; + break; + } + Debug.d(this, route + " " + text + " " + val); + dataset.setValue(val, route, text); } - Debug.d(this, route + " " + text + " " + val); - dataset.setValue(val, route, text); + + AFreeChart chart = ChartFactory.createLineChart("‚‚Ԃ₫—š—ð", "Žž", + "‚‚Ԃ₫”(‰ñ/Žž)", dataset, PlotOrientation.VERTICAL, true, + false, false); + historyView.setChart(chart); + + String text = DateUtil.formattedDate(ymd, from, to); + textView1.setText(text); + + } catch (Exception e) { + // TODO + Debug.d(this, null, e); } + } - AFreeChart chart = ChartFactory.createLineChart("‚‚Ԃ₫—š—ð", "Žž", - "‚‚Ԃ₫”(‰ñ/Žž)", dataset, PlotOrientation.VERTICAL, true, false, - false); + public static void init(Context context) { + EditPrefUtil pref = new EditPrefUtil(context); - HistoryView spcv = (HistoryView) findViewById(R.id.spcv); - spcv.setChart(chart); + pref.remove(PREF_HIS_YEAR); + pref.remove(PREF_HIS_MONTH); + pref.remove(PREF_HIS_DAY); + pref.remove(PREF_HIS_YMD_POS); + + pref.remove(PREF_HIS_ST_HOUR); + pref.remove(PREF_HIS_ST_MINUTE); + pref.remove(PREF_HIS_EN_HOUR); + pref.remove(PREF_HIS_EN_MINUTE); + + pref.update(); + } + + public void magnification(float dw){ + // TODO ŒvŽZ•û–@ + int x = scrollView.getScrollX(); + scrollView.scrollTo((int)(x * (dw / 2)), 0); } }