Have the SimulationPlotConfigDialog be populated with the currently selected items.
[debian/openrocket] / android / src / net / sf / openrocket / android / simulation / SimulationPlotConfigDialog.java
index 5f34a21f97534d765161adcc6d29d5013f5b7e51..d22b8d7728a189efa2a0b8cac8fec5141e5a6ee4 100644 (file)
@@ -1,9 +1,7 @@
 package net.sf.openrocket.android.simulation;\r
 \r
 import java.util.ArrayList;\r
-import java.util.HashMap;\r
 import java.util.List;\r
-import java.util.Map;\r
 \r
 import net.sf.openrocket.R;\r
 import net.sf.openrocket.android.CurrentRocketHolder;\r
@@ -68,14 +66,14 @@ public class SimulationPlotConfigDialog extends DialogFragment {
 \r
                        @Override\r
                        public void onClick(View v) {\r
-                               Map<Double,String> eventsToShow = new HashMap<Double,String>();\r
+                               List<FlightEvent> eventsToShow = new ArrayList<FlightEvent>();\r
                                {\r
                                        SparseBooleanArray eventsSelected = eventList.getCheckedItemPositions();\r
                                        List<FlightEvent> flightEvents = chart.getFlightDataBranch(CurrentRocketHolder.getCurrentRocket().getRocketDocument()).getEvents();\r
                                        for( int i=0; i< flightEvents.size(); i++ ) {\r
                                                if ( eventsSelected.get(i) ) {\r
                                                        FlightEvent event = flightEvents.get(i);\r
-                                                       eventsToShow.put( event.getTime(), event.getType().toString());\r
+                                                       eventsToShow.add( event );\r
                                                }\r
                                        }\r
                                }\r
@@ -96,12 +94,13 @@ public class SimulationPlotConfigDialog extends DialogFragment {
                series2Spinner = (Spinner) v.findViewById(R.id.simulationSeries2);\r
 \r
                List<FlightDataType> selectableSeries = new ArrayList<FlightDataType>();\r
+               int index = 0;\r
                for( FlightDataType fdt : chart.getFlightDataBranch(rocketDocument).getTypes() ) {\r
                        if ( fdt == FlightDataType.TYPE_TIME ) { \r
-\r
                        } else {\r
                                selectableSeries.add(fdt);\r
                        }\r
+                       index++;\r
                }\r
                ArrayAdapter<FlightDataType> serieses = new ArrayAdapter<FlightDataType>(getActivity(),android.R.layout.simple_spinner_item,selectableSeries) {\r
 \r
@@ -118,10 +117,13 @@ public class SimulationPlotConfigDialog extends DialogFragment {
                        }\r
 \r
                };\r
+               \r
                series1Spinner.setAdapter(serieses);\r
-               series1Spinner.setSelection(0);\r
+               int selection1 = serieses.getPosition(chart.getSeries1());\r
+               series1Spinner.setSelection(selection1);\r
                series2Spinner.setAdapter(serieses);\r
-               series2Spinner.setSelection(1);\r
+               int selection2 = serieses.getPosition(chart.getSeries2());\r
+               series2Spinner.setSelection(selection2);\r
 \r
                eventList = (ListView) v.findViewById(R.id.simulationEventsList);\r
 \r
@@ -147,6 +149,10 @@ public class SimulationPlotConfigDialog extends DialogFragment {
                eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);\r
                eventList.setAdapter(events);\r
 \r
+               for( FlightEvent evt : chart.getEvents() ) {\r
+                       eventList.setItemChecked( events.getPosition(evt), true);\r
+               }\r
+               \r
                return builder.create();\r
 \r
        }\r