Have the SimulationPlotConfigDialog be populated with the currently selected items.
This commit is contained in:
parent
43b269c0f4
commit
2ad8310a3c
@ -17,9 +17,7 @@ package net.sf.openrocket.android.simulation;
|
|||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import net.sf.openrocket.android.util.AndroidLogWrapper;
|
import net.sf.openrocket.android.util.AndroidLogWrapper;
|
||||||
import net.sf.openrocket.document.OpenRocketDocument;
|
import net.sf.openrocket.document.OpenRocketDocument;
|
||||||
@ -58,7 +56,7 @@ public class SimulationChart implements Serializable {
|
|||||||
private final int simulationIndex;
|
private final int simulationIndex;
|
||||||
private transient FlightDataType series1;
|
private transient FlightDataType series1;
|
||||||
private transient FlightDataType series2;
|
private transient FlightDataType series2;
|
||||||
private transient Map<Double,String> events;
|
private transient List<FlightEvent> events;
|
||||||
|
|
||||||
// Define 4 different colors and point styles to use for the series.
|
// Define 4 different colors and point styles to use for the series.
|
||||||
// For now only 2 series are supported though.
|
// For now only 2 series are supported though.
|
||||||
@ -79,14 +77,26 @@ public class SimulationChart implements Serializable {
|
|||||||
this.series1 = series1;
|
this.series1 = series1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public FlightDataType getSeries1() {
|
||||||
|
return series1;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSeries2(FlightDataType series2) {
|
public void setSeries2(FlightDataType series2) {
|
||||||
this.series2 = series2;
|
this.series2 = series2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEvents( Map<Double,String> events ) {
|
public FlightDataType getSeries2() {
|
||||||
|
return series2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEvents( List<FlightEvent> events ) {
|
||||||
this.events = events;
|
this.events = events;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<FlightEvent> getEvents() {
|
||||||
|
return events;
|
||||||
|
}
|
||||||
|
|
||||||
public FlightDataBranch getFlightDataBranch( OpenRocketDocument rocketDocument ) {
|
public FlightDataBranch getFlightDataBranch( OpenRocketDocument rocketDocument ) {
|
||||||
Simulation sim = rocketDocument.getSimulation(simulationIndex);
|
Simulation sim = rocketDocument.getSimulation(simulationIndex);
|
||||||
FlightDataBranch flightDataBranch = sim.getSimulatedData().getBranch(0);
|
FlightDataBranch flightDataBranch = sim.getSimulatedData().getBranch(0);
|
||||||
@ -111,9 +121,9 @@ public class SimulationChart implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( events == null ) {
|
if ( events == null ) {
|
||||||
events = new HashMap<Double,String>();
|
events = new ArrayList<FlightEvent>();
|
||||||
for ( FlightEvent event : flightDataBranch.getEvents() ) {
|
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.setShowCustomTextGrid(true);
|
||||||
renderer.setXLabelsAlign(Align.RIGHT);
|
renderer.setXLabelsAlign(Align.RIGHT);
|
||||||
renderer.setXLabelsAngle(90); // rotate right
|
renderer.setXLabelsAngle(90); // rotate right
|
||||||
for( Map.Entry<Double,String> event : events.entrySet() ) {
|
for( FlightEvent event : events ) {
|
||||||
renderer.addXTextLabel(event.getKey(), event.getValue());
|
renderer.addXTextLabel(event.getTime(), event.getType().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
renderer.setMargins(new int[] { 50, 30, 0, 20 });
|
renderer.setMargins(new int[] { 50, 30, 0, 20 });
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
package net.sf.openrocket.android.simulation;
|
package net.sf.openrocket.android.simulation;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import net.sf.openrocket.R;
|
import net.sf.openrocket.R;
|
||||||
import net.sf.openrocket.android.CurrentRocketHolder;
|
import net.sf.openrocket.android.CurrentRocketHolder;
|
||||||
@ -68,14 +66,14 @@ public class SimulationPlotConfigDialog extends DialogFragment {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Map<Double,String> eventsToShow = new HashMap<Double,String>();
|
List<FlightEvent> eventsToShow = new ArrayList<FlightEvent>();
|
||||||
{
|
{
|
||||||
SparseBooleanArray eventsSelected = eventList.getCheckedItemPositions();
|
SparseBooleanArray eventsSelected = eventList.getCheckedItemPositions();
|
||||||
List<FlightEvent> flightEvents = chart.getFlightDataBranch(CurrentRocketHolder.getCurrentRocket().getRocketDocument()).getEvents();
|
List<FlightEvent> flightEvents = chart.getFlightDataBranch(CurrentRocketHolder.getCurrentRocket().getRocketDocument()).getEvents();
|
||||||
for( int i=0; i< flightEvents.size(); i++ ) {
|
for( int i=0; i< flightEvents.size(); i++ ) {
|
||||||
if ( eventsSelected.get(i) ) {
|
if ( eventsSelected.get(i) ) {
|
||||||
FlightEvent event = flightEvents.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);
|
series2Spinner = (Spinner) v.findViewById(R.id.simulationSeries2);
|
||||||
|
|
||||||
List<FlightDataType> selectableSeries = new ArrayList<FlightDataType>();
|
List<FlightDataType> selectableSeries = new ArrayList<FlightDataType>();
|
||||||
|
int index = 0;
|
||||||
for( FlightDataType fdt : chart.getFlightDataBranch(rocketDocument).getTypes() ) {
|
for( FlightDataType fdt : chart.getFlightDataBranch(rocketDocument).getTypes() ) {
|
||||||
if ( fdt == FlightDataType.TYPE_TIME ) {
|
if ( fdt == FlightDataType.TYPE_TIME ) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
selectableSeries.add(fdt);
|
selectableSeries.add(fdt);
|
||||||
}
|
}
|
||||||
|
index++;
|
||||||
}
|
}
|
||||||
ArrayAdapter<FlightDataType> serieses = new ArrayAdapter<FlightDataType>(getActivity(),android.R.layout.simple_spinner_item,selectableSeries) {
|
ArrayAdapter<FlightDataType> serieses = new ArrayAdapter<FlightDataType>(getActivity(),android.R.layout.simple_spinner_item,selectableSeries) {
|
||||||
|
|
||||||
@ -118,10 +117,13 @@ public class SimulationPlotConfigDialog extends DialogFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
series1Spinner.setAdapter(serieses);
|
series1Spinner.setAdapter(serieses);
|
||||||
series1Spinner.setSelection(0);
|
int selection1 = serieses.getPosition(chart.getSeries1());
|
||||||
|
series1Spinner.setSelection(selection1);
|
||||||
series2Spinner.setAdapter(serieses);
|
series2Spinner.setAdapter(serieses);
|
||||||
series2Spinner.setSelection(1);
|
int selection2 = serieses.getPosition(chart.getSeries2());
|
||||||
|
series2Spinner.setSelection(selection2);
|
||||||
|
|
||||||
eventList = (ListView) v.findViewById(R.id.simulationEventsList);
|
eventList = (ListView) v.findViewById(R.id.simulationEventsList);
|
||||||
|
|
||||||
@ -147,6 +149,10 @@ public class SimulationPlotConfigDialog extends DialogFragment {
|
|||||||
eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
eventList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
||||||
eventList.setAdapter(events);
|
eventList.setAdapter(events);
|
||||||
|
|
||||||
|
for( FlightEvent evt : chart.getEvents() ) {
|
||||||
|
eventList.setItemChecked( events.getPosition(evt), true);
|
||||||
|
}
|
||||||
|
|
||||||
return builder.create();
|
return builder.create();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user