2 package net.sf.openrocket.android.simulation;
\r
4 import net.sf.openrocket.R;
\r
5 import net.sf.openrocket.android.CurrentRocketHolder;
\r
6 import net.sf.openrocket.android.rocket.MotorConfigSpinner;
\r
7 import net.sf.openrocket.android.simservice.SimulationService;
\r
8 import net.sf.openrocket.android.simservice.SimulationTask;
\r
9 import net.sf.openrocket.document.OpenRocketDocument;
\r
10 import net.sf.openrocket.document.Simulation;
\r
11 import net.sf.openrocket.simulation.SimulationOptions;
\r
12 import net.sf.openrocket.unit.UnitGroup;
\r
13 import android.os.Bundle;
\r
14 import android.support.v4.app.DialogFragment;
\r
15 import android.view.LayoutInflater;
\r
16 import android.view.View;
\r
17 import android.view.View.OnClickListener;
\r
18 import android.view.ViewGroup;
\r
19 import android.widget.Button;
\r
20 import android.widget.EditText;
\r
22 import com.actionbarsherlock.app.SherlockDialogFragment;
\r
25 * An activity that encapsulates a graphical view of the chart.
\r
27 public class SimulationEditFragment extends SherlockDialogFragment {
\r
29 private int simulationId;
\r
31 private EditText windspeedField;
\r
32 private EditText rodlengthField;
\r
33 private EditText rodangleField;
\r
34 private EditText roddirectionField;
\r
35 private MotorConfigSpinner motorSpinner;
\r
37 public static SimulationEditFragment newInstance( int simulationId ) {
\r
38 SimulationEditFragment frag = new SimulationEditFragment();
\r
39 Bundle b = new Bundle();
\r
40 b.putInt("simulationId", simulationId);
\r
41 frag.setArguments(b);
\r
46 public void onCreate(Bundle savedInstanceState) {
\r
47 super.onCreate(savedInstanceState);
\r
48 setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());
\r
50 if ( savedInstanceState != null ) {
\r
51 simulationId = savedInstanceState.getInt("simulationId");
\r
53 Bundle b = getArguments();
\r
54 simulationId = b.getInt("simulationId");
\r
59 public View onCreateView(LayoutInflater inflater, ViewGroup container,
\r
60 Bundle savedInstanceState) {
\r
61 View v = inflater.inflate(R.layout.simulation_condition_dialog, container, false);
\r
63 Button deleteButton = (Button) v.findViewById(R.id.simulationConditionDelete);
\r
64 deleteButton.setOnClickListener( new OnClickListener() {
\r
66 public void onClick(View v) {
\r
71 Button runButton = (Button) v.findViewById(R.id.simulationConditionRun);
\r
72 runButton.setOnClickListener( new OnClickListener() {
\r
74 public void onClick(View v) {
\r
79 windspeedField = (EditText) v.findViewById(R.id.simulation_condition_windspeed);
\r
80 rodlengthField = (EditText) v.findViewById(R.id.simulation_condition_rodlength);
\r
81 rodangleField = (EditText) v.findViewById(R.id.simulation_condition_rodangle);
\r
82 roddirectionField = (EditText) v.findViewById(R.id.simulation_condition_roddirection);
\r
84 motorSpinner = (MotorConfigSpinner) v.findViewById(R.id.simulationConditionConfigurationSpinner);
\r
86 OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();
\r
88 motorSpinner.createAdapter(rocketDocument.getRocket());
\r
90 Simulation sim = rocketDocument.getSimulation(simulationId);
\r
92 SimulationOptions options = sim.getOptions();
\r
93 if ( options != null ) {
\r
94 windspeedField.setText( UnitGroup.UNITS_VELOCITY.toString( options.getWindSpeedAverage() ));
\r
95 rodlengthField.setText( UnitGroup.UNITS_LENGTH.toString( options.getLaunchRodLength() ));
\r
96 rodangleField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodAngle() ));
\r
97 roddirectionField.setText( UnitGroup.UNITS_ANGLE.toString( options.getLaunchRodDirection() ));
\r
98 motorSpinner.setSelectedConfiguration(options.getMotorConfigurationID());
\r
105 public void onSaveInstanceState(Bundle outState) {
\r
106 super.onSaveInstanceState(outState);
\r
107 outState.putInt("simulationId", simulationId);
\r
111 public void onDelete( ) {
\r
112 CurrentRocketHolder.getCurrentRocket().deleteSimulation(getActivity(), simulationId);
\r
113 getDialog().dismiss();
\r
116 public void onRun() {
\r
118 OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();
\r
119 Simulation sim = rocketDocument.getSimulation(simulationId);
\r
120 SimulationOptions options = sim.getOptions();
\r
122 options.setWindSpeedAverage( UnitGroup.UNITS_VELOCITY.fromUnit(Double.parseDouble( windspeedField.getText().toString() )));
\r
123 options.setLaunchRodLength( UnitGroup.UNITS_LENGTH.fromUnit(Double.parseDouble( rodlengthField.getText().toString() )));
\r
124 options.setLaunchRodAngle( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( rodangleField.getText().toString() )));
\r
125 options.setLaunchRodDirection( UnitGroup.UNITS_ANGLE.fromUnit(Double.parseDouble( roddirectionField.getText().toString() )));
\r
126 options.setMotorConfigurationID( motorSpinner.getSelectedConfiguration() );
\r
128 SimulationTask t = new SimulationTask(simulationId);
\r
129 SimulationService.executeSimulationTask(getActivity(), t);
\r
130 getDialog().dismiss();
\r