2 package net.sf.openrocket.android.simulation;
\r
4 import net.sf.openrocket.R;
\r
5 import net.sf.openrocket.android.Application;
\r
6 import net.sf.openrocket.document.OpenRocketDocument;
\r
8 import org.achartengine.GraphicalView;
\r
9 import org.achartengine.chart.XYChart;
\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
21 * An activity that encapsulates a graphical view of the chart.
\r
23 public class SimulationViewFragment extends Fragment implements SimulationSeriesDialog.OnConfirmListener {
\r
25 SimulationChart chart;
\r
27 ViewGroup container;
\r
29 /** The encapsulated graphical view. */
\r
30 private GraphicalView mView;
\r
31 /** The chart to be drawn. */
\r
32 private XYChart mChart;
\r
34 public static SimulationViewFragment newInstance( SimulationChart chart ) {
\r
35 SimulationViewFragment frag = new SimulationViewFragment();
\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
46 this.container = container;
\r
47 if (savedInstanceState != null ) {
\r
48 chart = (SimulationChart) savedInstanceState.getSerializable("chart");
\r
50 mChart = chart.buildChart(rocketDocument);
\r
51 mView = new GraphicalView(container.getContext(), mChart);
\r
56 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
\r
57 inflater.inflate(R.menu.simulation_option_menu, menu);
\r
61 public boolean onOptionsItemSelected(MenuItem item) {
\r
62 switch (item.getItemId())
\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
69 case R.id.simulation_select_events_menu_option:
\r
70 SimulationEventsDialog eventsDialog = SimulationEventsDialog.newInstance(chart);
\r
71 eventsDialog.show(getFragmentManager(), "AbraCadaver");
\r
74 return super.onOptionsItemSelected(item);
\r
79 public void onConfirm() {
\r
80 OpenRocketDocument rocketDocument = ((Application)getActivity().getApplication()).getRocketDocument();
\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
90 public void onSaveInstanceState(Bundle outState) {
\r
91 super.onSaveInstanceState(outState);
\r
92 outState.putSerializable("chart", chart);
\r