1 package net.sf.openrocket.android.simulation;
\r
3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
6 import net.sf.openrocket.R;
\r
7 import net.sf.openrocket.android.Application;
\r
8 import net.sf.openrocket.document.OpenRocketDocument;
\r
9 import net.sf.openrocket.simulation.FlightDataType;
\r
10 import android.content.DialogInterface;
\r
11 import android.os.Bundle;
\r
12 import android.support.v4.app.DialogFragment;
\r
13 import android.view.LayoutInflater;
\r
14 import android.view.View;
\r
15 import android.view.ViewGroup;
\r
16 import android.widget.ArrayAdapter;
\r
17 import android.widget.Button;
\r
18 import android.widget.Spinner;
\r
19 import android.widget.TextView;
\r
21 public class SimulationSeriesDialog extends DialogFragment {
\r
23 public interface OnConfirmListener {
\r
24 public void onConfirm();
\r
27 private Spinner series1Spinner;
\r
28 private Spinner series2Spinner;
\r
30 private SimulationChart chart;
\r
31 private OnConfirmListener listener;
\r
33 public static SimulationSeriesDialog newInstance( SimulationChart chart ) {
\r
34 SimulationSeriesDialog d = new SimulationSeriesDialog();
\r
39 public void setOnConfirmListener(OnConfirmListener listener) {
\r
40 this.listener = listener;
\r
44 public void onCreate(Bundle savedInstanceState) {
\r
45 super.onCreate(savedInstanceState);
\r
46 if (savedInstanceState != null ) {
\r
47 chart = (SimulationChart) savedInstanceState.getSerializable("chart");
\r
52 public void onSaveInstanceState(Bundle arg0) {
\r
53 super.onSaveInstanceState(arg0);
\r
54 arg0.putSerializable("chart", chart);
\r
58 public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
\r
60 View v = inflater.inflate(R.layout.simulation_series_dialog, container, false);
\r
62 OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();
\r
64 Button okButton = (Button) v.findViewById(R.id.simulationOkButton);
\r
65 okButton.setOnClickListener( new View.OnClickListener() {
\r
68 public void onClick(View v) {
\r
69 chart.setSeries1((FlightDataType)series1Spinner.getSelectedItem());
\r
70 chart.setSeries2((FlightDataType)series2Spinner.getSelectedItem());
\r
72 if ( listener != null ) {
\r
73 listener.onConfirm();
\r
75 SimulationSeriesDialog.this.dismiss();
\r
80 series1Spinner = (Spinner) v.findViewById(R.id.simulationSeries1);
\r
81 series2Spinner = (Spinner) v.findViewById(R.id.simulationSeries2);
\r
83 List<FlightDataType> selectableSeries = new ArrayList<FlightDataType>();
\r
84 for( FlightDataType fdt : chart.getFlightDataBranch(rocketDocument).getTypes() ) {
\r
85 if ( fdt == FlightDataType.TYPE_TIME ) {
\r
88 selectableSeries.add(fdt);
\r
91 ArrayAdapter<FlightDataType> serieses = new ArrayAdapter<FlightDataType>(getActivity(),R.layout.simple_spinner_item,selectableSeries) {
\r
94 public View getView(int position, View convertView, ViewGroup parent) {
\r
95 View v = convertView;
\r
97 LayoutInflater li = inflater;
\r
98 v = li.inflate(R.layout.simple_spinner_item,null);
\r
100 FlightDataType fdt = this.getItem(position);
\r
101 ((TextView)v.findViewById(android.R.id.text1)).setText( fdt.toString() );
\r
106 series1Spinner.setAdapter(serieses);
\r
107 series2Spinner.setAdapter(serieses);
\r