create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / MotorConfigSpinner.java
1 package net.sf.openrocket.android.rocket;\r
2 \r
3 import net.sf.openrocket.rocketcomponent.Rocket;\r
4 import android.content.Context;\r
5 import android.util.AttributeSet;\r
6 import android.widget.ArrayAdapter;\r
7 import android.widget.Spinner;\r
8 \r
9 public class MotorConfigSpinner extends Spinner {\r
10 \r
11         public MotorConfigSpinner(Context context, AttributeSet attrs,\r
12                         int defStyle, int mode) {\r
13                 super(context, attrs, defStyle, mode);\r
14         }\r
15 \r
16         public MotorConfigSpinner(Context context, AttributeSet attrs, int defStyle) {\r
17                 super(context, attrs, defStyle);\r
18         }\r
19 \r
20         public MotorConfigSpinner(Context context, AttributeSet attrs) {\r
21                 super(context, attrs);\r
22         }\r
23 \r
24         public MotorConfigSpinner(Context context, int mode) {\r
25                 super(context, mode);\r
26         }\r
27 \r
28         public MotorConfigSpinner(Context context) {\r
29                 super(context);\r
30         }\r
31 \r
32         public void createAdapter(Rocket rocket ) {\r
33         \r
34                 setAdapter(new MotorConfigSpinnerAdapter(this.getContext(), rocket) );\r
35                 \r
36         }\r
37         \r
38         public void setSelectedConfiguration( String configId ) {\r
39                 this.setSelection( ((MotorConfigSpinnerAdapter)getAdapter()).getConfigurationPosition( configId ));\r
40         }\r
41         \r
42         public String getSelectedConfiguration() {\r
43                 return ((MotorConfigSpinnerAdapter)getAdapter()).getConfiguration( this.getSelectedItemPosition() );\r
44         }\r
45         \r
46         public class MotorConfigSpinnerAdapter extends ArrayAdapter<String> {\r
47 \r
48                 private String[] motorConfigs;\r
49 \r
50                 public MotorConfigSpinnerAdapter(Context context, Rocket rocket) {\r
51                         super(context, android.R.layout.simple_spinner_item);\r
52                         setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);\r
53                         motorConfigs = rocket.getMotorConfigurationIDs();\r
54 \r
55                         for( String config: motorConfigs ) {\r
56                                 this.add(rocket.getMotorConfigurationNameOrDescription(config));\r
57                         }\r
58 \r
59                 }\r
60 \r
61                 public int getConfigurationPosition(String configId) {\r
62 \r
63                         int selectedIndex = 0;\r
64 \r
65                         if ( configId == null ) {\r
66                                 return selectedIndex;\r
67                         }\r
68 \r
69                         for( String s : motorConfigs ) {\r
70                                 // Note - s may be null since it is a valid id.\r
71                                 if ( configId.equals(s) ) {\r
72                                         break;\r
73                                 }\r
74                                 selectedIndex++;\r
75                         }\r
76                         if( selectedIndex >= motorConfigs.length ) {\r
77                                 selectedIndex = 0;\r
78                         }\r
79 \r
80                         return selectedIndex;\r
81                 }\r
82                 \r
83                 public String getConfiguration( int position ) {\r
84                         return motorConfigs[position];\r
85                 }\r
86         }\r
87 }\r