OSDN Git Service

履歴拡大α版完成 work
authorYuji Konishi <yuji.k64613@gmail.com>
Sat, 16 Jul 2011 03:53:29 +0000 (12:53 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Sat, 16 Jul 2011 03:53:29 +0000 (12:53 +0900)
workspace/TrainDelayed/bin/TrainDelayed.apk
workspace/TrainDelayed/bin/classes.dex
workspace/TrainDelayed/bin/resources.ap_
workspace/TrainDelayed/gen/com/td/R.java
workspace/TrainDelayed/res/layout/history.xml
workspace/TrainDelayed/res/layout/history_conf.xml
workspace/TrainDelayed/src/com/td/HistoryActivity.java
workspace/TrainDelayed/src/com/td/HistoryConfActivity.java
workspace/TrainDelayed/src/com/td/HistoryView.java
workspace/TrainDelayed/src/com/td/MonitorTimeActivity.java

index 64b64f6..a02237c 100644 (file)
Binary files a/workspace/TrainDelayed/bin/TrainDelayed.apk and b/workspace/TrainDelayed/bin/TrainDelayed.apk differ
index 2cfa391..d878990 100644 (file)
Binary files a/workspace/TrainDelayed/bin/classes.dex and b/workspace/TrainDelayed/bin/classes.dex differ
index 57f5d7c..16a40de 100644 (file)
Binary files a/workspace/TrainDelayed/bin/resources.ap_ and b/workspace/TrainDelayed/bin/resources.ap_ differ
index 7a99fb7..88d1eb2 100644 (file)
@@ -16,68 +16,67 @@ public final class R {
         public static final int on=0x7f020002;\r
     }\r
     public static final class id {\r
-        public static final int LinearLayout01=0x7f05000e;\r
-        public static final int LinearLayout02=0x7f050012;\r
-        public static final int LinearLayout03=0x7f050014;\r
-        public static final int LinearLayout04=0x7f050016;\r
-        public static final int LinearLayout05=0x7f050018;\r
-        public static final int LinearLayout06=0x7f05001a;\r
-        public static final int LinearLayout07=0x7f05001c;\r
-        public static final int LinearLayout09=0x7f05001e;\r
-        public static final int LinearLayout64=0x7f05002b;\r
-        public static final int LinearLayout74=0x7f05000b;\r
-        public static final int button01=0x7f050011;\r
-        public static final int button02=0x7f050013;\r
-        public static final int button03=0x7f050015;\r
-        public static final int button04=0x7f050017;\r
-        public static final int button05=0x7f050019;\r
-        public static final int button06=0x7f05001b;\r
-        public static final int button07=0x7f05001d;\r
-        public static final int button09=0x7f05001f;\r
+        public static final int LinearLayout01=0x7f05000d;\r
+        public static final int LinearLayout02=0x7f050011;\r
+        public static final int LinearLayout03=0x7f050013;\r
+        public static final int LinearLayout04=0x7f050015;\r
+        public static final int LinearLayout05=0x7f050017;\r
+        public static final int LinearLayout06=0x7f050019;\r
+        public static final int LinearLayout07=0x7f05001b;\r
+        public static final int LinearLayout09=0x7f05001d;\r
+        public static final int LinearLayout64=0x7f05002a;\r
+        public static final int LinearLayout74=0x7f05000a;\r
+        public static final int button01=0x7f050010;\r
+        public static final int button02=0x7f050012;\r
+        public static final int button03=0x7f050014;\r
+        public static final int button04=0x7f050016;\r
+        public static final int button05=0x7f050018;\r
+        public static final int button06=0x7f05001a;\r
+        public static final int button07=0x7f05001c;\r
+        public static final int button09=0x7f05001e;\r
         public static final int button11=0x7f050005;\r
         public static final int button12=0x7f050006;\r
-        public static final int button51=0x7f05003c;\r
-        public static final int button61=0x7f05002c;\r
-        public static final int button62=0x7f05002d;\r
-        public static final int button63=0x7f05002e;\r
-        public static final int button64=0x7f05002f;\r
-        public static final int button65=0x7f050030;\r
-        public static final int button66=0x7f050031;\r
-        public static final int button71=0x7f05000c;\r
-        public static final int button72=0x7f05000d;\r
-        public static final int button81=0x7f050035;\r
-        public static final int button82=0x7f050036;\r
-        public static final int button83=0x7f050037;\r
-        public static final int button84=0x7f050038;\r
-        public static final int button85=0x7f050039;\r
-        public static final int button86=0x7f05003a;\r
+        public static final int button51=0x7f05003b;\r
+        public static final int button61=0x7f05002b;\r
+        public static final int button62=0x7f05002c;\r
+        public static final int button63=0x7f05002d;\r
+        public static final int button64=0x7f05002e;\r
+        public static final int button65=0x7f05002f;\r
+        public static final int button66=0x7f050030;\r
+        public static final int button71=0x7f05000b;\r
+        public static final int button72=0x7f05000c;\r
+        public static final int button81=0x7f050034;\r
+        public static final int button82=0x7f050035;\r
+        public static final int button83=0x7f050036;\r
+        public static final int button84=0x7f050037;\r
+        public static final int button85=0x7f050038;\r
+        public static final int button86=0x7f050039;\r
         public static final int checkBox=0x7f050000;\r
-        public static final int checkBox61=0x7f050022;\r
-        public static final int checkBox62=0x7f050023;\r
-        public static final int checkBox63=0x7f050024;\r
-        public static final int checkBox64=0x7f050025;\r
-        public static final int checkBox65=0x7f050026;\r
-        public static final int checkBox66=0x7f050027;\r
-        public static final int checkBox67=0x7f050028;\r
-        public static final int editText81=0x7f050034;\r
-        public static final int imageView1=0x7f05003d;\r
-        public static final int listView61=0x7f050020;\r
-        public static final int listView81=0x7f050033;\r
-        public static final int menu51=0x7f05003b;\r
-        public static final int scrollView01=0x7f050010;\r
+        public static final int checkBox61=0x7f050021;\r
+        public static final int checkBox62=0x7f050022;\r
+        public static final int checkBox63=0x7f050023;\r
+        public static final int checkBox64=0x7f050024;\r
+        public static final int checkBox65=0x7f050025;\r
+        public static final int checkBox66=0x7f050026;\r
+        public static final int checkBox67=0x7f050027;\r
+        public static final int editText81=0x7f050033;\r
+        public static final int historyView11=0x7f050004;\r
+        public static final int imageView1=0x7f05003c;\r
+        public static final int listView61=0x7f05001f;\r
+        public static final int listView81=0x7f050032;\r
+        public static final int menu51=0x7f05003a;\r
+        public static final int scrollView01=0x7f05000f;\r
         public static final int scrollView11=0x7f050003;\r
-        public static final int scrollView61=0x7f050021;\r
-        public static final int spcv=0x7f050004;\r
+        public static final int scrollView61=0x7f050020;\r
         public static final int spinner71=0x7f050007;\r
-        public static final int spinner72=0x7f050008;\r
         public static final int text2=0x7f050001;\r
-        public static final int textView01=0x7f05000f;\r
-        public static final int textView1=0x7f050032;\r
+        public static final int textView01=0x7f05000e;\r
+        public static final int textView1=0x7f050031;\r
         public static final int textView11=0x7f050002;\r
-        public static final int timePicker61=0x7f050029;\r
-        public static final int timePicker62=0x7f05002a;\r
-        public static final int timePicker71=0x7f050009;\r
-        public static final int timePicker72=0x7f05000a;\r
+        public static final int timePicker61=0x7f050028;\r
+        public static final int timePicker62=0x7f050029;\r
+        public static final int timePicker71=0x7f050008;\r
+        public static final int timePicker72=0x7f050009;\r
     }\r
     public static final class layout {\r
         public static final int check_list_item_1=0x7f030000;\r
index ea97e3d..abac7ae 100644 (file)
@@ -7,7 +7,7 @@
 <TextView android:text="20xx/00/00 00:00 - 00:00" android:id="@+id/textView11" android:background="#999999" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>
 <HorizontalScrollView android:id="@+id/scrollView11" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="10">
     <com.td.HistoryView
-              android:id="@+id/spcv"
+              android:id="@+id/historyView11"
               android:layout_margin="0dip"
               android:layout_weight="1"
               android:layout_width="fill_parent"
index 50ee84c..02baf23 100644 (file)
@@ -4,8 +4,6 @@
 <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">\r
        <TextView android:text="日付" android:background="#cccccc" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
     <Spinner android:layout_height="wrap_content" android:id="@+id/spinner71" android:layout_width="fill_parent"></Spinner>\r
-       <TextView android:text="間隔" android:background="#cccccc" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
-    <Spinner android:layout_height="wrap_content" android:id="@+id/spinner72" android:layout_width="fill_parent"></Spinner>\r
        <TextView android:text="開始時刻" android:background="#cccccc" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
        <TimePicker android:layout_width="wrap_content" android:id="@+id/timePicker71" android:layout_height="fill_parent"></TimePicker>\r
        <TextView android:text="終了時刻" android:background="#cccccc" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>\r
index 9870063..7d09a8a 100644 (file)
@@ -37,21 +37,17 @@ public class HistoryActivity extends BaseActivity {
        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 String PREF_HIS_UNIT = "HIS_UNIT";\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
-    Button bb;\r
-    HistoryView spcv;\r
+    private HistoryView historyView;\r
     \r
        private int prefYear;\r
        private int prefMonth;\r
        private int prefDay;\r
        private int prefYmdPos;\r
-       private int prefUnit;\r
 \r
        private int prefStHour;\r
        private int prefStMinute;\r
@@ -64,7 +60,7 @@ public class HistoryActivity extends BaseActivity {
        public void onCreate(Bundle savedInstanceState) {\r
                super.onCreate(savedInstanceState);\r
                setContentView(R.layout.history);\r
-\r
+               \r
                try {\r
                        Button button1 = (Button) findViewById(R.id.button11);\r
                        button1.setOnClickListener(new OnClickListener() {\r
@@ -84,8 +80,8 @@ public class HistoryActivity extends BaseActivity {
 \r
                        textView1 = (TextView) findViewById(R.id.textView11);\r
                        scrollView = (HorizontalScrollView) findViewById(R.id.scrollView11);\r
-                       bb = button1;\r
-                       spcv = (HistoryView) findViewById(R.id.spcv);\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
@@ -134,25 +130,19 @@ public class HistoryActivity extends BaseActivity {
        }\r
 \r
 \r
+       public static int W = 0;\r
        @Override\r
        public void onWindowFocusChanged(boolean hasFocus) {\r
                int width = scrollView.getWidth();\r
-               int height = scrollView.getHeight();\r
+               W = width;              \r
                \r
-               spcv.setMinimumWidth(width);\r
-               spcv.setMinimumWidth(height);\r
-\r
-               width = spcv.getWidth();\r
-               height = spcv.getHeight();\r
-               \r
-               // TODO Auto-generated method stub\r
                super.onWindowFocusChanged(hasFocus);\r
        }\r
        \r
        @Override\r
     public void onConfigurationChanged(Configuration newConfig ) {\r
                int width = scrollView.getWidth();\r
-               int height = scrollView.getHeight();\r
+               W = width;              \r
                \r
         super.onConfigurationChanged(newConfig);\r
     }\r
@@ -192,8 +182,6 @@ public class HistoryActivity extends BaseActivity {
                        cal.add(Calendar.DATE, -(M - (prefYmdPos + 1)));\r
                        currentDate = cal.getTime();\r
 \r
-                       prefUnit = pref.getInt(PREF_HIS_UNIT, 0);\r
-\r
                        pref.update();\r
                        \r
                        \r
@@ -245,9 +233,7 @@ public class HistoryActivity extends BaseActivity {
                        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
+                       historyView.setChart(chart);\r
                        \r
                        String text = DateUtil.formattedDate(ymd, from, to);\r
                        textView1.setText(text);\r
@@ -271,9 +257,12 @@ public class HistoryActivity extends BaseActivity {
                pref.remove(PREF_HIS_EN_HOUR);\r
                pref.remove(PREF_HIS_EN_MINUTE);\r
 \r
-               pref.remove(PREF_HIS_UNIT);\r
-\r
                pref.update();\r
        }\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
index f16c820..ed33bb9 100644 (file)
@@ -34,7 +34,6 @@ public class HistoryConfActivity extends Activity {
         int prefEnHour = pref.getInt(HistoryActivity.PREF_HIS_EN_HOUR);\r
         int prefEnMinute = pref.getInt(HistoryActivity.PREF_HIS_EN_MINUTE);\r
         int prefYmdPos = pref.getInt(HistoryActivity.PREF_HIS_YMD_POS);\r
-        int prefUnit = pref.getInt(HistoryActivity.PREF_HIS_UNIT);\r
 \r
         Calendar cal;\r
         Date date;\r
@@ -84,26 +83,6 @@ public class HistoryConfActivity extends Activity {
                        }});\r
                timePicker2.setCurrentHour(prefEnHour);\r
                timePicker2.setCurrentMinute(prefEnMinute);\r
-               \r
-               \r
-               Spinner spinner2 = (Spinner) findViewById(R.id.spinner72);\r
-               spinner2.setOnItemSelectedListener(new OnItemSelectedListener(){\r
-                       public void onItemSelected(AdapterView<?> parent, View view,\r
-                                       int position, long id) {\r
-                               pref.put(HistoryActivity.PREF_HIS_UNIT, String.valueOf(position));\r
-                       }\r
-                       \r
-                       public void onNothingSelected(AdapterView<?> view) {\r
-                               ;\r
-                       }\r
-               \r
-               });\r
-        String[] unit = { "10\95ª", "30\95ª", "60\95ª" };\r
-               ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(\r
-                               this, android.R.layout.simple_spinner_item, unit);\r
-               adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);\r
-               spinner2.setAdapter(adapter2);\r
-               spinner2.setSelection(prefUnit);\r
 \r
                Button button1 = (Button) this.findViewById(R.id.button71);\r
                button1.setOnClickListener(new OnClickListener() {\r
index 14ca31e..7477ea3 100644 (file)
@@ -6,16 +6,25 @@ import org.afree.graphics.geom.RectShape;
 import android.content.Context;\r
 import android.graphics.Canvas;\r
 import android.util.AttributeSet;\r
+import android.view.MotionEvent;\r
 import android.view.View;\r
-import android.widget.HorizontalScrollView;\r
 \r
 public class HistoryView extends View {\r
     private AFreeChart chart;\r
-    \r
+       private int tx = -1;\r
+       private int ty = -1;\r
+       private int rr = -1;\r
+       private static float dw = 1;\r
+       private HistoryActivity activity;\r
+       \r
     public HistoryView(Context context, AttributeSet attrs) {\r
         super(context, attrs);\r
     }\r
 \r
+    public void setHistoryActivity(HistoryActivity activity){\r
+       this.activity = activity;\r
+    }\r
+    \r
     @Override\r
     protected void onDraw(Canvas canvas) {\r
         super.onDraw(canvas);\r
@@ -28,8 +37,9 @@ public class HistoryView extends View {
 \r
     @Override\r
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {\r
-       setMeasuredDimension(measureWidth(widthMeasureSpec),\r
-                               measureHeight(heightMeasureSpec));\r
+        int width = (int)(HistoryActivity.W * dw);//measureWidth(widthMeasureSpec);\r
+               int height = measureHeight(heightMeasureSpec);\r
+       setMeasuredDimension(width, height);\r
 //     setMeasuredDimension(1000, 300);\r
     }\r
 \r
@@ -55,4 +65,132 @@ public class HistoryView extends View {
        public void setChart(AFreeChart chart) {\r
         this.chart = chart;\r
     }\r
+       \r
+       @Override\r
+       public boolean onTouchEvent(MotionEvent event) {\r
+               if (chart == null){\r
+                       return true;\r
+               }\r
+               int type = event.getAction();\r
+               int count = event.getPointerCount();\r
+               \r
+               switch (type){\r
+               case MotionEvent.ACTION_DOWN:\r
+                       tx = -1;\r
+                       ty = -1;\r
+                       rr = -1;\r
+                       break;\r
+               case MotionEvent.ACTION_MOVE:\r
+                       int history = event.getHistorySize() / count;\r
+                       \r
+                       for (int i = 0; i < history; i++){\r
+                               int index1 = event.findPointerIndex(0);\r
+                               int index2 = event.findPointerIndex(1);\r
+\r
+                               if (index1 >= 0 && index2 >= 0){\r
+                                       int ux1 = (int) event.getHistoricalX(index1, i);\r
+                                       int uy1 = (int) event.getHistoricalY(index1, i);\r
+                                       int ux2 = (int) event.getHistoricalX(index2, i);\r
+                                       int uy2 = (int) event.getHistoricalY(index2, i);\r
+                                       int ss = (ux1 - ux2) * (ux1 - ux2) + (uy1 - uy2) * (uy1 - uy2);\r
+                                       if (rr >= 0){\r
+                                               float drr = rotateR(rr, ss);\r
+                                               if (drr != 0){\r
+                                                       magnification(drr);                                             \r
+                                               }\r
+                                       }\r
+                                       rr = ss;                                        \r
+                               }\r
+                               else if (index1 >= 0 || index2 >= 0){\r
+                                       int index;\r
+                                       if (index1 >= 0){\r
+                                               index = index1;\r
+                                       }\r
+                                       else {\r
+                                               index = index2;\r
+                                       }\r
+                                       \r
+                                       int ux = (int) event.getHistoricalX(index, i);\r
+                                       int uy = (int) event.getHistoricalY(index, i);\r
+//                                     if (tx >= 0) {\r
+//                                             float rx = rotateXY(tx, ux);\r
+//                                             float ry = rotateXY(ty, uy);\r
+//                                             if (rx != 0 || ry != 0) {\r
+//                                                     drawer.rotate(rx, ry, 0);\r
+//                                             }\r
+//                                     }\r
+                                       tx = ux;\r
+                                       ty = uy;\r
+                                       rr = -1;\r
+                               }\r
+                       }\r
+                       int index1 = event.findPointerIndex(0);\r
+                       int index2 = event.findPointerIndex(1);\r
+                       if (index1 >= 0 && index2 >= 0){\r
+                               int ux1 = (int) event.getX(index1);\r
+                               int uy1 = (int) event.getY(index1);\r
+                               int ux2 = (int) event.getX(index2);\r
+                               int uy2 = (int) event.getY(index2);\r
+                               int ss = (ux1 - ux2) * (ux1 - ux2) + (uy1 - uy2) * (uy1 - uy2);\r
+                               if (rr >= 0){\r
+                                       float drr = rotateR(rr, ss);\r
+                                       if (drr != 0){\r
+                                               magnification(drr);                                             \r
+                                       }\r
+                               }\r
+                               rr = ss;\r
+                       }\r
+                       else if (index1 >= 0 || index2 >= 0){\r
+                               int index;\r
+                               if (index1 >= 0){\r
+                                       index = index1;\r
+                               }\r
+                               else {\r
+                                       index = index2;\r
+                               }\r
+                               \r
+                               int ux = (int) event.getX(index);\r
+                               int uy = (int) event.getY(index);\r
+//                             if (tx >= 0) {\r
+//                                     float rx = rotateXY(tx, ux);\r
+//                                     float ry = rotateXY(ty, uy);\r
+//                                     if (rx != 0 || ry != 0) {\r
+//                                             drawer.rotate(rx, ry, 0);\r
+//                                     }\r
+//                             }\r
+                               tx = ux;\r
+                               ty = uy;\r
+                               rr = -1;\r
+                       }\r
+                       break;\r
+               }\r
+               \r
+               return true;\r
+       }\r
+\r
+       private void magnification(float drr) {\r
+               dw += drr;\r
+               if (dw < 1){\r
+                       dw = 1;\r
+               }\r
+               else if (dw > 5){\r
+                       dw = 5;\r
+               }\r
+        int width = (int)(HistoryActivity.W * dw);\r
+       this.setMinimumWidth(width);\r
+       activity.magnification(dw);\r
+               this.requestLayout();\r
+       }\r
+\r
+       private float rotateR(int src, int dst){\r
+               if (src > dst){\r
+                       return -0.5f;\r
+               }\r
+               else if (src < dst){\r
+                       return 0.5f;                    \r
+               }\r
+               else {\r
+                       return 0.0f;\r
+               }\r
+       }\r
 }\r
index 6c66a94..d4ae54d 100644 (file)
@@ -233,6 +233,7 @@ public class MonitorTimeActivity extends Activity {
                        cancelButton.setVisibility(View.GONE);\r
                        closeButton.setVisibility(View.VISIBLE);\r
                } else if (view == listView) {\r
+                       scrollView.scrollTo(0, 0);\r
                        scrollView.setVisibility(View.VISIBLE);\r
                        setItemsEnabled(false);\r
                        addButton.setEnabled(false);\r
@@ -242,6 +243,7 @@ public class MonitorTimeActivity extends Activity {
                        closeButton.setVisibility(View.GONE);\r
                } else if (view == addButton) {\r
                        listView.setEnabled(false);\r
+                       scrollView.scrollTo(0, 0);\r
                        scrollView.setVisibility(View.VISIBLE);\r
                        setItemsEnabled(true);\r
                        addButton.setVisibility(View.GONE);\r