create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / simulation / SimulationEventsDialog.java
1 package net.sf.openrocket.android.simulation;\r
2 \r
3 import java.util.List;\r
4 \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
20 \r
21 public class SimulationEventsDialog extends DialogFragment {\r
22 \r
23         private SimulationChart chart;\r
24         private TableLayout eventList;\r
25 \r
26         public static SimulationEventsDialog newInstance( SimulationChart chart ) {\r
27                 SimulationEventsDialog d = new SimulationEventsDialog();\r
28                 d.chart = chart;\r
29                 return d;\r
30         }\r
31 \r
32         @Override\r
33         public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\r
34 \r
35                 View v = inflater.inflate(R.layout.simulation_event_dialog, container, false);\r
36 \r
37                 eventList = (TableLayout) v.findViewById(R.id.simulationEventsList);\r
38                 eventList.setColumnShrinkable(0, true);\r
39 \r
40                 final OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();\r
41 \r
42                 List<FlightEvent> events = chart.getFlightDataBranch(rocketDocument).getEvents();\r
43                 \r
44                 for ( FlightEvent event : events ) {\r
45 \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
49                         \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
53 \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
56 \r
57                         eventList.addView( tableRow );\r
58                 }\r
59                 \r
60                 return v;\r
61         }\r
62 \r
63         @Override\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
68                 }\r
69         }\r
70 \r
71         @Override\r
72         public void onSaveInstanceState(Bundle arg0) {\r
73                 super.onSaveInstanceState(arg0);\r
74                 arg0.putSerializable("chart", chart);\r
75         }\r
76 \r
77 \r
78 }\r