Version für alte Androidversionen der Visiereinstellung für Recurvebogen.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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. }