Change the initial screen handling and add file load to OpenRocketViewer activity...
[debian/openrocket] / android / src / net / sf / openrocket / android / simulation / SimulationSeriesDialog.java
1 package net.sf.openrocket.android.simulation;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 \r
6 import net.sf.openrocket.R;\r
7 import net.sf.openrocket.android.CurrentRocketHolder;\r
8 import net.sf.openrocket.document.OpenRocketDocument;\r
9 import net.sf.openrocket.simulation.FlightDataType;\r
10 import android.os.Bundle;\r
11 import android.support.v4.app.DialogFragment;\r
12 import android.view.LayoutInflater;\r
13 import android.view.View;\r
14 import android.view.ViewGroup;\r
15 import android.widget.ArrayAdapter;\r
16 import android.widget.Button;\r
17 import android.widget.Spinner;\r
18 import android.widget.TextView;\r
19 \r
20 public class SimulationSeriesDialog extends DialogFragment {\r
21         \r
22         public interface OnConfirmListener {\r
23                 public void onConfirm();\r
24         }\r
25 \r
26         private Spinner series1Spinner;\r
27         private Spinner series2Spinner;\r
28 \r
29         private SimulationChart chart;\r
30         private OnConfirmListener listener;\r
31 \r
32         public static SimulationSeriesDialog newInstance( SimulationChart chart ) {\r
33                 SimulationSeriesDialog d = new SimulationSeriesDialog();\r
34                 d.chart = chart;\r
35                 return d;\r
36         }\r
37 \r
38         public void setOnConfirmListener(OnConfirmListener listener) {\r
39                 this.listener = listener;\r
40         }\r
41 \r
42         @Override\r
43         public void onCreate(Bundle savedInstanceState) {\r
44                 super.onCreate(savedInstanceState);\r
45                 if (savedInstanceState != null ) {\r
46                         chart = (SimulationChart) savedInstanceState.getSerializable("chart");\r
47                 }\r
48         }\r
49 \r
50         @Override\r
51         public void onSaveInstanceState(Bundle arg0) {\r
52                 super.onSaveInstanceState(arg0);\r
53                 arg0.putSerializable("chart", chart);\r
54         }\r
55 \r
56         @Override\r
57         public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\r
58 \r
59                 View v = inflater.inflate(R.layout.simulation_series_dialog, container, false);\r
60                 \r
61                 OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();\r
62 \r
63                 Button okButton = (Button) v.findViewById(R.id.simulationOkButton);\r
64                 okButton.setOnClickListener( new View.OnClickListener() {\r
65 \r
66                         @Override\r
67                         public void onClick(View v) {\r
68                                 chart.setSeries1((FlightDataType)series1Spinner.getSelectedItem());\r
69                                 chart.setSeries2((FlightDataType)series2Spinner.getSelectedItem());\r
70 \r
71                                 if ( listener != null ) {\r
72                                         listener.onConfirm();\r
73                                 }\r
74                                 SimulationSeriesDialog.this.dismiss();\r
75                         }\r
76                         \r
77                 });\r
78 \r
79                 series1Spinner = (Spinner) v.findViewById(R.id.simulationSeries1);\r
80                 series2Spinner = (Spinner) v.findViewById(R.id.simulationSeries2);\r
81 \r
82                 List<FlightDataType> selectableSeries = new ArrayList<FlightDataType>();\r
83                 for( FlightDataType fdt : chart.getFlightDataBranch(rocketDocument).getTypes() ) {\r
84                         if ( fdt == FlightDataType.TYPE_TIME ) { \r
85 \r
86                         } else {\r
87                                 selectableSeries.add(fdt);\r
88                         }\r
89                 }\r
90                 ArrayAdapter<FlightDataType> serieses = new ArrayAdapter<FlightDataType>(getActivity(),android.R.layout.simple_spinner_item,selectableSeries) {\r
91 \r
92                         @Override\r
93                         public View getView(int position, View convertView,     ViewGroup parent) {\r
94                                 View v = convertView;\r
95                                 if ( v == null ) {\r
96                                         LayoutInflater li = inflater;\r
97                                         v = li.inflate(android.R.layout.simple_spinner_item,null);\r
98                                 }\r
99                                 FlightDataType fdt = this.getItem(position);\r
100                                 ((TextView)v.findViewById(android.R.id.text1)).setText( fdt.toString() );\r
101                                 return v;\r
102                         }\r
103 \r
104                 };\r
105                 series1Spinner.setAdapter(serieses);\r
106                 series2Spinner.setAdapter(serieses);\r
107 \r
108 \r
109                 return v;\r
110         }\r
111 \r
112 }\r