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