Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / android / src / net / sf / openrocket / android / simulation / SimulationEventsDialog.java
index 21a7e78d9454b68b51135d2b8ef05e792e0b08a9..8fc0d1ba9e1b97d000931ef8e7188cc95d152122 100644 (file)
@@ -1,22 +1,27 @@
 package net.sf.openrocket.android.simulation;\r
 \r
+import java.util.List;\r
+\r
 import net.sf.openrocket.R;\r
-import net.sf.openrocket.android.Application;\r
+import net.sf.openrocket.android.CurrentRocketHolder;\r
 import net.sf.openrocket.document.OpenRocketDocument;\r
+import net.sf.openrocket.simulation.FlightDataBranch;\r
+import net.sf.openrocket.simulation.FlightDataType;\r
 import net.sf.openrocket.simulation.FlightEvent;\r
+import net.sf.openrocket.unit.UnitGroup;\r
+import net.sf.openrocket.util.MathUtil;\r
 import android.os.Bundle;\r
 import android.support.v4.app.DialogFragment;\r
 import android.view.LayoutInflater;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
-import android.widget.ArrayAdapter;\r
-import android.widget.ListView;\r
+import android.widget.TableLayout;\r
 import android.widget.TextView;\r
 \r
 public class SimulationEventsDialog extends DialogFragment {\r
 \r
        private SimulationChart chart;\r
-       private ListView eventList;\r
+       private TableLayout eventList;\r
 \r
        public static SimulationEventsDialog newInstance( SimulationChart chart ) {\r
                SimulationEventsDialog d = new SimulationEventsDialog();\r
@@ -29,32 +34,29 @@ public class SimulationEventsDialog extends DialogFragment {
 \r
                View v = inflater.inflate(R.layout.simulation_event_dialog, container, false);\r
 \r
-               eventList = (ListView) v.findViewById(R.id.simulationEventsList);\r
-\r
-               OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();\r
-               // Initialize the eventList\r
-               ArrayAdapter<FlightEvent> events = new ArrayAdapter<FlightEvent>(\r
-                               getActivity(),\r
-                               android.R.layout.simple_list_item_1,\r
-                               chart.getFlightDataBranch(rocketDocument).getEvents() ) {\r
-\r
-                       @Override\r
-                       public View getView(int position, View convertView,\r
-                                       ViewGroup parent) {\r
-                               View v = convertView;\r
-                               if ( v == null ) {\r
-                                       LayoutInflater li = inflater;\r
-                                       v = li.inflate(android.R.layout.simple_list_item_1,null);\r
-                               }\r
-                               FlightEvent event = this.getItem(position);\r
-                               ((TextView)v.findViewById(android.R.id.text1)).setText( event.getType().toString() + " " + event.getTime() + " (s)" );\r
-                               return v;\r
-                       }\r
-\r
-               };\r
-               // Events are not selectable for plotting right now.\r
-               //eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);\r
-               eventList.setAdapter(events);\r
+               eventList = (TableLayout) v.findViewById(R.id.simulationEventsList);\r
+               eventList.setColumnShrinkable(0, true);\r
+\r
+               final OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();\r
+\r
+               List<FlightEvent> events = chart.getFlightDataBranch(rocketDocument).getEvents();\r
+               \r
+               for ( FlightEvent event : events ) {\r
+\r
+                       View tableRow = inflater.inflate(R.layout.simulation_event_item,null);\r
+                       ((TextView)tableRow.findViewById(R.id.eventName)).setText( event.getType().toString() );\r
+                       ((TextView)tableRow.findViewById(R.id.eventTime)).setText( event.getTime() + " (s)" );\r
+                       \r
+                       FlightDataBranch data = chart.getFlightDataBranch(rocketDocument);\r
+                       double vel = MathUtil.interpolate(data.get(FlightDataType.TYPE_TIME), data.get(FlightDataType.TYPE_VELOCITY_TOTAL), event.getTime());\r
+                       ((TextView)tableRow.findViewById(R.id.eventVelocity)).setText( UnitGroup.UNITS_VELOCITY.getDefaultUnit().toStringUnit(vel) );\r
+\r
+                       double alt = MathUtil.interpolate(data.get(FlightDataType.TYPE_TIME), data.get(FlightDataType.TYPE_ALTITUDE), event.getTime());\r
+                       ((TextView)tableRow.findViewById(R.id.eventAltitude)).setText( UnitGroup.UNITS_DISTANCE.getDefaultUnit().toStringUnit(alt) );\r
+\r
+                       eventList.addView( tableRow );\r
+               }\r
+               \r
                return v;\r
        }\r
 \r