import net.sf.openrocket.android.simulation.SimulationViewer;\r
import net.sf.openrocket.document.OpenRocketDocument;\r
import net.sf.openrocket.document.Simulation;\r
+import net.sf.openrocket.rocketcomponent.Rocket;\r
+import net.sf.openrocket.rocketcomponent.RocketComponent;\r
+import net.sf.openrocket.rocketcomponent.RocketUtils;\r
+import net.sf.openrocket.unit.Unit;\r
+import net.sf.openrocket.unit.UnitGroup;\r
+import net.sf.openrocket.util.Coordinate;\r
import android.app.Activity;\r
import android.app.ProgressDialog;\r
import android.content.Intent;\r
+import android.content.SharedPreferences;\r
import android.net.Uri;\r
import android.os.Bundle;\r
+import android.preference.PreferenceManager;\r
import android.util.Log;\r
import android.view.LayoutInflater;\r
import android.view.Menu;\r
import android.widget.AdapterView.OnItemClickListener;\r
import android.widget.ArrayAdapter;\r
import android.widget.ListView;\r
+import android.widget.TabHost;\r
import android.widget.TextView;\r
\r
-public class OpenRocketViewer extends Activity {\r
+public class OpenRocketViewer extends Activity\r
+implements SharedPreferences.OnSharedPreferenceChangeListener\r
+{\r
\r
private static final String TAG = "OpenRocketViewer";\r
\r
private ProgressDialog progress;\r
\r
- private TextView header;\r
+ private ListView componentList;\r
private ListView simulationList;\r
\r
private Application app;\r
\r
setContentView(R.layout.openrocketviewer);\r
\r
- header = (TextView) findViewById(R.id.heading);\r
- simulationList = (ListView) findViewById(R.id.rocketSimulations);\r
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
+ prefs.registerOnSharedPreferenceChangeListener(this);\r
+\r
+ TabHost tabs=(TabHost)findViewById(R.id.openrocketviewerTabHost);\r
+\r
+ tabs.setup();\r
+\r
+ TabHost.TabSpec spec=tabs.newTabSpec("tag1");\r
+\r
+ spec.setContent(R.id.openrocketviewerOverview);\r
+ spec.setIndicator("Overview");\r
+ tabs.addTab(spec);\r
+\r
+ spec=tabs.newTabSpec("tag2");\r
+ spec.setContent(R.id.openrocketviewerComponentList);\r
+ spec.setIndicator("Components");\r
+ tabs.addTab(spec); \r
+\r
+ spec=tabs.newTabSpec("tag3");\r
+ spec.setContent(R.id.openrocketviewerSimulationList);\r
+ spec.setIndicator("Simulations");\r
+ tabs.addTab(spec); \r
+\r
+ componentList = (ListView) findViewById(R.id.openrocketviewerComponentList);\r
+ simulationList = (ListView) findViewById(R.id.openrocketviewerSimulationList);\r
\r
Intent i = getIntent();\r
Uri file = i.getData();\r
\r
}\r
\r
- private void updateContents() {\r
+ /* (non-Javadoc)\r
+ * @see android.content.SharedPreferences.OnSharedPreferenceChangeListener#onSharedPreferenceChanged(android.content.SharedPreferences, java.lang.String)\r
+ */\r
+ @Override\r
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {\r
+ // just in case the user changed the units, we redraw.\r
+ PreferencesActivity.initializePreferences(getApplication(), PreferenceManager.getDefaultSharedPreferences(this));\r
+ updateContents();\r
+ }\r
\r
- OpenRocketDocument rocket = app.getRocketDocument();\r
- header.setText( rocket.getRocket().getName());\r
+ private void updateContents() {\r
\r
- ArrayAdapter<Simulation> sims = new ArrayAdapter<Simulation>(this,android.R.layout.simple_list_item_1,rocket.getSimulations()) {\r
+ OpenRocketDocument rocketDocument = app.getRocketDocument();\r
+ Rocket rocket = rocketDocument.getRocket();\r
+ \r
+ setTitle(rocket.getName());\r
+ \r
+ Unit LengthUnit = UnitGroup.UNITS_LENGTH.getDefaultUnit();\r
+ Unit MassUnit = UnitGroup.UNITS_MASS.getDefaultUnit();\r
+ \r
+ Coordinate cg = RocketUtils.getCG(rocket);\r
+ double length = RocketUtils.getLength(rocket);\r
+ ((TextView) findViewById(R.id.openrocketviewerRocketName)).setText( rocket.getName());\r
+ ((TextView)findViewById(R.id.openrocketviewerDesigner)).setText(rocket.getDesigner());\r
+ ((TextView)findViewById(R.id.openrocketviewerCG)).setText(LengthUnit.toStringUnit(cg.x) );\r
+ ((TextView)findViewById(R.id.openrocketviewerLength)).setText(LengthUnit.toStringUnit(length));\r
+ ((TextView)findViewById(R.id.openrocketviewerMass)).setText(MassUnit.toStringUnit(cg.weight));\r
+ ((TextView)findViewById(R.id.openrocketviewerStageCount)).setText(String.valueOf(rocket.getStageCount()));\r
+ ((TextView)findViewById(R.id.openrocketviewerComment)).setText(rocket.getComment());\r
+\r
+ ArrayAdapter<Simulation> sims = new ArrayAdapter<Simulation>(this,android.R.layout.simple_list_item_2,rocketDocument.getSimulations()) {\r
\r
@Override\r
- public View getView(int position, View convertView,\r
- ViewGroup parent) {\r
+ public View getView(int position, View convertView, ViewGroup parent) {\r
View v = convertView;\r
if ( v == null ) {\r
LayoutInflater li = getLayoutInflater();\r
- v = li.inflate(android.R.layout.simple_list_item_1,null);\r
+ v = li.inflate(android.R.layout.simple_list_item_2,null);\r
}\r
Simulation sim = this.getItem(position);\r
((TextView)v.findViewById(android.R.id.text1)).setText( sim.getName() );\r
+ ((TextView)v.findViewById(android.R.id.text2)).setText( "motors: " + sim.getConfiguration().getMotorConfigurationDescription() + " apogee: " + sim.getSimulatedData().getMaxAltitude() + "m time: " + sim.getSimulatedData().getFlightTime() + "s");\r
return v;\r
}\r
\r
});\r
simulationList.setAdapter(sims);\r
\r
+ ArrayAdapter<RocketComponent> comps = new ArrayAdapter<RocketComponent>(this, android.R.layout.simple_list_item_1,rocket.getChildren()) {\r
+\r
+ /* (non-Javadoc)\r
+ * @see android.widget.ArrayAdapter#getView(int, android.view.View, android.view.ViewGroup)\r
+ */\r
+ @Override\r
+ public View getView(int position, View convertView, ViewGroup parent) {\r
+ View v = convertView;\r
+ if ( v == null ) {\r
+ LayoutInflater li = getLayoutInflater();\r
+ v = li.inflate(android.R.layout.simple_list_item_1,null);\r
+ }\r
+ RocketComponent comp = this.getItem(position);\r
+ ((TextView)v.findViewById(android.R.id.text1)).setText( comp.getName() );\r
+ return v;\r
+ }\r
+ \r
+ \r
+ };\r
+ componentList.setAdapter(comps);\r
+ \r
if ( progress.isShowing() ) {\r
progress.dismiss();\r
}\r