From 2f32575d96905bfad9d3d94098995fb3057730e9 Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Fri, 10 Aug 2012 20:56:38 +0000 Subject: [PATCH] Have the SimulationPlotConfigDialog be populated with the currently selected items. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@969 180e2498-e6e9-4542-8430-84ac67f01cd8 --- .../android/simulation/SimulationChart.java | 26 +++++++++++++------ .../SimulationPlotConfigDialog.java | 20 +++++++++----- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/android/src/net/sf/openrocket/android/simulation/SimulationChart.java b/android/src/net/sf/openrocket/android/simulation/SimulationChart.java index afe1edb8..601bf859 100644 --- a/android/src/net/sf/openrocket/android/simulation/SimulationChart.java +++ b/android/src/net/sf/openrocket/android/simulation/SimulationChart.java @@ -17,9 +17,7 @@ package net.sf.openrocket.android.simulation; import java.io.Serializable; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import net.sf.openrocket.android.util.AndroidLogWrapper; import net.sf.openrocket.document.OpenRocketDocument; @@ -58,7 +56,7 @@ public class SimulationChart implements Serializable { private final int simulationIndex; private transient FlightDataType series1; private transient FlightDataType series2; - private transient Map events; + private transient List events; // Define 4 different colors and point styles to use for the series. // For now only 2 series are supported though. @@ -79,14 +77,26 @@ public class SimulationChart implements Serializable { this.series1 = series1; } + public FlightDataType getSeries1() { + return series1; + } + public void setSeries2(FlightDataType series2) { this.series2 = series2; } - public void setEvents( Map events ) { + public FlightDataType getSeries2() { + return series2; + } + + public void setEvents( List events ) { this.events = events; } + public List getEvents() { + return events; + } + public FlightDataBranch getFlightDataBranch( OpenRocketDocument rocketDocument ) { Simulation sim = rocketDocument.getSimulation(simulationIndex); FlightDataBranch flightDataBranch = sim.getSimulatedData().getBranch(0); @@ -111,9 +121,9 @@ public class SimulationChart implements Serializable { } if ( events == null ) { - events = new HashMap(); + events = new ArrayList(); for ( FlightEvent event : flightDataBranch.getEvents() ) { - events.put(event.getTime(), event.getType().toString() ); + events.add(event); } } @@ -142,8 +152,8 @@ public class SimulationChart implements Serializable { renderer.setShowCustomTextGrid(true); renderer.setXLabelsAlign(Align.RIGHT); renderer.setXLabelsAngle(90); // rotate right - for( Map.Entry event : events.entrySet() ) { - renderer.addXTextLabel(event.getKey(), event.getValue()); + for( FlightEvent event : events ) { + renderer.addXTextLabel(event.getTime(), event.getType().toString()); } renderer.setMargins(new int[] { 50, 30, 0, 20 }); diff --git a/android/src/net/sf/openrocket/android/simulation/SimulationPlotConfigDialog.java b/android/src/net/sf/openrocket/android/simulation/SimulationPlotConfigDialog.java index 5f34a21f..d22b8d77 100644 --- a/android/src/net/sf/openrocket/android/simulation/SimulationPlotConfigDialog.java +++ b/android/src/net/sf/openrocket/android/simulation/SimulationPlotConfigDialog.java @@ -1,9 +1,7 @@ package net.sf.openrocket.android.simulation; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import net.sf.openrocket.R; import net.sf.openrocket.android.CurrentRocketHolder; @@ -68,14 +66,14 @@ public class SimulationPlotConfigDialog extends DialogFragment { @Override public void onClick(View v) { - Map eventsToShow = new HashMap(); + List eventsToShow = new ArrayList(); { SparseBooleanArray eventsSelected = eventList.getCheckedItemPositions(); List flightEvents = chart.getFlightDataBranch(CurrentRocketHolder.getCurrentRocket().getRocketDocument()).getEvents(); for( int i=0; i< flightEvents.size(); i++ ) { if ( eventsSelected.get(i) ) { FlightEvent event = flightEvents.get(i); - eventsToShow.put( event.getTime(), event.getType().toString()); + eventsToShow.add( event ); } } } @@ -96,12 +94,13 @@ public class SimulationPlotConfigDialog extends DialogFragment { series2Spinner = (Spinner) v.findViewById(R.id.simulationSeries2); List selectableSeries = new ArrayList(); + int index = 0; for( FlightDataType fdt : chart.getFlightDataBranch(rocketDocument).getTypes() ) { if ( fdt == FlightDataType.TYPE_TIME ) { - } else { selectableSeries.add(fdt); } + index++; } ArrayAdapter serieses = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item,selectableSeries) { @@ -118,10 +117,13 @@ public class SimulationPlotConfigDialog extends DialogFragment { } }; + series1Spinner.setAdapter(serieses); - series1Spinner.setSelection(0); + int selection1 = serieses.getPosition(chart.getSeries1()); + series1Spinner.setSelection(selection1); series2Spinner.setAdapter(serieses); - series2Spinner.setSelection(1); + int selection2 = serieses.getPosition(chart.getSeries2()); + series2Spinner.setSelection(selection2); eventList = (ListView) v.findViewById(R.id.simulationEventsList); @@ -147,6 +149,10 @@ public class SimulationPlotConfigDialog extends DialogFragment { eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); eventList.setAdapter(events); + for( FlightEvent evt : chart.getEvents() ) { + eventList.setItemChecked( events.getPosition(evt), true); + } + return builder.create(); } -- 2.30.2