OSDN Git Service

t25722
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / SearchWordActivity.java
1 package com.td;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 \r
6 import com.td.R;\r
7 import com.td.db.Keyword;\r
8 import com.td.db.KeywordDao;\r
9 \r
10 import android.app.Activity;\r
11 import android.os.Bundle;\r
12 import android.text.Editable;\r
13 import android.text.TextWatcher;\r
14 import android.view.View;\r
15 import android.view.View.OnClickListener;\r
16 import android.widget.AdapterView;\r
17 import android.widget.AdapterView.OnItemClickListener;\r
18 import android.widget.AdapterView.OnItemSelectedListener;\r
19 import android.widget.ArrayAdapter;\r
20 import android.widget.Button;\r
21 import android.widget.EditText;\r
22 import android.widget.ListView;\r
23 \r
24 public class SearchWordActivity extends Activity {\r
25         private KeywordDao dao;\r
26         private List<Keyword> list = new ArrayList<Keyword>();\r
27         private Keyword curKeyword = null;\r
28         \r
29         private View mode = null;\r
30         private ListView listView;\r
31         private EditText editText;\r
32         private Button addButton;\r
33         private Button updateButton;\r
34         private Button deleteButton;\r
35         private Button confButton;\r
36         private Button cancelButton;\r
37         private Button closeButton;\r
38 \r
39         @Override\r
40         public void onCreate(Bundle savedInstanceState) {\r
41                 super.onCreate(savedInstanceState);\r
42                 setContentView(R.layout.search_word);\r
43 \r
44                 listView = (ListView) findViewById(R.id.listView81);\r
45                 editText = (EditText) findViewById(R.id.editText81);\r
46                 addButton = (Button) findViewById(R.id.button81);\r
47                 updateButton = (Button) findViewById(R.id.button82);\r
48                 deleteButton = (Button) findViewById(R.id.button83);\r
49                 confButton = (Button) findViewById(R.id.button84);\r
50                 cancelButton = (Button) findViewById(R.id.button85);\r
51                 closeButton = (Button) findViewById(R.id.button86);\r
52 \r
53                 dao = KeywordDao.getInstance();\r
54                 updateList();\r
55 \r
56                 listView.setOnItemClickListener(new OnItemClickListener() {\r
57                         public void onItemClick(AdapterView<?> parent, View view,\r
58                                         int position, long id) {\r
59                                 selectedItemView(parent, view, position, id);\r
60                         }\r
61                 });\r
62                 listView.setOnItemSelectedListener(new OnItemSelectedListener() {\r
63                         public void onItemSelected(AdapterView<?> parent, View view,\r
64                                         int position, long id) {\r
65                                 selectedItemView(parent, view, position, id);\r
66                         }\r
67 \r
68                         public void onNothingSelected(AdapterView<?> arg0) {\r
69                                 ;\r
70                         }\r
71                 });\r
72 \r
73                 editText.addTextChangedListener(new TextWatcher() {\r
74                         public void afterTextChanged(Editable editable) {\r
75                                 changedEditText();\r
76                         }\r
77 \r
78                         public void beforeTextChanged(CharSequence s, int start, int count,\r
79                                         int after) {\r
80                                 ;\r
81                         }\r
82 \r
83                         public void onTextChanged(CharSequence s, int start, int before,\r
84                                         int count) {\r
85                                 ;\r
86                         }\r
87                 });\r
88 \r
89                 addButton.setOnClickListener(new OnClickListener() {\r
90                         public void onClick(View view) {\r
91                                 clickAddButton();\r
92                         }\r
93                 });\r
94 \r
95                 updateButton.setOnClickListener(new OnClickListener() {\r
96                         public void onClick(View view) {\r
97                                 clickUpdateButton();\r
98                         }\r
99                 });\r
100 \r
101                 deleteButton.setOnClickListener(new OnClickListener() {\r
102                         public void onClick(View view) {\r
103                                 clickDeleteButton();\r
104                         }\r
105                 });\r
106 \r
107                 cancelButton.setOnClickListener(new OnClickListener() {\r
108                         public void onClick(View view) {\r
109                                 clickCancelButton();\r
110                         }\r
111                 });\r
112 \r
113                 confButton.setOnClickListener(new OnClickListener() {\r
114                         public void onClick(View view) {\r
115                                 clickConfButton();\r
116                         }\r
117                 });\r
118 \r
119                 closeButton.setOnClickListener(new OnClickListener() {\r
120                         public void onClick(View view) {\r
121                                 clickCloseButton();\r
122                         }\r
123                 });\r
124         }\r
125 \r
126         private void updateList() {\r
127                 list = dao.search();            \r
128                 ArrayAdapter<Keyword> adapter = new ArrayAdapter<Keyword>(this,\r
129                                 android.R.layout.simple_list_item_1, list);\r
130                 listView.setAdapter(adapter);\r
131         }\r
132 \r
133         @Override\r
134         protected void onStart() {\r
135                 super.onStart();\r
136                 \r
137                 setStatus(null);\r
138         }\r
139         \r
140         private void selectedItemView(AdapterView<?> parent, View view,\r
141                         int position, long id) {\r
142                 curKeyword = list.get(position);\r
143                 String text = curKeyword.getText();\r
144                 editText.setText(text);\r
145 \r
146                 setStatus(listView);\r
147         }\r
148 \r
149         private void changedEditText() {\r
150                 if (mode == addButton || mode == updateButton){\r
151                         String text = editText.getText().toString();\r
152                         confButton.setEnabled((text.length() > 0)? true : false);\r
153                 }\r
154         }\r
155 \r
156         private void clickAddButton() {\r
157                 editText.setText("");\r
158 \r
159                 curKeyword = null;\r
160                 setStatus(addButton);\r
161                 changedEditText();\r
162         }\r
163 \r
164         private void clickUpdateButton() {\r
165                 setStatus(updateButton);\r
166                 changedEditText();\r
167         }\r
168 \r
169         private void clickDeleteButton() {\r
170                 setStatus(deleteButton);\r
171         }\r
172         \r
173         private void clickCancelButton() {\r
174                 curKeyword = null;\r
175                 setStatus(cancelButton);\r
176         }\r
177 \r
178         private void clickConfButton() {\r
179                 String text;\r
180                 Keyword keyword;\r
181                 int id;\r
182                 \r
183                 if (mode == addButton){\r
184                         text = editText.getText().toString();\r
185                         keyword = new Keyword(text);\r
186                         dao.add(keyword);\r
187                         updateList();                   \r
188                 }\r
189                 else if (mode == updateButton){\r
190                         text = editText.getText().toString();\r
191                         id = curKeyword.getId();\r
192                         dao.set(id, text);\r
193                         updateList();                                           \r
194                 }\r
195                 else if (mode == deleteButton){\r
196                         id = curKeyword.getId();\r
197                         dao.delete(id);\r
198                         updateList();                                           \r
199                 }\r
200                 curKeyword = null;\r
201                 setStatus(confButton);\r
202         }\r
203 \r
204         private void clickCloseButton() {\r
205                 setStatus(closeButton);\r
206                 this.finish();\r
207         }\r
208         \r
209         private void setStatus(View view) {\r
210                 if (view == null) {\r
211                         listView.setEnabled(true);\r
212                         editText.setVisibility(View.GONE);\r
213                         editText.setEnabled(false);\r
214                         addButton.setVisibility(View.VISIBLE);\r
215                         addButton.setEnabled(true);\r
216                         updateButton.setVisibility(View.VISIBLE);\r
217                         updateButton.setEnabled(false);\r
218                         deleteButton.setVisibility(View.VISIBLE);\r
219                         deleteButton.setEnabled(false);\r
220                         confButton.setVisibility(View.GONE);\r
221                         confButton.setEnabled(true);\r
222                         cancelButton.setVisibility(View.GONE);\r
223                         closeButton.setVisibility(View.VISIBLE);\r
224                 }\r
225                 else if (view == listView) {\r
226                         editText.setVisibility(View.VISIBLE);\r
227                         editText.setEnabled(false);\r
228                         addButton.setEnabled(false);\r
229                         updateButton.setEnabled(true);\r
230                         deleteButton.setEnabled(true);\r
231                         cancelButton.setVisibility(View.VISIBLE);\r
232                         closeButton.setVisibility(View.GONE);\r
233                 } else if (view == addButton) {\r
234                         listView.setEnabled(false);\r
235                         editText.setVisibility(View.VISIBLE);\r
236                         editText.setEnabled(true);\r
237                         addButton.setVisibility(View.GONE);\r
238                         updateButton.setVisibility(View.GONE);\r
239                         deleteButton.setVisibility(View.GONE);\r
240                         confButton.setVisibility(View.VISIBLE);\r
241                         cancelButton.setVisibility(View.VISIBLE);\r
242                         closeButton.setVisibility(View.GONE);\r
243                 } else if (view == updateButton) {\r
244                         listView.setEnabled(false);\r
245                         editText.setEnabled(true);\r
246                         addButton.setVisibility(View.GONE);\r
247                         updateButton.setVisibility(View.GONE);\r
248                         deleteButton.setVisibility(View.GONE);\r
249                         confButton.setVisibility(View.VISIBLE);\r
250                         cancelButton.setVisibility(View.VISIBLE);\r
251                         closeButton.setVisibility(View.GONE);\r
252                 } else if (view == deleteButton) {\r
253                         listView.setEnabled(false);\r
254                         addButton.setVisibility(View.GONE);\r
255                         updateButton.setVisibility(View.GONE);\r
256                         deleteButton.setVisibility(View.GONE);\r
257                         confButton.setVisibility(View.VISIBLE);\r
258                         cancelButton.setVisibility(View.VISIBLE);\r
259                         closeButton.setVisibility(View.GONE);\r
260                 } else if (view == confButton) {\r
261                         setStatus(null);\r
262                 } else if (view == cancelButton) {\r
263                         setStatus(null);\r
264                 } else if (view == closeButton) {\r
265                         setStatus(null);\r
266                 }\r
267                 mode = view;\r
268         }\r
269 }\r