1 package net.sf.openrocket.android.rocket;
\r
3 import net.sf.openrocket.R;
\r
4 import net.sf.openrocket.android.Application;
\r
5 import net.sf.openrocket.android.util.AndroidLogWrapper;
\r
6 import net.sf.openrocket.document.OpenRocketDocument;
\r
7 import net.sf.openrocket.document.Simulation;
\r
8 import net.sf.openrocket.unit.Unit;
\r
9 import net.sf.openrocket.unit.UnitGroup;
\r
10 import android.app.Activity;
\r
11 import android.content.SharedPreferences;
\r
12 import android.os.Bundle;
\r
13 import android.preference.PreferenceManager;
\r
14 import android.support.v4.app.Fragment;
\r
15 import android.view.LayoutInflater;
\r
16 import android.view.View;
\r
17 import android.view.ViewGroup;
\r
18 import android.widget.AdapterView;
\r
19 import android.widget.AdapterView.OnItemClickListener;
\r
20 import android.widget.ArrayAdapter;
\r
21 import android.widget.ListView;
\r
22 import android.widget.TextView;
\r
24 public class Simulations extends Fragment
\r
25 implements SharedPreferences.OnSharedPreferenceChangeListener
\r
28 public interface OnSimulationSelectedListener {
\r
29 public void onSimulationSelected( int simulationId );
\r
32 private ListView simulationList;
\r
33 private OnSimulationSelectedListener listener;
\r
36 public View onCreateView(LayoutInflater inflater, ViewGroup container,
\r
37 Bundle savedInstanceState) {
\r
38 View v = inflater.inflate(R.layout.rocket_simulations, container, false);
\r
39 simulationList = (ListView) v.findViewById(R.id.openrocketviewerSimulationList);
\r
45 public void onAttach(Activity activity) {
\r
46 super.onAttach(activity);
\r
47 if ( activity instanceof OnSimulationSelectedListener ) {
\r
48 listener = (OnSimulationSelectedListener) activity;
\r
53 public void setListener(OnSimulationSelectedListener listener) {
\r
54 this.listener = listener;
\r
58 public void onActivityCreated(Bundle savedInstanceState) {
\r
59 super.onActivityCreated(savedInstanceState);
\r
61 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
\r
62 prefs.registerOnSharedPreferenceChangeListener(this);
\r
69 public void onDestroy() {
\r
72 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
\r
73 prefs.unregisterOnSharedPreferenceChangeListener(this);
\r
77 public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {
\r
78 if ( this.isVisible() ) {
\r
84 private void setup() {
\r
85 final OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();
\r
86 AndroidLogWrapper.d(Simulations.class,"activity = {0}", this.getActivity());
\r
88 ArrayAdapter<Simulation> sims = new ArrayAdapter<Simulation>(this.getActivity(),android.R.layout.simple_list_item_2,rocketDocument.getSimulations()) {
\r
91 public View getView(int position, View convertView, ViewGroup parent) {
\r
92 View v = convertView;
\r
94 LayoutInflater li = getActivity().getLayoutInflater();
\r
95 v = li.inflate(android.R.layout.simple_list_item_2,null);
\r
97 Simulation sim = this.getItem(position);
\r
98 ((TextView)v.findViewById(android.R.id.text1)).setText( sim.getName() );
\r
99 StringBuilder sb = new StringBuilder();
\r
100 sb.append("motors: ").append(sim.getConfiguration().getMotorConfigurationDescription());
\r
101 Unit distanceUnit = UnitGroup.UNITS_DISTANCE.getDefaultUnit();
\r
102 sb.append(" apogee: ").append( distanceUnit.toStringUnit(sim.getSimulatedData().getMaxAltitude()));
\r
103 sb.append(" time: ").append(sim.getSimulatedData().getFlightTime()).append("s");
\r
104 ((TextView)v.findViewById(android.R.id.text2)).setText( sb.toString() );
\r
109 simulationList.setOnItemClickListener( new OnItemClickListener() {
\r
111 public void onItemClick(AdapterView l, View v, int position, long id) {
\r
112 if (listener != null ) {
\r
113 listener.onSimulationSelected(position);
\r
118 simulationList.setAdapter(sims);
\r