OSDN Git Service

6c66a94c592f70105ad62bed2f540aa0b40a67c1
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / MonitorTimeActivity.java
1 package com.td;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 \r
6 import android.app.Activity;\r
7 import android.os.Bundle;\r
8 import android.view.View;\r
9 import android.view.View.OnClickListener;\r
10 import android.widget.AdapterView;\r
11 import android.widget.AdapterView.OnItemClickListener;\r
12 import android.widget.AdapterView.OnItemSelectedListener;\r
13 import android.widget.ArrayAdapter;\r
14 import android.widget.Button;\r
15 import android.widget.CheckBox;\r
16 import android.widget.ListView;\r
17 import android.widget.ScrollView;\r
18 import android.widget.TimePicker;\r
19 \r
20 import com.td.db.Monitor;\r
21 import com.td.db.MonitorDao;\r
22 import com.td.utility.DateUtil;\r
23 \r
24 public class MonitorTimeActivity extends Activity {\r
25         private CheckBox[] checkBoxes = new CheckBox[DateUtil.WEEK];\r
26 \r
27         private MonitorDao dao;\r
28         private List<Monitor> list = new ArrayList<Monitor>();\r
29         private Monitor curMonitor = null;\r
30 \r
31         private View mode = null;\r
32         private ListView listView;\r
33         private ScrollView scrollView;\r
34         private TimePicker timePicker1;\r
35         private TimePicker timePicker2;\r
36         private Button addButton;\r
37         private Button updateButton;\r
38         private Button deleteButton;\r
39         private Button confButton;\r
40         private Button cancelButton;\r
41         private Button closeButton;\r
42 \r
43         @Override\r
44         public void onCreate(Bundle savedInstanceState) {\r
45                 super.onCreate(savedInstanceState);\r
46                 setContentView(R.layout.monitor_time);\r
47 \r
48                 listView = (ListView) findViewById(R.id.listView61);\r
49                 scrollView = (ScrollView) findViewById(R.id.scrollView61);\r
50                 timePicker1 = (TimePicker) findViewById(R.id.timePicker61);\r
51                 timePicker2 = (TimePicker) findViewById(R.id.timePicker62);\r
52                 addButton = (Button) findViewById(R.id.button61);\r
53                 updateButton = (Button) findViewById(R.id.button62);\r
54                 deleteButton = (Button) findViewById(R.id.button63);\r
55                 confButton = (Button) findViewById(R.id.button64);\r
56                 cancelButton = (Button) findViewById(R.id.button65);\r
57                 closeButton = (Button) findViewById(R.id.button66);\r
58                 CheckBox checkBox;\r
59                 for (int i = 0; i < DateUtil.WEEK; i++) {\r
60                         switch (i) {\r
61                         case 0:\r
62                                 checkBox = (CheckBox) findViewById(R.id.checkBox61);\r
63                                 break;\r
64                         case 1:\r
65                                 checkBox = (CheckBox) findViewById(R.id.checkBox62);\r
66                                 break;\r
67                         case 2:\r
68                                 checkBox = (CheckBox) findViewById(R.id.checkBox63);\r
69                                 break;\r
70                         case 3:\r
71                                 checkBox = (CheckBox) findViewById(R.id.checkBox64);\r
72                                 break;\r
73                         case 4:\r
74                                 checkBox = (CheckBox) findViewById(R.id.checkBox65);\r
75                                 break;\r
76                         case 5:\r
77                                 checkBox = (CheckBox) findViewById(R.id.checkBox66);\r
78                                 break;\r
79                         case 6:\r
80                                 checkBox = (CheckBox) findViewById(R.id.checkBox67);\r
81                                 break;\r
82                         default:\r
83                                 checkBox = null;\r
84                                 break;\r
85                         }\r
86                         checkBoxes[i] = checkBox;\r
87                 }\r
88 \r
89                 dao = MonitorDao.getInstance();\r
90                 updateList();\r
91 \r
92                 listView.setOnItemClickListener(new OnItemClickListener() {\r
93                         public void onItemClick(AdapterView<?> parent, View view,\r
94                                         int position, long id) {\r
95                                 selectedItemView(parent, view, position, id);\r
96                         }\r
97                 });\r
98                 listView.setOnItemSelectedListener(new OnItemSelectedListener() {\r
99                         public void onItemSelected(AdapterView<?> parent, View view,\r
100                                         int position, long id) {\r
101                                 selectedItemView(parent, view, position, id);\r
102                         }\r
103 \r
104                         public void onNothingSelected(AdapterView<?> arg0) {\r
105                                 ;\r
106                         }\r
107                 });\r
108 \r
109                 addButton.setOnClickListener(new OnClickListener() {\r
110                         public void onClick(View view) {\r
111                                 clickAddButton();\r
112                         }\r
113                 });\r
114 \r
115                 updateButton.setOnClickListener(new OnClickListener() {\r
116                         public void onClick(View view) {\r
117                                 clickUpdateButton();\r
118                         }\r
119                 });\r
120 \r
121                 deleteButton.setOnClickListener(new OnClickListener() {\r
122                         public void onClick(View view) {\r
123                                 clickDeleteButton();\r
124                         }\r
125                 });\r
126 \r
127                 cancelButton.setOnClickListener(new OnClickListener() {\r
128                         public void onClick(View view) {\r
129                                 clickCancelButton();\r
130                         }\r
131                 });\r
132 \r
133                 confButton.setOnClickListener(new OnClickListener() {\r
134                         public void onClick(View view) {\r
135                                 clickConfButton();\r
136                         }\r
137                 });\r
138 \r
139                 closeButton.setOnClickListener(new OnClickListener() {\r
140                         public void onClick(View view) {\r
141                                 clickCloseButton();\r
142                         }\r
143                 });\r
144         }\r
145 \r
146         private void updateList() {\r
147                 list = dao.search();\r
148                 ArrayAdapter<Monitor> adapter = new ArrayAdapter<Monitor>(this,\r
149                                 android.R.layout.simple_list_item_1, list);\r
150                 listView.setAdapter(adapter);\r
151         }\r
152 \r
153         @Override\r
154         protected void onStart() {\r
155                 super.onStart();\r
156 \r
157                 setStatus(null);\r
158         }\r
159 \r
160         private void selectedItemView(AdapterView<?> parent, View view,\r
161                         int position, long id) {\r
162                 curMonitor = list.get(position);\r
163                 // String text = curMonitor.getText();\r
164                 // editText.setText(text);\r
165                 setItems(curMonitor);\r
166                 \r
167                 setStatus(listView);\r
168         }\r
169 \r
170         private void clickAddButton() {\r
171                 // editText.setText("");\r
172                 Monitor monitor = Monitor.getMonitor();\r
173                 setItems(monitor);\r
174 \r
175                 curMonitor = null;\r
176                 setStatus(addButton);\r
177                 // changedEditText();\r
178         }\r
179 \r
180         private void clickUpdateButton() {\r
181                 setStatus(updateButton);\r
182                 // changedEditText();\r
183         }\r
184 \r
185         private void clickDeleteButton() {\r
186                 setStatus(deleteButton);\r
187         }\r
188 \r
189         private void clickCancelButton() {\r
190                 curMonitor = null;\r
191                 setStatus(cancelButton);\r
192         }\r
193 \r
194         private void clickConfButton() {\r
195                 Monitor monitor;\r
196                 int id;\r
197 \r
198                 if (mode == addButton) {\r
199                         monitor = getMonitor(-1);\r
200                         dao.add(monitor);\r
201                         updateList();\r
202                 } else if (mode == updateButton) {\r
203                         monitor = getMonitor(curMonitor.getId());\r
204                         dao.set(monitor);\r
205                         updateList();\r
206                 } else if (mode == deleteButton) {\r
207                         id = curMonitor.getId();\r
208                         dao.delete(id);\r
209                         updateList();\r
210                 }\r
211                 curMonitor = null;\r
212                 setStatus(confButton);\r
213         }\r
214 \r
215         private void clickCloseButton() {\r
216                 setStatus(closeButton);\r
217                 this.finish();\r
218         }\r
219 \r
220         private void setStatus(View view) {\r
221                 if (view == null) {\r
222                         listView.setEnabled(true);\r
223                         scrollView.setVisibility(View.GONE);\r
224                         setItemsEnabled(false);\r
225                         addButton.setVisibility(View.VISIBLE);\r
226                         addButton.setEnabled(true);\r
227                         updateButton.setVisibility(View.VISIBLE);\r
228                         updateButton.setEnabled(false);\r
229                         deleteButton.setVisibility(View.VISIBLE);\r
230                         deleteButton.setEnabled(false);\r
231                         confButton.setVisibility(View.GONE);\r
232                         confButton.setEnabled(true);\r
233                         cancelButton.setVisibility(View.GONE);\r
234                         closeButton.setVisibility(View.VISIBLE);\r
235                 } else if (view == listView) {\r
236                         scrollView.setVisibility(View.VISIBLE);\r
237                         setItemsEnabled(false);\r
238                         addButton.setEnabled(false);\r
239                         updateButton.setEnabled(true);\r
240                         deleteButton.setEnabled(true);\r
241                         cancelButton.setVisibility(View.VISIBLE);\r
242                         closeButton.setVisibility(View.GONE);\r
243                 } else if (view == addButton) {\r
244                         listView.setEnabled(false);\r
245                         scrollView.setVisibility(View.VISIBLE);\r
246                         setItemsEnabled(true);\r
247                         addButton.setVisibility(View.GONE);\r
248                         updateButton.setVisibility(View.GONE);\r
249                         deleteButton.setVisibility(View.GONE);\r
250                         confButton.setVisibility(View.VISIBLE);\r
251                         cancelButton.setVisibility(View.VISIBLE);\r
252                         closeButton.setVisibility(View.GONE);\r
253                 } else if (view == updateButton) {\r
254                         setItemsEnabled(true);\r
255                         addButton.setVisibility(View.GONE);\r
256                         updateButton.setVisibility(View.GONE);\r
257                         deleteButton.setVisibility(View.GONE);\r
258                         confButton.setVisibility(View.VISIBLE);\r
259                         cancelButton.setVisibility(View.VISIBLE);\r
260                         closeButton.setVisibility(View.GONE);\r
261                 } else if (view == deleteButton) {\r
262                         addButton.setVisibility(View.GONE);\r
263                         updateButton.setVisibility(View.GONE);\r
264                         deleteButton.setVisibility(View.GONE);\r
265                         confButton.setVisibility(View.VISIBLE);\r
266                         cancelButton.setVisibility(View.VISIBLE);\r
267                         closeButton.setVisibility(View.GONE);\r
268                 } else if (view == confButton) {\r
269                         setStatus(null);\r
270                 } else if (view == cancelButton) {\r
271                         setStatus(null);\r
272                 } else if (view == closeButton) {\r
273                         setStatus(null);\r
274                 }\r
275                 mode = view;\r
276         }\r
277 \r
278         private void setItemsEnabled(boolean enabled) {\r
279                 //listView.setEnabled(enabled);\r
280                 scrollView.setEnabled(enabled);\r
281                 timePicker1.setEnabled(enabled);\r
282                 timePicker2.setEnabled(enabled);\r
283                 for (int i = 0; i < DateUtil.WEEK; i++) {\r
284                         checkBoxes[i].setEnabled(enabled);\r
285                 }\r
286         }\r
287 \r
288         private void setItems(Monitor monitor){\r
289                 int from = monitor.getFrom();\r
290                 int to = monitor.getTo();\r
291                 \r
292                 timePicker1.setCurrentHour(from / 100);\r
293                 timePicker1.setCurrentMinute(from % 100);\r
294                 timePicker2.setCurrentHour(to / 100);\r
295                 timePicker2.setCurrentMinute(to % 100);\r
296                 for (int i = 0; i < DateUtil.WEEK; i++) {\r
297                         checkBoxes[i].setChecked(monitor.getWeek(i));\r
298                 }\r
299         }\r
300         \r
301         private Monitor getMonitor(int id){\r
302                 int h1 = timePicker1.getCurrentHour();\r
303                 int m1 = timePicker1.getCurrentMinute();\r
304                 int h2 = timePicker2.getCurrentHour();\r
305                 int m2 = timePicker2.getCurrentMinute();\r
306                 int hm1 = DateUtil.getHm(h1, m1);\r
307                 int hm2 = DateUtil.getHm(h2, m2);\r
308 \r
309                 Monitor monitor = new Monitor(id, hm1, hm2);\r
310                 for (int i = 0; i < DateUtil.WEEK; i++){\r
311                         monitor.setWeek(i, checkBoxes[i].isChecked());\r
312                 }\r
313                 return monitor;\r
314         }\r
315 \r
316         // TODO\r
317 //      private int getCheckBoxIndex(CompoundButton checkBox) {\r
318 //              for (int i = 0; i < checkBoxes.length; i++) {\r
319 //                      if (checkBoxes[i] == checkBox) {\r
320 //                              return i;\r
321 //                      }\r
322 //              }\r
323 //              return -1;\r
324 //      }\r
325 }\r