OSDN Git Service

ワークスペース初期構築
[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             }\r
72             else {\r
73                 try {\r
74                             id = extras.getInt("ID");\r
75                             JmPattern[] list = Dao.getInstance().getFromId(id);\r
76                             if (list.length <= 0){\r
77                                 return;\r
78                             }\r
79                             JmPattern jp = list[0];\r
80                             patternEdit.setText(jp.getName());\r
81                             siteswapEdit.setText(jp.getSiteSwap().toString());\r
82                             motionEdit.setText(jp.motionToString());\r
83                             heightSeekBar.setProgress(getProgressValue(jp.getHeight()));\r
84                             dwellSeekBar.setProgress(getProgressValue(jp.getDwell()));\r
85         \r
86                             index = extras.getInt("INDEX1");\r
87                             if (index != Menu1.INDEX6){\r
88                                 deleteButton.setEnabled(false);\r
89                             }\r
90                 }\r
91                         catch (JmException e){\r
92                                 showDialog(this, e);\r
93                                 return;\r
94                         }\r
95 \r
96                 }\r
97                 heightTextView.setText(String.valueOf(getTextValue(heightSeekBar.getProgress())));\r
98                 dwellTextView.setText(String.valueOf(getTextValue(dwellSeekBar.getProgress())));\r
99             speedSeekBar.setProgress(getProgressValue(Resource.speed));\r
100                 speedTextView.setText(String.valueOf(getTextValue(speedSeekBar.getProgress())));\r
101 \r
102                 setListener();\r
103     }\r
104     \r
105     private void setListener(){\r
106             patternEdit.setOnEditorActionListener(new OnEditorActionListener(){\r
107                         @Override\r
108                         public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {\r
109                                 return true;\r
110                         }});\r
111 \r
112             heightSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){\r
113                         @Override\r
114                         public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {\r
115                                 heightTextView.setText(String.valueOf(getTextValue(arg1)));\r
116                         }\r
117                         @Override\r
118                         public void onStartTrackingTouch(SeekBar seekBar) {\r
119 \r
120                         }\r
121 \r
122                         @Override\r
123                         public void onStopTrackingTouch(SeekBar seekBar) {\r
124                                 \r
125                         }               \r
126             });\r
127 \r
128             dwellSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){\r
129                         @Override\r
130                         public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {\r
131                                 dwellTextView.setText(String.valueOf(getTextValue(arg1)));\r
132                         }\r
133 \r
134                         @Override\r
135                         public void onStartTrackingTouch(SeekBar seekBar) {\r
136                                 \r
137                         }\r
138 \r
139                         @Override\r
140                         public void onStopTrackingTouch(SeekBar seekBar) {\r
141                                 \r
142                         }               \r
143             });\r
144 \r
145             speedSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){\r
146                         @Override\r
147                         public void onProgressChanged(SeekBar seekBar, int progress,\r
148                                         boolean fromUser) {\r
149                                 speedTextView.setText(String.valueOf(getTextValue(progress)));\r
150                                 \r
151                         }\r
152 \r
153                         @Override\r
154                         public void onStartTrackingTouch(SeekBar seekBar) {\r
155                                 \r
156                         }\r
157 \r
158                         @Override\r
159                         public void onStopTrackingTouch(SeekBar seekBar) {\r
160                                 \r
161                         }    \r
162             });\r
163             \r
164             okButton.setOnClickListener(new OnClickListener(){\r
165                         @Override\r
166                         public void onClick(View arg0) {\r
167                                 String siteswapString = siteswapEdit.getText().toString();\r
168                                 if (siteswapString == null || siteswapString.length() <= 0){\r
169                                         showDialog(Resource.ERROR_TITLE, "[" + siteswapString + "]" + Resource.ERRMSG_SITESWAP);\r
170                                         return;\r
171                                 }\r
172                                 if (!JmPattern.setSiteSwap(siteswapString)){\r
173                                         showDialog(Resource.ERROR_TITLE, "[" + siteswapString + "]" + Resource.ERRMSG_SITESWAP);\r
174                                         return;\r
175                                 }\r
176 \r
177                                 String patternString = patternEdit.getText().toString();\r
178                                 if (patternString == null || patternString.length() <= 0){\r
179                                         patternString = siteswapString;\r
180                                 }\r
181                                 \r
182                                 String motionString = motionEdit.getText().toString();\r
183                                 if (motionString == null || motionString.length() <= 0){\r
184                                         motionString = "{13,0}{4,0}";\r
185                                 }\r
186                                 byte[][] motion = JmPattern.getMotion(motionString);\r
187                                 if (motion == null){\r
188                                         showDialog(Resource.ERROR_TITLE, "[" + motionString + "]" + Resource.ERRMSG_MOTION);\r
189                                         return;\r
190                                 }\r
191                                 \r
192                                 JmPattern jp = new JmPattern(\r
193                                                 id,\r
194                                                 type,\r
195                                                 patternString, \r
196                                                 siteswapString,\r
197                                                 getTextValue(heightSeekBar.getProgress()),\r
198                                                 getTextValue(dwellSeekBar.getProgress()),\r
199                                                 motion);\r
200                                 try {\r
201                                         if (mode == NEW){\r
202                                                 Dao.getInstance().add(jp);                                      \r
203                                         }\r
204                                         else {\r
205                                                 Dao.getInstance().set(jp);\r
206                                         }\r
207                                     Resource.speed = getTextValue(speedSeekBar.getProgress());\r
208                                 }\r
209                                 catch (JmException e){\r
210                                         showDialog(this, e);\r
211                                         return;\r
212                                 }\r
213                                 finish();\r
214                         }});\r
215 \r
216             deleteButton.setOnClickListener(new OnClickListener(){\r
217                         @Override\r
218                         public void onClick(View arg0) {\r
219                         AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Edit.this);\r
220                         alertDialogBuilder.setTitle(getString(R.string.title_delete));\r
221                         alertDialogBuilder.setMessage(getString(R.string.message_delete_pattern));\r
222                         alertDialogBuilder.setPositiveButton(android.R.string.ok,\r
223                                 new DialogInterface.OnClickListener() {\r
224                                     @Override\r
225                                     public void onClick(DialogInterface dialog, int which) {\r
226                                                         try {\r
227                                                                 Dao.getInstance().delete(id);   \r
228                                                                 finish();                               \r
229                                                         }\r
230                                                         catch (JmException e){\r
231                                                                 showDialog(this, e);\r
232                                                                 return;\r
233                                                         }\r
234                                     }\r
235                                 });\r
236                         alertDialogBuilder.setNeutralButton(android.R.string.no,\r
237                                 new DialogInterface.OnClickListener() {\r
238                                     @Override\r
239                                     public void onClick(DialogInterface dialog, int which) {\r
240                                     }\r
241                                 });\r
242                         alertDialogBuilder.setCancelable(true);\r
243                         AlertDialog alertDialog = alertDialogBuilder.create();\r
244                         alertDialog.show();\r
245                         }});\r
246 \r
247             cancelButton.setOnClickListener(new OnClickListener(){\r
248                         @Override\r
249                         public void onClick(View arg0) {\r
250                                 finish();                               \r
251                         }});            \r
252     }\r
253     \r
254     private int getTextValue(int val){\r
255         return val + 1;\r
256     }\r
257 \r
258     private int getProgressValue(int val){\r
259         return val - 1;\r
260     }\r
261 }\r