--- /dev/null
+\r
+package net.sf.openrocket.android.simulation;\r
+\r
+import net.sf.openrocket.R;\r
+import net.sf.openrocket.android.CurrentRocketHolder;\r
+import net.sf.openrocket.android.rocket.MotorConfigSpinner;\r
+import net.sf.openrocket.android.simservice.SimulationService;\r
+import net.sf.openrocket.android.simservice.SimulationTask;\r
+import net.sf.openrocket.document.OpenRocketDocument;\r
+import net.sf.openrocket.document.Simulation;\r
+import net.sf.openrocket.simulation.SimulationOptions;\r
+import net.sf.openrocket.unit.UnitGroup;\r
+import android.os.Bundle;\r
+import android.support.v4.app.DialogFragment;\r
+import android.view.LayoutInflater;\r
+import android.view.View;\r
+import android.view.View.OnClickListener;\r
+import android.view.ViewGroup;\r
+import android.widget.Button;\r
+import android.widget.EditText;\r
+\r
+import com.actionbarsherlock.app.SherlockDialogFragment;\r
+\r
+/**\r
+ * An activity that encapsulates a graphical view of the chart.\r
+ */\r
+public class SimulationEditFragment extends SherlockDialogFragment {\r
+\r
+ private int simulationId;\r
+\r
+ private EditText windspeedField;\r
+ private EditText rodlengthField;\r
+ private EditText rodangleField;\r
+ private EditText roddirectionField;\r
+ private MotorConfigSpinner motorSpinner;\r
+\r
+ public static SimulationEditFragment newInstance( int simulationId ) {\r
+ SimulationEditFragment frag = new SimulationEditFragment();\r
+ Bundle b = new Bundle();\r
+ b.putInt("simulationId", simulationId);\r
+ frag.setArguments(b);\r
+ return frag;\r
+ }\r
+\r
+ @Override\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());\r
+\r
+ if ( savedInstanceState != null ) {\r
+ simulationId = savedInstanceState.getInt("simulationId");\r
+ } else {\r
+ Bundle b = getArguments();\r
+ simulationId = b.getInt("simulationId");\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
+ Bundle savedInstanceState) {\r
+ View v = inflater.inflate(R.layout.simulation_condition_dialog, container, false);\r
+ \r
+ Button deleteButton = (Button) v.findViewById(R.id.simulationConditionDelete);\r
+ deleteButton.setOnClickListener( new OnClickListener() {\r
+ @Override\r
+ public void onClick(View v) {\r
+ onDelete();\r
+ }\r
+ });\r
+ \r
+ Button runButton = (Button) v.findViewById(R.id.simulationConditionRun);\r
+ runButton.setOnClickListener( new OnClickListener() {\r
+ @Override\r
+ public void onClick(View v) {\r
+ onRun();\r
+ }\r
+ });\r
+\r
+ windspeedField = (EditText) v.findViewById(R.id.simulation_condition_windspeed);\r
+ rodlengthField = (EditText) v.findViewById(R.id.simulation_condition_rodlength);\r
+ rodangleField = (EditText) v.findViewById(R.id.simulation_condition_rodangle);\r
+ roddirectionField = (EditText) v.findViewById(R.id.simulation_condition_roddirection);\r
+\r
+ motorSpinner = (MotorConfigSpinner) v.findViewById(R.id.simulationConditionConfigurationSpinner);\r
+\r
+ OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();\r
+\r
+ motorSpinner.createAdapter(rocketDocument.getRocket());\r
+\r
+ Simulation sim = rocketDocument.getSimulation(simulationId);\r
+\r
+ SimulationOptions options = sim.getOptions();\r
+ if ( options != null ) {\r
+ windspeedField.setText( UnitGroup.UNITS_VELOCITY.toString( options.getWindSpeedAverage() ));\r
+ rodlengthField.setText( UnitGroup.UNITS_LENGTH.toString( options.getLaunchRodLength() ));\r
+ rodangleField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodAngle() ));\r
+ roddirectionField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodDirection() ));\r
+ motorSpinner.setSelectedConfiguration(options.getMotorConfigurationID());\r
+ }\r
+\r
+ return v;\r
+ }\r
+\r
+ @Override\r
+ public void onSaveInstanceState(Bundle outState) {\r
+ super.onSaveInstanceState(outState);\r
+ outState.putInt("simulationId", simulationId);\r
+\r
+ }\r
+\r
+ public void onDelete( ) {\r
+ CurrentRocketHolder.getCurrentRocket().deleteSimulation(getActivity(), simulationId);\r
+ getDialog().dismiss();\r
+ }\r
+ \r
+ public void onRun() {\r
+ \r
+ OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();\r
+ Simulation sim = rocketDocument.getSimulation(simulationId);\r
+ SimulationOptions options = sim.getOptions();\r
+\r
+ options.setWindSpeedAverage( UnitGroup.UNITS_VELOCITY.fromUnit(Double.parseDouble( windspeedField.getText().toString() )));\r
+ options.setLaunchRodLength( UnitGroup.UNITS_LENGTH.fromUnit(Double.parseDouble( rodlengthField.getText().toString() )));\r
+ options.setLaunchRodAngle( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( rodangleField.getText().toString() )));\r
+ options.setLaunchRodDirection( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( roddirectionField.getText().toString() )));\r
+ options.setMotorConfigurationID( motorSpinner.getSelectedConfiguration() );\r
+ \r
+ SimulationTask t = new SimulationTask(simulationId);\r
+ SimulationService.executeSimulationTask(getActivity(), t);\r
+ getDialog().dismiss();\r
+ }\r
+}
\ No newline at end of file