create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / motor / MotorDetailsFragment.java
1 package net.sf.openrocket.android.motor;\r
2 \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.unit.UnitGroup;\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.EditText;\r
13 \r
14 public class MotorDetailsFragment extends DialogFragment {\r
15 \r
16         EditText manuField;\r
17         EditText nameField;\r
18         EditText delaysField;\r
19         EditText caseField;\r
20         EditText impulseClassField;\r
21         EditText diameterField;\r
22         EditText lengthField;\r
23 \r
24         ExtendedThrustCurveMotor motor;\r
25 \r
26         public static MotorDetailsFragment newInstance( long motorId ) {\r
27                 MotorDetailsFragment fragment = new MotorDetailsFragment();\r
28                 Bundle b = new Bundle();\r
29                 b.putLong("motorId", motorId);\r
30                 fragment.setArguments(b);\r
31                 return fragment;\r
32         }\r
33 \r
34         @Override\r
35         public void onCreate(Bundle savedInstanceState) {\r
36                 super.onCreate(savedInstanceState);\r
37                 setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());\r
38 \r
39                 Long motorId;\r
40                 if ( savedInstanceState != null ) {\r
41                         motorId = savedInstanceState.getLong("motorId");\r
42                 } else {\r
43                         Bundle b = getArguments();\r
44                         motorId = b.getLong("motorId");\r
45                 }\r
46                 DbAdapter mDbHelper = new DbAdapter(getActivity());\r
47                 mDbHelper.open();\r
48                 try {\r
49                         motor = mDbHelper.getMotorDao().fetchMotor(motorId);\r
50                 } catch ( Exception e ) {\r
51                 }\r
52                 mDbHelper.close();\r
53         }\r
54 \r
55         @Override\r
56         public void onSaveInstanceState(Bundle arg0) {\r
57                 super.onSaveInstanceState(arg0);\r
58                 arg0.putLong("motorId", motor.getId());\r
59         }\r
60 \r
61         @Override\r
62         public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
63                         Bundle savedInstanceState) {\r
64                 View v = inflater.inflate(R.layout.motor_detail_form, container, false);\r
65                 manuField = (EditText) v.findViewById(R.id.motorDetailsManufacturer);\r
66                 nameField = (EditText) v.findViewById(R.id.motorDetailsName);\r
67                 delaysField = (EditText) v.findViewById(R.id.motorDetailsDelays);\r
68                 caseField = (EditText) v.findViewById(R.id.motorDetailsCaseInfo);\r
69                 impulseClassField = (EditText) v.findViewById(R.id.motorDetailsImpuseClass);\r
70                 diameterField = (EditText) v.findViewById(R.id.motorDetailsDiameter);\r
71                 lengthField = (EditText) v.findViewById(R.id.motorDetailsLength);\r
72                 init();\r
73                 /* TODO - enable saving.\r
74                 ((Button) v.findViewById(R.id.motorDetailsSaveButton)).setOnClickListener(\r
75                                 new View.OnClickListener() {\r
76                                         @Override\r
77                                         public void onClick(View v) {\r
78                                                 MotorDetailsFragment.this.saveChanges();\r
79                                         }\r
80                                 });\r
81                                 */\r
82                 return v;\r
83         }\r
84 \r
85         private void init( ) {\r
86                 manuField.setText( motor.getManufacturer().getDisplayName());\r
87                 nameField.setText( motor.getDesignation() );\r
88                 delaysField.setText( ConversionUtils.delaysToString(motor.getStandardDelays()) );\r
89                 caseField.setText( motor.getCaseInfo());\r
90                 impulseClassField.setText( motor.getImpulseClass());\r
91                 diameterField.setText( UnitGroup.UNITS_MOTOR_DIMENSIONS.toString(motor.getDiameter()) );\r
92                 lengthField.setText( UnitGroup.UNITS_LENGTH.getUnit("mm").toString(motor.getLength()) );\r
93         }\r
94 \r
95         private void saveChanges() {\r
96                 DbAdapter mDbHelper = new DbAdapter(getActivity());\r
97                 mDbHelper.open();\r
98                 try {\r
99                         mDbHelper.getMotorDao().insertOrUpdateMotor(motor);\r
100                 } catch ( Exception e ) {\r
101                 }\r
102 \r
103         }\r
104 }\r