\r
import net.sf.openrocket.R;\r
import net.sf.openrocket.android.db.ConversionUtils;\r
-import net.sf.openrocket.motor.ThrustCurveMotor;\r
+import net.sf.openrocket.android.db.DbAdapter;\r
+import net.sf.openrocket.unit.UnitGroup;\r
import android.os.Bundle;\r
-import android.support.v4.app.Fragment;\r
+import android.support.v4.app.DialogFragment;\r
import android.view.LayoutInflater;\r
import android.view.View;\r
import android.view.ViewGroup;\r
import android.widget.EditText;\r
\r
-public class MotorDetailsFragment extends Fragment {\r
+public class MotorDetailsFragment extends DialogFragment {\r
\r
EditText manuField;\r
EditText nameField;\r
EditText impulseClassField;\r
EditText diameterField;\r
EditText lengthField;\r
- \r
+\r
+ ExtendedThrustCurveMotor motor;\r
+\r
+ public static MotorDetailsFragment newInstance( long motorId ) {\r
+ MotorDetailsFragment fragment = new MotorDetailsFragment();\r
+ Bundle b = new Bundle();\r
+ b.putLong("motorId", motorId);\r
+ fragment.setArguments(b);\r
+ return fragment;\r
+ }\r
+\r
+ @Override\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());\r
+\r
+ Long motorId;\r
+ if ( savedInstanceState != null ) {\r
+ motorId = savedInstanceState.getLong("motorId");\r
+ } else {\r
+ Bundle b = getArguments();\r
+ motorId = b.getLong("motorId");\r
+ }\r
+ DbAdapter mDbHelper = new DbAdapter(getActivity());\r
+ mDbHelper.open();\r
+ try {\r
+ motor = mDbHelper.getMotorDao().fetchMotor(motorId);\r
+ } catch ( Exception e ) {\r
+ }\r
+ mDbHelper.close();\r
+ }\r
+\r
+ @Override\r
+ public void onSaveInstanceState(Bundle arg0) {\r
+ super.onSaveInstanceState(arg0);\r
+ arg0.putLong("motorId", motor.getId());\r
+ }\r
+\r
@Override\r
public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
Bundle savedInstanceState) {\r
impulseClassField = (EditText) v.findViewById(R.id.motorDetailsImpuseClass);\r
diameterField = (EditText) v.findViewById(R.id.motorDetailsDiameter);\r
lengthField = (EditText) v.findViewById(R.id.motorDetailsLength);\r
+ init();\r
+ /* TODO - enable saving.\r
+ ((Button) v.findViewById(R.id.motorDetailsSaveButton)).setOnClickListener(\r
+ new View.OnClickListener() {\r
+ @Override\r
+ public void onClick(View v) {\r
+ MotorDetailsFragment.this.saveChanges();\r
+ }\r
+ });\r
+ */\r
return v;\r
}\r
\r
- public void init( ExtendedThrustCurveMotor m ) {\r
- ThrustCurveMotor tcm = m.getThrustCurveMotor();\r
- manuField.setText( tcm.getManufacturer().getDisplayName());\r
- nameField.setText( tcm.getDesignation() );\r
- delaysField.setText( ConversionUtils.delaysToString(tcm.getStandardDelays()) );\r
- caseField.setText( m.getCaseInfo());\r
- impulseClassField.setText( m.getImpulseClass());\r
- diameterField.setText( String.valueOf(tcm.getDiameter()*1000.0) );\r
- lengthField.setText( String.valueOf(tcm.getLength()*1000.0) );\r
- \r
+ private void init( ) {\r
+ manuField.setText( motor.getManufacturer().getDisplayName());\r
+ nameField.setText( motor.getDesignation() );\r
+ delaysField.setText( ConversionUtils.delaysToString(motor.getStandardDelays()) );\r
+ caseField.setText( motor.getCaseInfo());\r
+ impulseClassField.setText( motor.getImpulseClass());\r
+ diameterField.setText( UnitGroup.UNITS_MOTOR_DIMENSIONS.toString(motor.getDiameter()) );\r
+ lengthField.setText( UnitGroup.UNITS_LENGTH.getUnit("mm").toString(motor.getLength()) );\r
+ }\r
+\r
+ private void saveChanges() {\r
+ DbAdapter mDbHelper = new DbAdapter(getActivity());\r
+ mDbHelper.open();\r
+ try {\r
+ mDbHelper.getMotorDao().insertOrUpdateMotor(motor);\r
+ } catch ( Exception e ) {\r
+ }\r
+\r
}\r
- \r
}\r