+\r
+package net.sf.openrocket.android.simulation;\r
+\r
+import net.sf.openrocket.R;\r
+import net.sf.openrocket.android.Application;\r
+import net.sf.openrocket.document.OpenRocketDocument;\r
+\r
+import org.achartengine.GraphicalView;\r
+import org.achartengine.chart.XYChart;\r
+\r
+import android.os.Bundle;\r
+import android.support.v4.app.Fragment;\r
+import android.view.LayoutInflater;\r
+import android.view.Menu;\r
+import android.view.MenuInflater;\r
+import android.view.MenuItem;\r
+import android.view.View;\r
+import android.view.ViewGroup;\r
+\r
+/**\r
+ * An activity that encapsulates a graphical view of the chart.\r
+ */\r
+public class SimulationViewFragment extends Fragment implements SimulationSeriesDialog.OnConfirmListener {\r
+ \r
+ SimulationChart chart;\r
+\r
+ ViewGroup container;\r
+ \r
+ /** The encapsulated graphical view. */\r
+ private GraphicalView mView;\r
+ /** The chart to be drawn. */\r
+ private XYChart mChart;\r
+\r
+ public static SimulationViewFragment newInstance( SimulationChart chart ) {\r
+ SimulationViewFragment frag = new SimulationViewFragment();\r
+ frag.chart = chart;\r
+ return frag;\r
+ }\r
+\r
+ @Override\r
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\r
+ setRetainInstance(true);\r
+ setHasOptionsMenu(true);\r
+ OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();\r
+\r
+ this.container = container;\r
+ if (savedInstanceState != null ) {\r
+ chart = (SimulationChart) savedInstanceState.getSerializable("chart");\r
+ }\r
+ mChart = chart.buildChart(rocketDocument);\r
+ mView = new GraphicalView(container.getContext(), mChart);\r
+ return mView;\r
+ }\r
+\r
+ @Override\r
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {\r
+ inflater.inflate(R.menu.simulation_option_menu, menu);\r
+ }\r
+\r
+ @Override\r
+ public boolean onOptionsItemSelected(MenuItem item) {\r
+ switch (item.getItemId())\r
+ {\r
+ case R.id.simulation_select_series_menu_option:\r
+ SimulationSeriesDialog seriesDialog = SimulationSeriesDialog.newInstance(chart);\r
+ seriesDialog.show(getFragmentManager(), "AbraCadaver");\r
+ seriesDialog.setOnConfirmListener(this);\r
+ return true;\r
+ case R.id.simulation_select_events_menu_option:\r
+ SimulationEventsDialog eventsDialog = SimulationEventsDialog.newInstance(chart);\r
+ eventsDialog.show(getFragmentManager(), "AbraCadaver");\r
+ return true;\r
+ default:\r
+ return super.onOptionsItemSelected(item);\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void onConfirm() {\r
+ OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();\r
+\r
+ mChart = chart.buildChart(rocketDocument);\r
+ ViewGroup parent = (ViewGroup) mView.getParent();\r
+ parent.removeView(mView);\r
+ mView = new GraphicalView(container.getContext(), mChart);\r
+ parent.addView(mView);\r
+ }\r
+\r
+ @Override\r
+ public void onSaveInstanceState(Bundle outState) {\r
+ super.onSaveInstanceState(outState);\r
+ outState.putSerializable("chart", chart);\r
+\r
+ }\r
+ \r
+}
\ No newline at end of file