bb28281d72ace59d4bdd593e24a4a312248bdffe
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / SimulationEditFragment.java
1 \r
2 package net.sf.openrocket.android.rocket;\r
3 \r
4 import net.sf.openrocket.R;\r
5 import net.sf.openrocket.android.CurrentRocketHolder;\r
6 import net.sf.openrocket.document.OpenRocketDocument;\r
7 import net.sf.openrocket.document.Simulation;\r
8 import net.sf.openrocket.simulation.SimulationOptions;\r
9 import net.sf.openrocket.unit.UnitGroup;\r
10 import android.os.Bundle;\r
11 import android.support.v4.app.DialogFragment;\r
12 import android.view.LayoutInflater;\r
13 import android.view.View;\r
14 import android.view.View.OnClickListener;\r
15 import android.view.ViewGroup;\r
16 import android.widget.Button;\r
17 import android.widget.EditText;\r
18 \r
19 import com.actionbarsherlock.app.SherlockDialogFragment;\r
20 \r
21 /**\r
22  * An activity that encapsulates a graphical view of the chart.\r
23  */\r
24 public class SimulationEditFragment extends SherlockDialogFragment {\r
25 \r
26         private int simulationId;\r
27 \r
28         private EditText windspeedField;\r
29         private EditText rodlengthField;\r
30         private EditText rodangleField;\r
31         private EditText roddirectionField;\r
32         private MotorConfigSpinner motorSpinner;\r
33 \r
34         public static SimulationEditFragment newInstance( int simulationId ) {\r
35                 SimulationEditFragment frag = new SimulationEditFragment();\r
36                 Bundle b = new Bundle();\r
37                 b.putInt("simulationId", simulationId);\r
38                 frag.setArguments(b);\r
39                 return frag;\r
40         }\r
41 \r
42         @Override\r
43         public void onCreate(Bundle savedInstanceState) {\r
44                 super.onCreate(savedInstanceState);\r
45                 setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());\r
46 \r
47                 if ( savedInstanceState != null ) {\r
48                         simulationId = savedInstanceState.getInt("simulationId");\r
49                 } else {\r
50                         Bundle b = getArguments();\r
51                         simulationId = b.getInt("simulationId");\r
52                 }\r
53         }\r
54 \r
55         @Override\r
56         public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
57                         Bundle savedInstanceState) {\r
58                 View v = inflater.inflate(R.layout.simulation_condition_dialog, container, false);\r
59                 \r
60                 Button deleteButton = (Button) v.findViewById(R.id.simulationConditionDelete);\r
61                 deleteButton.setOnClickListener( new OnClickListener() {\r
62 \r
63                         @Override\r
64                         public void onClick(View v) {\r
65                                 onDelete();\r
66                         }\r
67                         \r
68                 });\r
69                 windspeedField = (EditText) v.findViewById(R.id.simulation_condition_windspeed);\r
70                 rodlengthField = (EditText) v.findViewById(R.id.simulation_condition_rodlength);\r
71                 rodangleField = (EditText) v.findViewById(R.id.simulation_condition_rodangle);\r
72                 roddirectionField = (EditText) v.findViewById(R.id.simulation_condition_roddirection);\r
73 \r
74                 motorSpinner = (MotorConfigSpinner) v.findViewById(R.id.simulationConditionConfigurationSpinner);\r
75 \r
76                 OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();\r
77 \r
78                 motorSpinner.createAdapter(rocketDocument.getRocket());\r
79 \r
80                 Simulation sim = rocketDocument.getSimulation(simulationId);\r
81 \r
82                 SimulationOptions options = sim.getOptions();\r
83                 if ( options != null ) {\r
84                         windspeedField.setText( UnitGroup.UNITS_VELOCITY.toString( options.getWindSpeedAverage() ));\r
85                         rodlengthField.setText( UnitGroup.UNITS_LENGTH.toString( options.getLaunchRodLength() ));\r
86                         rodangleField.setText( String.valueOf( options.getLaunchRodLength() ));\r
87                         roddirectionField.setText( String.valueOf( options.getLaunchRodDirection() ));\r
88                         motorSpinner.setSelectedConfiguration(options.getMotorConfigurationID());\r
89                 }\r
90 \r
91                 return v;\r
92         }\r
93 \r
94         @Override\r
95         public void onSaveInstanceState(Bundle outState) {\r
96                 super.onSaveInstanceState(outState);\r
97                 outState.putInt("simulationId", simulationId);\r
98 \r
99         }\r
100 \r
101         public void onDelete( ) {\r
102                 CurrentRocketHolder.getCurrentRocket().deleteSimulation(simulationId);\r
103                 getDialog().dismiss();\r
104         }\r
105         \r
106 }