Version für alte Androidversionen der Visiereinstellung für Recurvebogen.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

RiserConfigurationActivity.java 9.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. /**
  2. * Copyright (C) 2005-2012 XELOG AG
  3. */
  4. package ch.spherIC.recurvebowsight.configuration;
  5. import android.app.Activity;
  6. import android.app.AlertDialog;
  7. import android.app.Dialog;
  8. import android.content.DialogInterface;
  9. import android.content.pm.ActivityInfo;
  10. import android.os.Bundle;
  11. import android.view.Gravity;
  12. import android.view.Menu;
  13. import android.view.MenuItem;
  14. import android.view.View;
  15. import android.view.View.OnClickListener;
  16. import android.widget.AdapterView;
  17. import android.widget.AdapterView.OnItemSelectedListener;
  18. import android.widget.Button;
  19. import android.widget.TextView;
  20. import android.widget.Toast;
  21. import ch.spherIC.recurvebowsight.DialogFactory;
  22. import ch.spherIC.recurvebowsight.R;
  23. import ch.spherIC.recurvebowsight.RBSMainActivity;
  24. import ch.spherIC.recurvebowsight.components.FontArrayAdapter;
  25. import ch.spherIC.recurvebowsight.components.RiserSpinner;
  26. import ch.spherIC.recurvebowsight.database.dao.RiserDao;
  27. import ch.spherIC.recurvebowsight.model.IRiser;
  28. import ch.spherIC.recurvebowsight.model.Riser;
  29. import ch.spherIC.recurvebowsight.utilities.CompatibilityUtil;
  30. import ch.spherIC.recurvebowsight.utilities.PlatformUtils;
  31. import java.text.DecimalFormat;
  32. import java.util.List;
  33. /**
  34. * @author FC Smilari
  35. */
  36. public class RiserConfigurationActivity extends Activity {
  37. public static final DecimalFormat DF = new DecimalFormat("0.##");
  38. private RiserSpinner rcRiserSpinner;
  39. private TextView rcManufacturerTxtFld;
  40. private TextView rcModelTxtFld;
  41. private TextView rcSizeTxtFld;
  42. private TextView rcVvisHTxtFld;
  43. private TextView rcVvisVTxtFld;
  44. private Button newBtn;
  45. private Button saveBtn;
  46. private Button deleteBtn;
  47. private IRiser selectedRiser;
  48. @Override
  49. protected void onCreate(final Bundle savedInstanceState) {
  50. super.onCreate(savedInstanceState);
  51. setContentView(R.layout.rbs_riser_config);
  52. if (CompatibilityUtil.isTablet(getApplicationContext())) {
  53. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  54. } else {
  55. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  56. }
  57. initializeComponents();
  58. addRiserSpinnerListener();
  59. addButtonListeners();
  60. loadRiserSpinner();
  61. }
  62. private void loadRiserSpinner() {
  63. List<IRiser> risers = RiserDao.getInstance().loadAll();
  64. this.rcRiserSpinner.setAdapter(new FontArrayAdapter<IRiser>(this, R.layout.rbs_spinner, risers,
  65. this.rcRiserSpinner));
  66. }
  67. private void initializeComponents() {
  68. this.rcRiserSpinner = (RiserSpinner) findViewById(R.id.rcRiserSpinner);
  69. this.rcManufacturerTxtFld = (TextView) findViewById(R.id.rcManufacturerTxtFld);
  70. this.rcModelTxtFld = (TextView) findViewById(R.id.rcModelTxtFld);
  71. this.rcSizeTxtFld = (TextView) findViewById(R.id.rcSizeTxtFld);
  72. this.rcVvisHTxtFld = (TextView) findViewById(R.id.rcVvisHTxtFld);
  73. this.rcVvisVTxtFld = (TextView) findViewById(R.id.rcVvisVTxtFld);
  74. this.newBtn = (Button) findViewById(R.id.rcBtnNew);
  75. this.saveBtn = (Button) findViewById(R.id.rcBtnSave);
  76. this.deleteBtn = (Button) findViewById(R.id.rcBtnDelete);
  77. }
  78. private void addRiserSpinnerListener() {
  79. this.rcRiserSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
  80. @Override
  81. public void onItemSelected(final AdapterView<?> parent, final View view, final int position,
  82. final long id) {
  83. IRiser riser = RiserConfigurationActivity.this.rcRiserSpinner.getSelectedRiser();
  84. RiserConfigurationActivity.this.rcManufacturerTxtFld.setText(riser.getManufacturer());
  85. RiserConfigurationActivity.this.rcModelTxtFld.setText(riser.getModel());
  86. RiserConfigurationActivity.this.rcSizeTxtFld.setText(DF.format(riser.getSize()));
  87. RiserConfigurationActivity.this.rcVvisHTxtFld.setText(DF.format(riser.getVVisH()));
  88. RiserConfigurationActivity.this.rcVvisVTxtFld.setText(DF.format(riser.getVVisV()));
  89. RiserConfigurationActivity.this.selectedRiser = riser;
  90. }
  91. @Override
  92. public void onNothingSelected(final AdapterView<?> parent) { }
  93. });
  94. }
  95. private void addButtonListeners() {
  96. this.newBtn.setOnClickListener(new OnClickListener() {
  97. @Override
  98. public void onClick(final View v) {
  99. onNewRiser();
  100. }
  101. });
  102. this.saveBtn.setOnClickListener(new OnClickListener() {
  103. @Override
  104. public void onClick(final View v) {
  105. onSaveRiser();
  106. }
  107. });
  108. this.deleteBtn.setOnClickListener(new OnClickListener() {
  109. @Override
  110. public void onClick(final View v) {
  111. onDeleteRiser();
  112. }
  113. });
  114. }
  115. /**
  116. * Löschen.
  117. */
  118. protected void onDeleteRiser() {
  119. if (this.selectedRiser != null) {
  120. android.content.DialogInterface.OnClickListener deleteBtnListener = new android.content.DialogInterface.OnClickListener() {
  121. @Override
  122. public void onClick(final DialogInterface dialog, final int which) {
  123. try {
  124. RiserDao.getInstance().delete(RiserConfigurationActivity.this.selectedRiser);
  125. loadRiserSpinner();
  126. } catch (Exception e) {
  127. Toast toast = Toast.makeText(RiserConfigurationActivity.this,
  128. getResources().getString(R.string.caption_Cfg_DeleteNotPossible), Toast.LENGTH_LONG);
  129. toast.setGravity(Gravity.CENTER, 0, 0);
  130. toast.show();
  131. }
  132. }
  133. };
  134. AlertDialog dlg = PlatformUtils.getDeleteConfirmDialog(this, this.selectedRiser.toString(), deleteBtnListener);
  135. dlg.show();
  136. }
  137. }
  138. /**
  139. * Speichern.
  140. */
  141. protected void onSaveRiser() {
  142. if (this.selectedRiser != null) {
  143. if (!this.rcManufacturerTxtFld.getText().toString().isEmpty() && !this.rcModelTxtFld.getText().toString().isEmpty()
  144. && !this.rcSizeTxtFld.getText().toString().isEmpty() && !this.rcVvisHTxtFld.getText().toString().isEmpty()
  145. && !this.rcVvisVTxtFld.getText().toString().isEmpty()) {
  146. this.selectedRiser.setManufacturer(this.rcManufacturerTxtFld.getText().toString());
  147. this.selectedRiser.setModel(this.rcModelTxtFld.getText().toString());
  148. this.selectedRiser.setSize(Double.valueOf(this.rcSizeTxtFld.getText().toString()));
  149. this.selectedRiser.setVVisH(Double.valueOf(this.rcVvisHTxtFld.getText().toString()));
  150. this.selectedRiser.setVVisV(Double.valueOf(this.rcVvisVTxtFld.getText().toString()));
  151. if (this.selectedRiser.getId() > 0) {
  152. RiserDao.getInstance().update(this.selectedRiser);
  153. } else {
  154. this.selectedRiser = RiserDao.getInstance().insert(this.selectedRiser);
  155. loadRiserSpinner();
  156. this.rcRiserSpinner.setSelectedRiser(this.selectedRiser);
  157. }
  158. setResult(1);
  159. } else {
  160. Toast toast = Toast.makeText(this, getResources().getString(R.string.caption_Cfg_FillAllMandatoryFields), Toast.LENGTH_LONG);
  161. toast.setGravity(Gravity.CENTER, 0, 0);
  162. toast.show();
  163. }
  164. }
  165. }
  166. /**
  167. * Einfügen.
  168. */
  169. @SuppressWarnings("unchecked")
  170. protected void onNewRiser() {
  171. IRiser newRiser = new Riser(0, "*", "*", 0d, 0d, 0d);
  172. this.selectedRiser = newRiser;
  173. ((FontArrayAdapter<IRiser>) this.rcRiserSpinner.getAdapter()).add(newRiser);
  174. this.rcRiserSpinner.setSelectedRiser(newRiser);
  175. this.rcManufacturerTxtFld.setText("");
  176. this.rcModelTxtFld.setText("");
  177. this.rcSizeTxtFld.setText("");
  178. this.rcVvisHTxtFld.setText("");
  179. this.rcVvisVTxtFld.setText("");
  180. }
  181. @Override
  182. public boolean onCreateOptionsMenu(final Menu menu) {
  183. getMenuInflater().inflate(R.menu.rbs_info_menu, menu);
  184. return super.onCreateOptionsMenu(menu);
  185. }
  186. @Override
  187. public boolean onOptionsItemSelected(final MenuItem item) {
  188. // Handle item selection
  189. switch (item.getItemId()) {
  190. case R.id.itemAbout:
  191. showDialog(RBSMainActivity.DLG_ABOUT);
  192. return true;
  193. case R.id.itemUserGuide:
  194. showDialog(RBSMainActivity.DLG_USERGUIDE_RISER_CFG);
  195. return true;
  196. default:
  197. return super.onOptionsItemSelected(item);
  198. }
  199. }
  200. @Override
  201. protected Dialog onCreateDialog(final int id) {
  202. return DialogFactory.createDialog(id, this);
  203. }
  204. }