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
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
21 public class Edit extends BaseActivity {
\r
22 public final static int NEW = 1;
\r
23 public final static int EDIT = 2;
\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
41 private int type = -1;
\r
43 public void onCreate(Bundle savedInstanceState) {
\r
44 super.onCreate(savedInstanceState);
\r
45 setContentView(R.layout.edit);
\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
60 Bundle extras = getIntent().getExtras();
\r
61 mode = extras.getInt("MODE");
\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
70 deleteButton.setEnabled(false);
\r
73 id = extras.getInt("ID");
\r
74 JmPattern[] list = Dao.getInstance().getFromId(id);
\r
75 if (list.length <= 0) {
\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
85 index = extras.getInt("INDEX1");
\r
86 if (index != Menu1.INDEX6) {
\r
87 deleteButton.setEnabled(false);
\r
89 } catch (JmException e) {
\r
90 showDialog(this, e);
\r
95 heightTextView.setText(String.valueOf(getTextValue(heightSeekBar
\r
97 dwellTextView.setText(String.valueOf(getTextValue(dwellSeekBar
\r
99 speedSeekBar.setProgress(getProgressValue(Resource.speed));
\r
100 speedTextView.setText(String.valueOf(getTextValue(speedSeekBar
\r
106 private void setListener() {
\r
107 patternEdit.setOnEditorActionListener(new OnEditorActionListener() {
\r
109 public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
\r
114 heightSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
\r
116 public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
\r
117 heightTextView.setText(String.valueOf(getTextValue(arg1)));
\r
121 public void onStartTrackingTouch(SeekBar seekBar) {
\r
126 public void onStopTrackingTouch(SeekBar seekBar) {
\r
131 dwellSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
\r
133 public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
\r
134 dwellTextView.setText(String.valueOf(getTextValue(arg1)));
\r
138 public void onStartTrackingTouch(SeekBar seekBar) {
\r
143 public void onStopTrackingTouch(SeekBar seekBar) {
\r
148 speedSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
\r
150 public void onProgressChanged(SeekBar seekBar, int progress,
\r
151 boolean fromUser) {
\r
152 speedTextView.setText(String.valueOf(getTextValue(progress)));
\r
157 public void onStartTrackingTouch(SeekBar seekBar) {
\r
162 public void onStopTrackingTouch(SeekBar seekBar) {
\r
167 okButton.setOnClickListener(new OnClickListener() {
\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
177 if (!JmPattern.setSiteSwap(siteswapString)) {
\r
178 showDialog(getString(R.string.siteswap_error),
\r
179 getString(R.string.siteswap) + "[" + siteswapString
\r
184 String patternString = patternEdit.getText().toString();
\r
185 if (patternString == null || patternString.length() <= 0) {
\r
186 patternString = siteswapString;
\r
189 String motionString = motionEdit.getText().toString();
\r
190 if (motionString == null || motionString.length() <= 0) {
\r
191 motionString = "{13,0}{4,0}";
\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
202 JmPattern jp = new JmPattern(id, type, patternString,
\r
203 siteswapString, getTextValue(heightSeekBar
\r
204 .getProgress()), getTextValue(dwellSeekBar
\r
205 .getProgress()), motion);
\r
207 Dao dao = Dao.getInstance();
\r
209 int m = dao.max(type);
\r
210 dao.add(jp, m + 1);
\r
214 Resource.speed = getTextValue(speedSeekBar.getProgress());
\r
215 } catch (JmException e) {
\r
216 showDialog(this, e);
\r
223 deleteButton.setOnClickListener(new OnClickListener() {
\r
225 public void onClick(View arg0) {
\r
226 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
\r
228 alertDialogBuilder.setTitle(getString(R.string.title_delete));
\r
230 .setMessage(getString(R.string.message_delete_pattern));
\r
231 alertDialogBuilder.setPositiveButton(android.R.string.ok,
\r
232 new DialogInterface.OnClickListener() {
\r
234 public void onClick(DialogInterface dialog,
\r
237 Dao.getInstance().delete(id);
\r
239 } catch (JmException e) {
\r
240 showDialog(this, e);
\r
245 alertDialogBuilder.setNeutralButton(android.R.string.no,
\r
246 new DialogInterface.OnClickListener() {
\r
248 public void onClick(DialogInterface dialog,
\r
252 alertDialogBuilder.setCancelable(true);
\r
253 AlertDialog alertDialog = alertDialogBuilder.create();
\r
254 alertDialog.show();
\r
258 cancelButton.setOnClickListener(new OnClickListener() {
\r
260 public void onClick(View arg0) {
\r
266 private int getTextValue(int val) {
\r
270 private int getProgressValue(int val) {
\r