--- /dev/null
+package net.sf.openrocket.android.rocket;\r
+\r
+import net.sf.openrocket.rocketcomponent.Rocket;\r
+import android.content.Context;\r
+import android.util.AttributeSet;\r
+import android.widget.ArrayAdapter;\r
+import android.widget.Spinner;\r
+\r
+public class MotorConfigSpinner extends Spinner {\r
+\r
+ public MotorConfigSpinner(Context context, AttributeSet attrs,\r
+ int defStyle, int mode) {\r
+ super(context, attrs, defStyle, mode);\r
+ }\r
+\r
+ public MotorConfigSpinner(Context context, AttributeSet attrs, int defStyle) {\r
+ super(context, attrs, defStyle);\r
+ }\r
+\r
+ public MotorConfigSpinner(Context context, AttributeSet attrs) {\r
+ super(context, attrs);\r
+ }\r
+\r
+ public MotorConfigSpinner(Context context, int mode) {\r
+ super(context, mode);\r
+ }\r
+\r
+ public MotorConfigSpinner(Context context) {\r
+ super(context);\r
+ }\r
+\r
+ public void createAdapter(Rocket rocket ) {\r
+ \r
+ setAdapter(new MotorConfigSpinnerAdapter(this.getContext(), rocket) );\r
+ \r
+ }\r
+ \r
+ public void setSelectedConfiguration( String configId ) {\r
+ this.setSelection( ((MotorConfigSpinnerAdapter)getAdapter()).getConfigurationPosition( configId ));\r
+ }\r
+ \r
+ public String getSelectedConfiguration() {\r
+ return ((MotorConfigSpinnerAdapter)getAdapter()).getConfiguration( this.getSelectedItemPosition() );\r
+ }\r
+ \r
+ public class MotorConfigSpinnerAdapter extends ArrayAdapter<String> {\r
+\r
+ private String[] motorConfigs;\r
+\r
+ public MotorConfigSpinnerAdapter(Context context, Rocket rocket) {\r
+ super(context, android.R.layout.simple_spinner_item);\r
+ setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);\r
+ motorConfigs = rocket.getMotorConfigurationIDs();\r
+\r
+ for( String config: motorConfigs ) {\r
+ this.add(rocket.getMotorConfigurationNameOrDescription(config));\r
+ }\r
+\r
+ }\r
+\r
+ public int getConfigurationPosition(String configId) {\r
+\r
+ int selectedIndex = 0;\r
+\r
+ if ( configId == null ) {\r
+ return selectedIndex;\r
+ }\r
+\r
+ for( String s : motorConfigs ) {\r
+ // Note - s may be null since it is a valid id.\r
+ if ( configId.equals(s) ) {\r
+ break;\r
+ }\r
+ selectedIndex++;\r
+ }\r
+ if( selectedIndex >= motorConfigs.length ) {\r
+ selectedIndex = 0;\r
+ }\r
+\r
+ return selectedIndex;\r
+ }\r
+ \r
+ public String getConfiguration( int position ) {\r
+ return motorConfigs[position];\r
+ }\r
+ }\r
+}\r