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
\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