1 package net.sf.openrocket.android.motor;
\r
3 import net.sf.openrocket.R;
\r
4 import net.sf.openrocket.android.db.ConversionUtils;
\r
5 import net.sf.openrocket.android.db.DbAdapter;
\r
6 import net.sf.openrocket.motor.ThrustCurveMotor;
\r
7 import android.os.Bundle;
\r
8 import android.support.v4.app.DialogFragment;
\r
9 import android.view.LayoutInflater;
\r
10 import android.view.View;
\r
11 import android.view.ViewGroup;
\r
12 import android.widget.Button;
\r
13 import android.widget.EditText;
\r
15 public class MotorDetailsFragment extends DialogFragment {
\r
19 EditText delaysField;
\r
21 EditText impulseClassField;
\r
22 EditText diameterField;
\r
23 EditText lengthField;
\r
25 ExtendedThrustCurveMotor motor;
\r
27 public static MotorDetailsFragment newInstance( long motorId ) {
\r
28 MotorDetailsFragment fragment = new MotorDetailsFragment();
\r
29 Bundle b = new Bundle();
\r
30 b.putLong("motorId", motorId);
\r
31 fragment.setArguments(b);
\r
36 public void onCreate(Bundle savedInstanceState) {
\r
37 super.onCreate(savedInstanceState);
\r
38 setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());
\r
41 if ( savedInstanceState != null ) {
\r
42 motorId = savedInstanceState.getLong("motorId");
\r
44 Bundle b = getArguments();
\r
45 motorId = b.getLong("motorId");
\r
47 DbAdapter mDbHelper = new DbAdapter(getActivity());
\r
50 motor = mDbHelper.getMotorDao().fetchMotor(motorId);
\r
51 } catch ( Exception e ) {
\r
57 public void onSaveInstanceState(Bundle arg0) {
\r
58 super.onSaveInstanceState(arg0);
\r
59 arg0.putLong("motorId", motor.getId());
\r
63 public View onCreateView(LayoutInflater inflater, ViewGroup container,
\r
64 Bundle savedInstanceState) {
\r
65 View v = inflater.inflate(R.layout.motor_detail_form, container, false);
\r
66 manuField = (EditText) v.findViewById(R.id.motorDetailsManufacturer);
\r
67 nameField = (EditText) v.findViewById(R.id.motorDetailsName);
\r
68 delaysField = (EditText) v.findViewById(R.id.motorDetailsDelays);
\r
69 caseField = (EditText) v.findViewById(R.id.motorDetailsCaseInfo);
\r
70 impulseClassField = (EditText) v.findViewById(R.id.motorDetailsImpuseClass);
\r
71 diameterField = (EditText) v.findViewById(R.id.motorDetailsDiameter);
\r
72 lengthField = (EditText) v.findViewById(R.id.motorDetailsLength);
\r
74 /* TODO - enable saving.
\r
75 ((Button) v.findViewById(R.id.motorDetailsSaveButton)).setOnClickListener(
\r
76 new View.OnClickListener() {
\r
78 public void onClick(View v) {
\r
79 MotorDetailsFragment.this.saveChanges();
\r
86 private void init( ) {
\r
87 ThrustCurveMotor tcm = motor.getThrustCurveMotor();
\r
88 manuField.setText( tcm.getManufacturer().getDisplayName());
\r
89 nameField.setText( tcm.getDesignation() );
\r
90 delaysField.setText( ConversionUtils.delaysToString(tcm.getStandardDelays()) );
\r
91 caseField.setText( motor.getCaseInfo());
\r
92 impulseClassField.setText( motor.getImpulseClass());
\r
93 diameterField.setText( String.valueOf(tcm.getDiameter()*1000.0) );
\r
94 lengthField.setText( String.valueOf(tcm.getLength()*1000.0) );
\r
97 private void saveChanges() {
\r
98 DbAdapter mDbHelper = new DbAdapter(getActivity());
\r
101 mDbHelper.getMotorDao().insertOrUpdateMotor(motor);
\r
102 } catch ( Exception e ) {
\r