Have the SimulationPlotConfigDialog be populated with the currently selected items.
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Fri, 10 Aug 2012 20:56:38 +0000 (20:56 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Fri, 10 Aug 2012 20:56:38 +0000 (20:56 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@969 180e2498-e6e9-4542-8430-84ac67f01cd8

android/src/net/sf/openrocket/android/simulation/SimulationChart.java
android/src/net/sf/openrocket/android/simulation/SimulationPlotConfigDialog.java

index afe1edb83cf0e7d88acfde8ba692b97649f45594..601bf859c92f9074e8cd501195ebe980445b9411 100644 (file)
@@ -17,9 +17,7 @@ package net.sf.openrocket.android.simulation;
 \r
 import java.io.Serializable;\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.android.util.AndroidLogWrapper;\r
 import net.sf.openrocket.document.OpenRocketDocument;\r
@@ -58,7 +56,7 @@ public class SimulationChart implements Serializable {
        private final int simulationIndex;\r
        private transient FlightDataType series1;\r
        private transient FlightDataType series2;\r
-       private transient Map<Double,String> events;\r
+       private transient List<FlightEvent> events;\r
        \r
        // Define 4 different colors and point styles to use for the series.\r
        // For now only 2 series are supported though.\r
@@ -79,14 +77,26 @@ public class SimulationChart implements Serializable {
                this.series1 = series1;\r
        }\r
 \r
+       public FlightDataType getSeries1() {\r
+               return series1;\r
+       }\r
+\r
        public void setSeries2(FlightDataType series2) {\r
                this.series2 = series2;\r
        }\r
 \r
-       public void setEvents( Map<Double,String> events ) {\r
+       public FlightDataType getSeries2() {\r
+               return series2;\r
+       }\r
+\r
+       public void setEvents( List<FlightEvent> events ) {\r
                this.events = events;\r
        }\r
        \r
+       public List<FlightEvent> getEvents() {\r
+               return events;\r
+       }\r
+\r
        public FlightDataBranch getFlightDataBranch( OpenRocketDocument rocketDocument ) {\r
                Simulation sim = rocketDocument.getSimulation(simulationIndex);\r
                FlightDataBranch flightDataBranch = sim.getSimulatedData().getBranch(0);\r
@@ -111,9 +121,9 @@ public class SimulationChart implements Serializable {
                }\r
                \r
                if ( events == null ) {\r
-                       events = new HashMap<Double,String>();\r
+                       events = new ArrayList<FlightEvent>();\r
                        for ( FlightEvent event : flightDataBranch.getEvents() ) {\r
-                               events.put(event.getTime(), event.getType().toString() );\r
+                               events.add(event);\r
                        }\r
                }\r
 \r
@@ -142,8 +152,8 @@ public class SimulationChart implements Serializable {
                renderer.setShowCustomTextGrid(true);\r
                renderer.setXLabelsAlign(Align.RIGHT);\r
                renderer.setXLabelsAngle(90);  // rotate right\r
-               for( Map.Entry<Double,String> event : events.entrySet() ) {\r
-                       renderer.addXTextLabel(event.getKey(), event.getValue());\r
+               for( FlightEvent event : events ) {\r
+                       renderer.addXTextLabel(event.getTime(), event.getType().toString());\r
                }\r
 \r
                renderer.setMargins(new int[] { 50, 30, 0, 20 });\r
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