Added local foreground service which runs simulations. Wired into the SimulationEdit...
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / SimulationEditFragment.java
index bb28281d72ace59d4bdd593e24a4a312248bdffe..01706658ee17fa9b50e4c2401facb111646ce47e 100644 (file)
@@ -3,6 +3,8 @@ package net.sf.openrocket.android.rocket;
 \r
 import net.sf.openrocket.R;\r
 import net.sf.openrocket.android.CurrentRocketHolder;\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
@@ -59,13 +61,20 @@ public class SimulationEditFragment extends SherlockDialogFragment {
                \r
                Button deleteButton = (Button) v.findViewById(R.id.simulationConditionDelete);\r
                deleteButton.setOnClickListener( new OnClickListener() {\r
-\r
                        @Override\r
                        public void onClick(View v) {\r
                                onDelete();\r
                        }\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
@@ -83,8 +92,8 @@ public class SimulationEditFragment extends SherlockDialogFragment {
                if ( options != null ) {\r
                        windspeedField.setText( UnitGroup.UNITS_VELOCITY.toString( options.getWindSpeedAverage() ));\r
                        rodlengthField.setText( UnitGroup.UNITS_LENGTH.toString( options.getLaunchRodLength() ));\r
-                       rodangleField.setText( String.valueOf( options.getLaunchRodLength() ));\r
-                       roddirectionField.setText( String.valueOf( options.getLaunchRodDirection() ));\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
@@ -103,4 +112,20 @@ public class SimulationEditFragment extends SherlockDialogFragment {
                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