Add a little padding to make table easier to read.
[debian/openrocket] / android / src / net / sf / openrocket / android / simulation / SimulationFragment.java
1 \r
2 package net.sf.openrocket.android.simulation;\r
3 \r
4 import net.sf.openrocket.R;\r
5 import net.sf.openrocket.android.Application;\r
6 import net.sf.openrocket.document.OpenRocketDocument;\r
7 \r
8 import org.achartengine.GraphicalView;\r
9 import org.achartengine.chart.XYChart;\r
10 \r
11 import android.os.Bundle;\r
12 import android.support.v4.app.Fragment;\r
13 import android.view.LayoutInflater;\r
14 import android.view.Menu;\r
15 import android.view.MenuInflater;\r
16 import android.view.MenuItem;\r
17 import android.view.View;\r
18 import android.view.ViewGroup;\r
19 \r
20 /**\r
21  * An activity that encapsulates a graphical view of the chart.\r
22  */\r
23 public class SimulationFragment extends Fragment implements SimulationSeriesDialog.OnConfirmListener {\r
24         \r
25         SimulationChart chart;\r
26 \r
27         ViewGroup container;\r
28         \r
29         /** The encapsulated graphical view. */\r
30         private GraphicalView mView;\r
31         /** The chart to be drawn. */\r
32         private XYChart mChart;\r
33 \r
34         public static SimulationFragment newInstance( SimulationChart chart ) {\r
35                 SimulationFragment frag = new SimulationFragment();\r
36                 frag.chart = chart;\r
37                 return frag;\r
38         }\r
39 \r
40         @Override\r
41         public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\r
42                 setRetainInstance(true);\r
43                 setHasOptionsMenu(true);\r
44                 OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();\r
45 \r
46                 this.container = container;\r
47                 if (savedInstanceState != null ) {\r
48                         chart = (SimulationChart) savedInstanceState.getSerializable("chart");\r
49                 }\r
50                 mChart = chart.buildChart(rocketDocument);\r
51                 mView = new GraphicalView(container.getContext(), mChart);\r
52                 return mView;\r
53         }\r
54 \r
55         @Override\r
56         public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {\r
57                 inflater.inflate(R.menu.simulation_option_menu, menu);\r
58         }\r
59 \r
60         @Override\r
61         public boolean onOptionsItemSelected(MenuItem item) {\r
62                 switch (item.getItemId())\r
63                 {\r
64                 case R.id.simulation_select_series_menu_option:\r
65                         SimulationSeriesDialog seriesDialog = SimulationSeriesDialog.newInstance(chart);\r
66                         seriesDialog.show(getFragmentManager(), "AbraCadaver");\r
67                         seriesDialog.setOnConfirmListener(this);\r
68                         return true;\r
69                 case R.id.simulation_select_events_menu_option:\r
70                         SimulationEventsDialog eventsDialog = SimulationEventsDialog.newInstance(chart);\r
71                         eventsDialog.show(getFragmentManager(), "AbraCadaver");\r
72                         return true;\r
73                 default:\r
74                         return super.onOptionsItemSelected(item);\r
75                 }\r
76         }\r
77 \r
78         @Override\r
79         public void onConfirm() {\r
80                 OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();\r
81 \r
82                 mChart = chart.buildChart(rocketDocument);\r
83                 ViewGroup parent = (ViewGroup) mView.getParent();\r
84                 parent.removeView(mView);\r
85                 mView = new GraphicalView(container.getContext(), mChart);\r
86                 parent.addView(mView);\r
87         }\r
88 \r
89         @Override\r
90         public void onSaveInstanceState(Bundle outState) {\r
91                 super.onSaveInstanceState(outState);\r
92                 outState.putSerializable("chart", chart);\r
93 \r
94         }\r
95         \r
96 }