OSDN Git Service

debug
[jugglemaster/source.git] / workspace / JuggleMaster / src / com / jm / Edit.java
1 package com.jm;\r
2 \r
3 import android.app.AlertDialog;\r
4 import android.content.DialogInterface;\r
5 import android.os.Bundle;\r
6 import android.view.KeyEvent;\r
7 import android.view.View;\r
8 import android.view.View.OnClickListener;\r
9 import android.widget.Button;\r
10 import android.widget.EditText;\r
11 import android.widget.SeekBar;\r
12 import android.widget.SeekBar.OnSeekBarChangeListener;\r
13 import android.widget.TextView;\r
14 import android.widget.TextView.OnEditorActionListener;\r
15 \r
16 import com.jm.db.Dao;\r
17 import com.jm.utility.BaseActivity;\r
18 import com.jm.utility.JmException;\r
19 import com.jm.utility.Resource;\r
20 \r
21 public class Edit extends BaseActivity {\r
22         public final static int NEW = 1;\r
23         public final static int EDIT = 2;\r
24 \r
25         private EditText patternEdit = null;\r
26         private EditText siteswapEdit = null;\r
27         private EditText motionEdit = null;\r
28         private TextView heightTextView = null;\r
29         private SeekBar heightSeekBar = null;\r
30         private TextView dwellTextView = null;\r
31         private SeekBar dwellSeekBar = null;\r
32         private TextView speedTextView = null;\r
33         private SeekBar speedSeekBar = null;\r
34         private Button okButton = null;\r
35         private Button deleteButton = null;\r
36         private Button cancelButton = null;\r
37 \r
38         private int id;\r
39         private int index;\r
40         private int mode;\r
41         private int type = -1;\r
42 \r
43         public void onCreate(Bundle savedInstanceState) {\r
44                 super.onCreate(savedInstanceState);\r
45                 setContentView(R.layout.edit);\r
46 \r
47                 patternEdit = (EditText) findViewById(R.id.PatternEdit);\r
48                 siteswapEdit = (EditText) findViewById(R.id.SiteswapEdit);\r
49                 motionEdit = (EditText) findViewById(R.id.MotionEdit);\r
50                 heightTextView = (TextView) findViewById(R.id.HeightLabel);\r
51                 heightSeekBar = (SeekBar) findViewById(R.id.HeightValue);\r
52                 dwellTextView = (TextView) findViewById(R.id.DwellLabel);\r
53                 dwellSeekBar = (SeekBar) findViewById(R.id.DwellValue);\r
54                 speedTextView = (TextView) findViewById(R.id.SpeedLabel);\r
55                 speedSeekBar = (SeekBar) findViewById(R.id.SpeedValue);\r
56                 okButton = (Button) findViewById(R.id.OkButton);\r
57                 deleteButton = (Button) findViewById(R.id.DeleteButton);\r
58                 cancelButton = (Button) findViewById(R.id.CancelButton);\r
59 \r
60                 Bundle extras = getIntent().getExtras();\r
61                 mode = extras.getInt("MODE");\r
62                 if (mode == NEW) {\r
63                         type = 6;\r
64                         patternEdit.setText("");\r
65                         siteswapEdit.setText("");\r
66                         motionEdit.setText("");\r
67                         heightSeekBar.setProgress(getProgressValue(50));\r
68                         dwellSeekBar.setProgress(getProgressValue(50));\r
69 \r
70                         deleteButton.setEnabled(false);\r
71                 } else {\r
72                         try {\r
73                                 id = extras.getInt("ID");\r
74                                 JmPattern[] list = Dao.getInstance().getFromId(id);\r
75                                 if (list.length <= 0) {\r
76                                         return;\r
77                                 }\r
78                                 JmPattern jp = list[0];\r
79                                 patternEdit.setText(jp.getName());\r
80                                 siteswapEdit.setText(jp.getSiteSwap().toString());\r
81                                 motionEdit.setText(jp.motionToString());\r
82                                 heightSeekBar.setProgress(getProgressValue(jp.getHeight()));\r
83                                 dwellSeekBar.setProgress(getProgressValue(jp.getDwell()));\r
84 \r
85                                 index = extras.getInt("INDEX1");\r
86                                 if (index != Menu1.INDEX6) {\r
87                                         deleteButton.setEnabled(false);\r
88                                 }\r
89                         } catch (JmException e) {\r
90                                 showDialog(this, e);\r
91                                 return;\r
92                         }\r
93 \r
94                 }\r
95                 heightTextView.setText(String.valueOf(getTextValue(heightSeekBar\r
96                                 .getProgress())));\r
97                 dwellTextView.setText(String.valueOf(getTextValue(dwellSeekBar\r
98                                 .getProgress())));\r
99                 speedSeekBar.setProgress(getProgressValue(Resource.speed));\r
100                 speedTextView.setText(String.valueOf(getTextValue(speedSeekBar\r
101                                 .getProgress())));\r
102 \r
103                 setListener();\r
104         }\r
105 \r
106         private void setListener() {\r
107                 patternEdit.setOnEditorActionListener(new OnEditorActionListener() {\r
108                         @Override\r
109                         public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {\r
110                                 return true;\r
111                         }\r
112                 });\r
113 \r
114                 heightSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {\r
115                         @Override\r
116                         public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {\r
117                                 heightTextView.setText(String.valueOf(getTextValue(arg1)));\r
118                         }\r
119 \r
120                         @Override\r
121                         public void onStartTrackingTouch(SeekBar seekBar) {\r
122 \r
123                         }\r
124 \r
125                         @Override\r
126                         public void onStopTrackingTouch(SeekBar seekBar) {\r
127 \r
128                         }\r
129                 });\r
130 \r
131                 dwellSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {\r
132                         @Override\r
133                         public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {\r
134                                 dwellTextView.setText(String.valueOf(getTextValue(arg1)));\r
135                         }\r
136 \r
137                         @Override\r
138                         public void onStartTrackingTouch(SeekBar seekBar) {\r
139 \r
140                         }\r
141 \r
142                         @Override\r
143                         public void onStopTrackingTouch(SeekBar seekBar) {\r
144 \r
145                         }\r
146                 });\r
147 \r
148                 speedSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {\r
149                         @Override\r
150                         public void onProgressChanged(SeekBar seekBar, int progress,\r
151                                         boolean fromUser) {\r
152                                 speedTextView.setText(String.valueOf(getTextValue(progress)));\r
153 \r
154                         }\r
155 \r
156                         @Override\r
157                         public void onStartTrackingTouch(SeekBar seekBar) {\r
158 \r
159                         }\r
160 \r
161                         @Override\r
162                         public void onStopTrackingTouch(SeekBar seekBar) {\r
163 \r
164                         }\r
165                 });\r
166 \r
167                 okButton.setOnClickListener(new OnClickListener() {\r
168                         @Override\r
169                         public void onClick(View arg0) {\r
170                                 String siteswapString = siteswapEdit.getText().toString();\r
171                                 if (siteswapString == null || siteswapString.length() <= 0) {\r
172                                         showDialog(getString(R.string.siteswap_error),\r
173                                                         getString(R.string.siteswap) + "[" + siteswapString\r
174                                                                         + "]");\r
175                                         return;\r
176                                 }\r
177                                 if (!JmPattern.setSiteSwap(siteswapString)) {\r
178                                         showDialog(getString(R.string.siteswap_error),\r
179                                                         getString(R.string.siteswap) + "[" + siteswapString\r
180                                                                         + "]");\r
181                                         return;\r
182                                 }\r
183 \r
184                                 String patternString = patternEdit.getText().toString();\r
185                                 if (patternString == null || patternString.length() <= 0) {\r
186                                         patternString = siteswapString;\r
187                                 }\r
188 \r
189                                 String motionString = motionEdit.getText().toString();\r
190                                 if (motionString == null || motionString.length() <= 0) {\r
191                                         motionString = "{13,0}{4,0}";\r
192                                 }\r
193                                 byte[][] motion = JmPattern.getMotion(motionString);\r
194                                 if (motion == null || motion.length == 0\r
195                                                 && motionString.length() > 0) {\r
196                                         showDialog(getString(R.string.siteswap_error),\r
197                                                         getString(R.string.handling) + "[" + motionString\r
198                                                                         + "]");\r
199                                         return;\r
200                                 }\r
201 \r
202                                 JmPattern jp = new JmPattern(id, type, patternString,\r
203                                                 siteswapString, getTextValue(heightSeekBar\r
204                                                                 .getProgress()), getTextValue(dwellSeekBar\r
205                                                                 .getProgress()), motion);\r
206                                 try {\r
207                                         Dao dao = Dao.getInstance();\r
208                                         if (mode == NEW) {\r
209                                                 int m = dao.max(type);\r
210                                                 dao.add(jp, m + 1);\r
211                                         } else {\r
212                                                 dao.set(jp);\r
213                                         }\r
214                                         Resource.speed = getTextValue(speedSeekBar.getProgress());\r
215                                 } catch (JmException e) {\r
216                                         showDialog(this, e);\r
217                                         return;\r
218                                 }\r
219                                 finish();\r
220                         }\r
221                 });\r
222 \r
223                 deleteButton.setOnClickListener(new OnClickListener() {\r
224                         @Override\r
225                         public void onClick(View arg0) {\r
226                                 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(\r
227                                                 Edit.this);\r
228                                 alertDialogBuilder.setTitle(getString(R.string.title_delete));\r
229                                 alertDialogBuilder\r
230                                                 .setMessage(getString(R.string.message_delete_pattern));\r
231                                 alertDialogBuilder.setPositiveButton(android.R.string.ok,\r
232                                                 new DialogInterface.OnClickListener() {\r
233                                                         @Override\r
234                                                         public void onClick(DialogInterface dialog,\r
235                                                                         int which) {\r
236                                                                 try {\r
237                                                                         Dao.getInstance().delete(id);\r
238                                                                         finish();\r
239                                                                 } catch (JmException e) {\r
240                                                                         showDialog(this, e);\r
241                                                                         return;\r
242                                                                 }\r
243                                                         }\r
244                                                 });\r
245                                 alertDialogBuilder.setNeutralButton(android.R.string.no,\r
246                                                 new DialogInterface.OnClickListener() {\r
247                                                         @Override\r
248                                                         public void onClick(DialogInterface dialog,\r
249                                                                         int which) {\r
250                                                         }\r
251                                                 });\r
252                                 alertDialogBuilder.setCancelable(true);\r
253                                 AlertDialog alertDialog = alertDialogBuilder.create();\r
254                                 alertDialog.show();\r
255                         }\r
256                 });\r
257 \r
258                 cancelButton.setOnClickListener(new OnClickListener() {\r
259                         @Override\r
260                         public void onClick(View arg0) {\r
261                                 finish();\r
262                         }\r
263                 });\r
264         }\r
265 \r
266         private int getTextValue(int val) {\r
267                 return val + 1;\r
268         }\r
269 \r
270         private int getProgressValue(int val) {\r
271                 return val - 1;\r
272         }\r
273 }\r