1 package net.sf.openrocket.android.simulation;
\r
3 import java.util.List;
\r
5 import net.sf.openrocket.R;
\r
6 import net.sf.openrocket.android.CurrentRocketHolder;
\r
7 import net.sf.openrocket.document.OpenRocketDocument;
\r
8 import net.sf.openrocket.simulation.FlightDataBranch;
\r
9 import net.sf.openrocket.simulation.FlightDataType;
\r
10 import net.sf.openrocket.simulation.FlightEvent;
\r
11 import net.sf.openrocket.unit.UnitGroup;
\r
12 import net.sf.openrocket.util.MathUtil;
\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.ViewGroup;
\r
18 import android.widget.TableLayout;
\r
19 import android.widget.TextView;
\r
21 public class SimulationEventsDialog extends DialogFragment {
\r
23 private SimulationChart chart;
\r
24 private TableLayout eventList;
\r
26 public static SimulationEventsDialog newInstance( SimulationChart chart ) {
\r
27 SimulationEventsDialog d = new SimulationEventsDialog();
\r
33 public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
\r
35 View v = inflater.inflate(R.layout.simulation_event_dialog, container, false);
\r
37 eventList = (TableLayout) v.findViewById(R.id.simulationEventsList);
\r
38 eventList.setColumnShrinkable(0, true);
\r
40 final OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();
\r
42 List<FlightEvent> events = chart.getFlightDataBranch(rocketDocument).getEvents();
\r
44 for ( FlightEvent event : events ) {
\r
46 View tableRow = inflater.inflate(R.layout.simulation_event_item,null);
\r
47 ((TextView)tableRow.findViewById(R.id.eventName)).setText( event.getType().toString() );
\r
48 ((TextView)tableRow.findViewById(R.id.eventTime)).setText( event.getTime() + " (s)" );
\r
50 FlightDataBranch data = chart.getFlightDataBranch(rocketDocument);
\r
51 double vel = MathUtil.interpolate(data.get(FlightDataType.TYPE_TIME), data.get(FlightDataType.TYPE_VELOCITY_TOTAL), event.getTime());
\r
52 ((TextView)tableRow.findViewById(R.id.eventVelocity)).setText( UnitGroup.UNITS_VELOCITY.getDefaultUnit().toStringUnit(vel) );
\r
54 double alt = MathUtil.interpolate(data.get(FlightDataType.TYPE_TIME), data.get(FlightDataType.TYPE_ALTITUDE), event.getTime());
\r
55 ((TextView)tableRow.findViewById(R.id.eventAltitude)).setText( UnitGroup.UNITS_DISTANCE.getDefaultUnit().toStringUnit(alt) );
\r
57 eventList.addView( tableRow );
\r
64 public void onCreate(Bundle savedInstanceState) {
\r
65 super.onCreate(savedInstanceState);
\r
66 if (savedInstanceState != null ) {
\r
67 chart = (SimulationChart) savedInstanceState.getSerializable("chart");
\r
72 public void onSaveInstanceState(Bundle arg0) {
\r
73 super.onSaveInstanceState(arg0);
\r
74 arg0.putSerializable("chart", chart);
\r