+ configurationSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() {\r
+\r
+ /* (non-Javadoc)\r
+ * @see android.widget.AdapterView.OnItemSelectedListener#onItemSelected(android.widget.AdapterView, android.view.View, int, long)\r
+ */\r
+ @Override\r
+ public void onItemSelected(AdapterView<?> arg0, View arg1,\r
+ int arg2, long arg3) {\r
+\r
+ String selectedConfigId = rocketDocument.getRocket().getMotorConfigurationIDs()[arg2];\r
+ rocketConfiguration.setMotorConfigurationID(selectedConfigId);\r
+ Coordinate cp = aerodynamicCalculator.getWorstCP(rocketConfiguration,\r
+ new FlightConditions(rocketConfiguration),\r
+ new WarningSet());\r
+ \r
+ Coordinate cg = massCalculator.getCG(rocketConfiguration, MassCalcType.LAUNCH_MASS);\r
+\r
+ Unit lengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit();\r
+ Unit massUnit = UnitGroup.UNITS_MASS.getDefaultUnit();\r
+ Unit stabilityUnit = UnitGroup.stabilityUnits(rocketConfiguration).getDefaultUnit();\r
+\r
+ ((TextView)findViewById(R.id.openrocketviewerCP)).setText(lengthUnit.toStringUnit(cp.x));\r
+ ((TextView)findViewById(R.id.openrocketviewerCG)).setText(lengthUnit.toStringUnit(cg.x));\r
+ ((TextView)findViewById(R.id.openrocketviewerLiftOffWeight)).setText(massUnit.toStringUnit(cg.weight));\r
+ ((TextView)findViewById(R.id.openrocketviewerStabilityMargin)).setText(stabilityUnit.toStringUnit(cp.x-cg.x));\r
+\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see android.widget.AdapterView.OnItemSelectedListener#onNothingSelected(android.widget.AdapterView)\r
+ */\r
+ @Override\r
+ public void onNothingSelected(AdapterView<?> arg0) {\r
+ ((TextView)findViewById(R.id.openrocketviewerCP)).setText("");\r
+ ((TextView)findViewById(R.id.openrocketviewerCG)).setText("");\r
+ ((TextView)findViewById(R.id.openrocketviewerLiftOffWeight)).setText("");\r
+ ((TextView)findViewById(R.id.openrocketviewerStabilityMargin)).setText("");\r
+ }\r
+ \r
+ });\r