3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
6 import android.app.TimePickerDialog;
\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.CompoundButton;
\r
17 import android.widget.CompoundButton.OnCheckedChangeListener;
\r
18 import android.widget.EditText;
\r
19 import android.widget.ListView;
\r
20 import android.widget.ScrollView;
\r
21 import android.widget.TimePicker;
\r
23 import com.td.db.Monitor;
\r
24 import com.td.db.MonitorDao;
\r
25 import com.td.service.TrainDelayedServiceImpl;
\r
26 import com.td.utility.BaseActivity;
\r
27 import com.td.utility.DateUtil;
\r
28 import com.td.utility.Debug;
\r
29 import com.td.utility.EditPrefUtil;
\r
31 public class MonitorTimeActivity extends BaseActivity {
\r
32 private EditPrefUtil pref = new EditPrefUtil(this);
\r
33 private CheckBox[] checkBoxes = new CheckBox[DateUtil.WEEK];
\r
35 private MonitorDao dao;
\r
36 private List<Monitor> list = new ArrayList<Monitor>();
\r
37 private Monitor curMonitor = null;
\r
39 private View mode = null;
\r
40 private ListView listView;
\r
41 private ScrollView scrollView;
\r
42 private EditText editText1;
\r
43 private EditText editText2;
\r
44 private Button addButton;
\r
45 private Button updateButton;
\r
46 private Button deleteButton;
\r
47 private Button confButton;
\r
48 private Button cancelButton;
\r
49 private Button closeButton;
\r
52 public void onCreate(Bundle savedInstanceState) {
\r
53 super.onCreate(savedInstanceState);
\r
54 setContentView(R.layout.monitor_time);
\r
57 listView = (ListView) findViewById(R.id.listView61);
\r
58 scrollView = (ScrollView) findViewById(R.id.scrollView61);
\r
59 editText1 = (EditText) findViewById(R.id.editText61);
\r
60 editText2 = (EditText) findViewById(R.id.editText62);
\r
61 addButton = (Button) findViewById(R.id.button61);
\r
62 updateButton = (Button) findViewById(R.id.button62);
\r
63 deleteButton = (Button) findViewById(R.id.button63);
\r
64 confButton = (Button) findViewById(R.id.button64);
\r
65 cancelButton = (Button) findViewById(R.id.button65);
\r
66 closeButton = (Button) findViewById(R.id.button66);
\r
68 for (int i = 0; i < DateUtil.WEEK; i++) {
\r
71 checkBox = (CheckBox) findViewById(R.id.checkBox61);
\r
74 checkBox = (CheckBox) findViewById(R.id.checkBox62);
\r
77 checkBox = (CheckBox) findViewById(R.id.checkBox63);
\r
80 checkBox = (CheckBox) findViewById(R.id.checkBox64);
\r
83 checkBox = (CheckBox) findViewById(R.id.checkBox65);
\r
86 checkBox = (CheckBox) findViewById(R.id.checkBox66);
\r
89 checkBox = (CheckBox) findViewById(R.id.checkBox67);
\r
95 checkBoxes[i] = checkBox;
\r
96 if (checkBox != null) {
\r
97 checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
\r
98 public void onCheckedChanged(CompoundButton view,
\r
99 boolean isChecked) {
\r
106 editText1.setOnClickListener(new OnClickListener() {
\r
107 public void onClick(View view) {
\r
108 String t = editText1.getText().toString();
\r
109 String strHour = DateUtil.getHour(t);
\r
110 String strMinute = DateUtil.getMinute(t);
\r
112 int hour = Integer.parseInt(strHour);
\r
113 int minute = Integer.parseInt(strMinute);
\r
114 TimePickerDialog timePickerDialog = new TimePickerDialog(
\r
115 MonitorTimeActivity.this,
\r
116 new TimePickerDialog.OnTimeSetListener() {
\r
117 public void onTimeSet(TimePicker view,
\r
118 int hourOfDay, int minute) {
\r
119 String s = DateUtil.formattedHm(DateUtil
\r
120 .getHm(hourOfDay, minute));
\r
121 editText1.setText(s);
\r
124 }, hour, minute, true);
\r
125 timePickerDialog.show();
\r
129 editText2.setOnClickListener(new OnClickListener() {
\r
130 public void onClick(View view) {
\r
131 String t = editText2.getText().toString();
\r
132 String strHour = DateUtil.getHour(t);
\r
133 String strMinute = DateUtil.getMinute(t);
\r
135 int hour = Integer.parseInt(strHour);
\r
136 int minute = Integer.parseInt(strMinute);
\r
137 TimePickerDialog timePickerDialog = new TimePickerDialog(
\r
138 MonitorTimeActivity.this,
\r
139 new TimePickerDialog.OnTimeSetListener() {
\r
140 public void onTimeSet(TimePicker view,
\r
141 int hourOfDay, int minute) {
\r
142 String s = DateUtil.formattedHm(DateUtil
\r
143 .getHm(hourOfDay, minute));
\r
144 editText2.setText(s);
\r
147 }, hour, minute, true);
\r
148 timePickerDialog.show();
\r
152 dao = MonitorDao.getInstance();
\r
155 listView.setOnItemClickListener(new OnItemClickListener() {
\r
156 public void onItemClick(AdapterView<?> parent, View view,
\r
157 int position, long id) {
\r
158 selectedItemView(parent, view, position, id);
\r
161 listView.setOnItemSelectedListener(new OnItemSelectedListener() {
\r
162 public void onItemSelected(AdapterView<?> parent, View view,
\r
163 int position, long id) {
\r
164 selectedItemView(parent, view, position, id);
\r
167 public void onNothingSelected(AdapterView<?> arg0) {
\r
172 addButton.setOnClickListener(new OnClickListener() {
\r
173 public void onClick(View view) {
\r
178 updateButton.setOnClickListener(new OnClickListener() {
\r
179 public void onClick(View view) {
\r
180 clickUpdateButton();
\r
184 deleteButton.setOnClickListener(new OnClickListener() {
\r
185 public void onClick(View view) {
\r
186 clickDeleteButton();
\r
190 cancelButton.setOnClickListener(new OnClickListener() {
\r
191 public void onClick(View view) {
\r
192 clickCancelButton();
\r
196 confButton.setOnClickListener(new OnClickListener() {
\r
197 public void onClick(View view) {
\r
202 closeButton.setOnClickListener(new OnClickListener() {
\r
203 public void onClick(View view) {
\r
204 clickCloseButton();
\r
207 } catch (Exception e) {
\r
208 Debug.d(this, null, e);
\r
212 private void updateList() {
\r
213 list = dao.search();
\r
214 ArrayAdapter<Monitor> adapter = new ArrayAdapter<Monitor>(this,
\r
215 android.R.layout.simple_list_item_1, list);
\r
216 listView.setAdapter(adapter);
\r
220 protected void onStart() {
\r
226 catch (Exception e){
\r
227 Debug.d(this, null, e);
\r
231 private void selectedItemView(AdapterView<?> parent, View view,
\r
232 int position, long id) {
\r
233 curMonitor = list.get(position);
\r
234 // String text = curMonitor.getText();
\r
235 // editText.setText(text);
\r
236 setItems(curMonitor);
\r
238 setStatus(listView);
\r
241 private void clickAddButton() {
\r
242 // editText.setText("");
\r
243 Monitor monitor = Monitor.getMonitor();
\r
247 setStatus(addButton);
\r
248 // changedEditText();
\r
251 private void clickUpdateButton() {
\r
252 setStatus(updateButton);
\r
253 // changedEditText();
\r
256 private void clickDeleteButton() {
\r
257 setStatus(deleteButton);
\r
260 private void clickCancelButton() {
\r
262 setStatus(cancelButton);
\r
265 private void clickConfButton() {
\r
269 if (mode == addButton) {
\r
270 monitor = getMonitor(-1);
\r
273 } else if (mode == updateButton) {
\r
274 if (curMonitor != null){
\r
275 monitor = getMonitor(curMonitor.getId());
\r
279 } else if (mode == deleteButton) {
\r
280 if (curMonitor != null){
\r
281 id = curMonitor.getId();
\r
287 setStatus(confButton);
\r
289 TrainDelayedServiceImpl.clearSchedule(pref);
\r
292 private void clickCloseButton() {
\r
293 setStatus(closeButton);
\r
297 private void setStatus(View view) {
\r
299 if (view == null) {
\r
300 listView.setEnabled(true);
\r
301 scrollView.setVisibility(View.GONE);
\r
302 setItemsEnabled(false);
\r
303 addButton.setVisibility(View.VISIBLE);
\r
304 addButton.setEnabled(true);
\r
305 updateButton.setVisibility(View.VISIBLE);
\r
306 updateButton.setEnabled(false);
\r
307 deleteButton.setVisibility(View.VISIBLE);
\r
308 deleteButton.setEnabled(false);
\r
309 confButton.setVisibility(View.GONE);
\r
310 confButton.setEnabled(true);
\r
311 cancelButton.setVisibility(View.GONE);
\r
312 closeButton.setVisibility(View.VISIBLE);
\r
313 } else if (view == listView) {
\r
314 scrollView.scrollTo(0, 0);
\r
315 scrollView.setVisibility(View.VISIBLE);
\r
316 setItemsEnabled(false);
\r
317 addButton.setEnabled(false);
\r
318 updateButton.setEnabled(true);
\r
319 deleteButton.setEnabled(true);
\r
320 cancelButton.setVisibility(View.VISIBLE);
\r
321 closeButton.setVisibility(View.GONE);
\r
322 } else if (view == addButton) {
\r
323 listView.setEnabled(false);
\r
324 scrollView.scrollTo(0, 0);
\r
325 scrollView.setVisibility(View.VISIBLE);
\r
326 setItemsEnabled(true);
\r
327 addButton.setVisibility(View.GONE);
\r
328 updateButton.setVisibility(View.GONE);
\r
329 deleteButton.setVisibility(View.GONE);
\r
330 confButton.setVisibility(View.VISIBLE);
\r
331 cancelButton.setVisibility(View.VISIBLE);
\r
332 closeButton.setVisibility(View.GONE);
\r
334 } else if (view == updateButton) {
\r
335 setItemsEnabled(true);
\r
336 listView.setEnabled(false);
\r
337 addButton.setVisibility(View.GONE);
\r
338 updateButton.setVisibility(View.GONE);
\r
339 deleteButton.setVisibility(View.GONE);
\r
340 confButton.setVisibility(View.VISIBLE);
\r
341 cancelButton.setVisibility(View.VISIBLE);
\r
342 closeButton.setVisibility(View.GONE);
\r
344 } else if (view == deleteButton) {
\r
345 listView.setEnabled(false);
\r
346 addButton.setVisibility(View.GONE);
\r
347 updateButton.setVisibility(View.GONE);
\r
348 deleteButton.setVisibility(View.GONE);
\r
349 confButton.setVisibility(View.VISIBLE);
\r
350 cancelButton.setVisibility(View.VISIBLE);
\r
351 closeButton.setVisibility(View.GONE);
\r
352 } else if (view == confButton) {
\r
354 } else if (view == cancelButton) {
\r
356 } else if (view == closeButton) {
\r
361 private void setItemsEnabled(boolean enabled) {
\r
362 // listView.setEnabled(enabled);
\r
363 scrollView.setEnabled(enabled);
\r
364 editText1.setEnabled(enabled);
\r
365 editText2.setEnabled(enabled);
\r
366 for (int i = 0; i < DateUtil.WEEK; i++) {
\r
367 checkBoxes[i].setEnabled(enabled);
\r
371 private void setItems(Monitor monitor) {
\r
372 int from = monitor.getFrom();
\r
373 int to = monitor.getTo();
\r
375 editText1.setText(DateUtil.formattedHm(from));
\r
376 editText2.setText(DateUtil.formattedHm(to));
\r
377 for (int i = 0; i < DateUtil.WEEK; i++) {
\r
378 checkBoxes[i].setChecked(monitor.getWeek(i));
\r
382 private Monitor getMonitor(long id) {
\r
383 String t1 = editText1.getText().toString();
\r
384 int h1 = Integer.parseInt(DateUtil.getHour(t1));
\r
385 int m1 = Integer.parseInt(DateUtil.getMinute(t1));
\r
387 String t2 = editText2.getText().toString();
\r
388 int h2 = Integer.parseInt(DateUtil.getHour(t2));
\r
389 int m2 = Integer.parseInt(DateUtil.getMinute(t2));
\r
391 int hm1 = DateUtil.getHm(h1, m1);
\r
392 int hm2 = DateUtil.getHm(h2, m2);
\r
394 Monitor monitor = new Monitor(id, hm1, hm2);
\r
395 for (int i = 0; i < DateUtil.WEEK; i++) {
\r
396 monitor.setWeek(i, checkBoxes[i].isChecked());
\r
401 private void validation() {
\r
402 String t1 = editText1.getText().toString();
\r
403 String t2 = editText2.getText().toString();
\r
405 if (t1 == null || t1.length() == 0){
\r
408 if (t2 == null || t2.length() == 0){
\r
412 int h1 = Integer.parseInt(DateUtil.getHour(t1));
\r
413 int m1 = Integer.parseInt(DateUtil.getMinute(t1));
\r
415 int h2 = Integer.parseInt(DateUtil.getHour(t2));
\r
416 int m2 = Integer.parseInt(DateUtil.getMinute(t2));
\r
418 int hm1 = DateUtil.getHm(h1, m1);
\r
419 int hm2 = DateUtil.getHm(h2, m2);
\r
421 boolean isChecked = false;
\r
422 for (int i = 0; i < DateUtil.WEEK; i++) {
\r
423 if (checkBoxes[i].isChecked()) {
\r
429 if (mode == addButton || mode == updateButton) {
\r
430 if (hm1 <= hm2 && isChecked) {
\r
431 confButton.setEnabled(true);
\r
433 confButton.setEnabled(false);
\r