X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=android%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fandroid%2Fsimulation%2FSimulationEventsDialog.java;h=5cbae80a581f886c054a2e426fc3720b7c518539;hb=fbf65f0ff8c033467c394e30753548249517de77;hp=21a7e78d9454b68b51135d2b8ef05e792e0b08a9;hpb=49257616b7cb126b121c8c276644b6fc5c0c93b1;p=debian%2Fopenrocket diff --git a/android/src/net/sf/openrocket/android/simulation/SimulationEventsDialog.java b/android/src/net/sf/openrocket/android/simulation/SimulationEventsDialog.java index 21a7e78d..5cbae80a 100644 --- a/android/src/net/sf/openrocket/android/simulation/SimulationEventsDialog.java +++ b/android/src/net/sf/openrocket/android/simulation/SimulationEventsDialog.java @@ -1,22 +1,27 @@ package net.sf.openrocket.android.simulation; +import java.util.List; + import net.sf.openrocket.R; import net.sf.openrocket.android.Application; import net.sf.openrocket.document.OpenRocketDocument; +import net.sf.openrocket.simulation.FlightDataBranch; +import net.sf.openrocket.simulation.FlightDataType; import net.sf.openrocket.simulation.FlightEvent; +import net.sf.openrocket.unit.UnitGroup; +import net.sf.openrocket.util.MathUtil; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.ListView; +import android.widget.TableLayout; import android.widget.TextView; public class SimulationEventsDialog extends DialogFragment { private SimulationChart chart; - private ListView eventList; + private TableLayout eventList; public static SimulationEventsDialog newInstance( SimulationChart chart ) { SimulationEventsDialog d = new SimulationEventsDialog(); @@ -29,32 +34,29 @@ public class SimulationEventsDialog extends DialogFragment { View v = inflater.inflate(R.layout.simulation_event_dialog, container, false); - eventList = (ListView) v.findViewById(R.id.simulationEventsList); - - OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument(); - // Initialize the eventList - ArrayAdapter events = new ArrayAdapter( - getActivity(), - android.R.layout.simple_list_item_1, - chart.getFlightDataBranch(rocketDocument).getEvents() ) { - - @Override - public View getView(int position, View convertView, - ViewGroup parent) { - View v = convertView; - if ( v == null ) { - LayoutInflater li = inflater; - v = li.inflate(android.R.layout.simple_list_item_1,null); - } - FlightEvent event = this.getItem(position); - ((TextView)v.findViewById(android.R.id.text1)).setText( event.getType().toString() + " " + event.getTime() + " (s)" ); - return v; - } - - }; - // Events are not selectable for plotting right now. - //eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); - eventList.setAdapter(events); + eventList = (TableLayout) v.findViewById(R.id.simulationEventsList); + eventList.setColumnShrinkable(0, true); + + final OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument(); + + List events = chart.getFlightDataBranch(rocketDocument).getEvents(); + + for ( FlightEvent event : events ) { + + View tableRow = inflater.inflate(R.layout.simulation_event_item,null); + ((TextView)tableRow.findViewById(R.id.eventName)).setText( event.getType().toString() ); + ((TextView)tableRow.findViewById(R.id.eventTime)).setText( event.getTime() + " (s)" ); + + FlightDataBranch data = chart.getFlightDataBranch(rocketDocument); + double vel = MathUtil.interpolate(data.get(FlightDataType.TYPE_TIME), data.get(FlightDataType.TYPE_VELOCITY_TOTAL), event.getTime()); + ((TextView)tableRow.findViewById(R.id.eventVelocity)).setText( UnitGroup.UNITS_VELOCITY.getDefaultUnit().toStringUnit(vel) ); + + double alt = MathUtil.interpolate(data.get(FlightDataType.TYPE_TIME), data.get(FlightDataType.TYPE_ALTITUDE), event.getTime()); + ((TextView)tableRow.findViewById(R.id.eventAltitude)).setText( UnitGroup.UNITS_DISTANCE.getDefaultUnit().toStringUnit(alt) ); + + eventList.addView( tableRow ); + } + return v; }