OSDN Git Service

T27820
[evermemo/source.git] / workspace / EverMemo / src / com / yuji / em / SelectNoteListActivity.java
1 package com.yuji.em;
2
3 import java.util.List;
4
5 import android.content.Intent;
6 import android.graphics.Color;
7 import android.os.Bundle;
8 import android.view.View;
9 import android.view.View.OnClickListener;
10 import android.widget.AdapterView;
11 import android.widget.AdapterView.OnItemClickListener;
12 import android.widget.ArrayAdapter;
13 import android.widget.Button;
14 import android.widget.LinearLayout;
15 import android.widget.ListView;
16 import android.widget.TextView;
17
18 import com.yuji.em.common.CommonUtil;
19 import com.yuji.em.common.Constant;
20 import com.yuji.em.data.Note;
21 import com.yuji.em.data.NoteDao;
22 import com.yuji.em.utility.BaseActivity;
23
24 public class SelectNoteListActivity extends BaseActivity {
25         private LinearLayout messageLayout = null;
26         private TextView titleView = null;
27         private TextView messageView = null;
28         private Button editButton;
29         private Button deleteButton;
30         private Button cancelButton;
31         private Button yesButton;
32         private Button noButton;
33         private ListView selectListView;
34
35         private View prevListView = null;
36         private int selectedIndex = -1;
37         private boolean isEmpty = true;
38
39         @Override
40         public void onCreate(Bundle savedInstanceState) {
41                 super.onCreate(savedInstanceState);
42                 setContentView(R.layout.select_note_list);
43
44                 titleView = (TextView) this.findViewById(R.id.selectListTitle);
45                 messageLayout = (LinearLayout) this.findViewById(R.id.selectListLayout);
46                 messageView = (TextView) this.findViewById(R.id.selectListMessage);
47                 editButton = (Button) this.findViewById(R.id.selectListEditButton);
48                 deleteButton = (Button) this.findViewById(R.id.selectListDeleteButton);
49                 cancelButton = (Button) this.findViewById(R.id.selectListCancelButton);
50                 yesButton = (Button) this.findViewById(R.id.selectListYesButton);
51                 noButton = (Button) this.findViewById(R.id.selectListNoButton);
52                 selectListView = (ListView) this.findViewById(R.id.selectListView);
53
54                 editButton.setOnClickListener(new OnClickListener() {
55                         public void onClick(View v) {
56                                 editButtonOnClick();
57                         }
58                 });
59
60                 deleteButton.setOnClickListener(new OnClickListener() {
61                         public void onClick(View v) {
62                                 deleteButtonOnClick();
63                         }
64                 });
65
66                 cancelButton.setOnClickListener(new OnClickListener() {
67                         public void onClick(View v) {
68                                 cancelButtonOnClick();
69                         }
70                 });
71
72                 yesButton.setOnClickListener(new OnClickListener() {
73                         public void onClick(View v) {
74                                 yesButtonOnClick();
75                         }
76                 });
77
78                 noButton.setOnClickListener(new OnClickListener() {
79                         public void onClick(View v) {
80                                 noButtonOnClick();
81                         }
82                 });
83
84                 selectListView.setOnItemClickListener(new OnItemClickListener() {
85                         public void onItemClick(AdapterView<?> parent, View view,
86                                         int position, long id) {
87                                 selectListViewOnItemClick(parent, view, position, id);
88                         }
89                 });
90
91                 // float fSize = titleView.getTextSize();
92                 // messageView.setTextSize((float) (fSize * 1.0));
93
94                 updateList();
95
96                 setStatus(null);
97         }
98
99         @Override
100         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
101                 if (resultCode == RESULT_OK) {
102                         updateList();
103                         setStatus(null);
104                 }
105         }
106
107         private void updateList() {
108                 NoteDao dao = NoteDao.getInstance();
109                 List<Note> list = dao.search(this);
110                 // ArrayAdapter<Note> adapter = new ArrayAdapter<Note>(this,
111                 // android.R.layout.simple_list_item_1, list);
112                 ArrayAdapter<Note> adapter = new ArrayAdapter<Note>(this,
113                                 R.layout.simple_list_item_2, list);
114                 selectListView.setAdapter(adapter);
115
116                 selectedIndex = -1;
117                 isEmpty = dao.isEmpty(list);
118         }
119
120         protected void selectListViewOnItemClick(AdapterView<?> parent, View view,
121                         int position, long id) {
122                 if (view == prevListView) {
123                         return;
124                 }
125                 if (prevListView != null) {
126                         prevListView.setBackgroundColor(Color.WHITE);
127                 }
128                 view.setBackgroundColor(0xffccffcc);
129                 prevListView = view;
130
131                 selectedIndex = position;
132                 setStatus(parent);
133         }
134
135         private void editButtonOnClick() {
136                 if (prevListView == null || selectedIndex < 0) {
137                         return;
138                 }
139
140                 Intent intent = new Intent(this, (Class<?>) NoteListActivity.class);
141                 intent.putExtra(Constant.EXTRA_INDEX, selectedIndex);
142                 startActivityForResult(intent, 0);
143         }
144
145         private void deleteButtonOnClick() {
146                 setStatus(deleteButton);
147         }
148
149         private void cancelButtonOnClick() {
150                 finish();
151         }
152
153         private void yesButtonOnClick() {
154                 NoteDao dao = NoteDao.getInstance();
155                 Note note = new Note("", "");
156                 dao.update(this, note, selectedIndex);
157
158                 updateList();
159
160                 setStatus(yesButton);
161         }
162
163         private void noButtonOnClick() {
164                 setStatus(noButton);
165         }
166
167         private void setStatus(View view) {
168                 if (view == null) {
169                         if (isEmpty) {
170                                 messageLayout.setVisibility((isEmpty) ? View.VISIBLE
171                                                 : View.GONE);
172                                 messageView.setText("\91\97\90M\90æ\82Ì\83m\81[\83g\82ð\90Ý\92è\82·\82é\82É\82Í\81A\83\8a\83X\83g\82ð\91I\91ð\82µ\81A\81u\8dX\90V\81v\83{\83^\83\93\82ð\89\9f\82µ\82Ä\82­\82¾\82³\82¢\81B"); // TODO
173                                 selectListView.setEnabled(true);
174                                 editButton.setVisibility(View.VISIBLE);
175                                 editButton.setEnabled(false);
176                                 deleteButton.setVisibility(View.VISIBLE);
177                                 deleteButton.setEnabled(false);
178                                 yesButton.setVisibility(View.GONE);
179                                 noButton.setVisibility(View.GONE);
180                         } else {
181                                 messageLayout.setVisibility((isEmpty) ? View.VISIBLE
182                                                 : View.GONE);
183                                 selectListView.setEnabled(true);
184                                 editButton.setVisibility(View.VISIBLE);
185                                 editButton.setEnabled(false);
186                                 deleteButton.setVisibility(View.VISIBLE);
187                                 deleteButton.setEnabled(false);
188                                 yesButton.setVisibility(View.GONE);
189                                 noButton.setVisibility(View.GONE);
190                         }
191                 } else if (view == selectListView) {
192                         messageLayout.setVisibility((isEmpty) ? View.VISIBLE : View.GONE);
193                         selectListView.setEnabled(true);
194                         editButton.setVisibility(View.VISIBLE);
195                         editButton.setEnabled(true);
196                         Note item = (Note) selectListView.getItemAtPosition(selectedIndex);
197                         deleteButton.setVisibility(View.VISIBLE);
198                         deleteButton.setEnabled(!CommonUtil.isNull(item.getTitle()));
199                         yesButton.setVisibility(View.GONE);
200                         noButton.setVisibility(View.GONE);
201                 } else if (view == deleteButton) {
202                         messageLayout.setVisibility(View.VISIBLE);
203                         messageView.setText("\8dí\8f\9c\82µ\82Ü\82·\82©"); // TODO
204                         selectListView.setEnabled(false);
205                         editButton.setVisibility(View.GONE);
206                         deleteButton.setVisibility(View.GONE);
207                         yesButton.setVisibility(View.VISIBLE);
208                         noButton.setVisibility(View.VISIBLE);
209                 } else if (view == yesButton) {
210                         setStatus(null);
211                 } else if (view == noButton) {
212                         setStatus(selectListView);
213                 }
214         }
215 }