2 package net.sf.openrocket.android.simulation;
\r
4 import net.sf.openrocket.R;
\r
5 import net.sf.openrocket.android.CurrentRocketHolder;
\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.view.LayoutInflater;
\r
13 import android.view.View;
\r
14 import android.view.ViewGroup;
\r
16 import com.actionbarsherlock.app.SherlockFragment;
\r
17 import com.actionbarsherlock.view.Menu;
\r
18 import com.actionbarsherlock.view.MenuInflater;
\r
19 import com.actionbarsherlock.view.MenuItem;
\r
22 * An activity that encapsulates a graphical view of the chart.
\r
24 public class SimulationViewFragment extends SherlockFragment implements SimulationPlotConfigDialog.OnConfirmListener {
\r
26 SimulationChart chart;
\r
28 ViewGroup container;
\r
30 /** The encapsulated graphical view. */
\r
31 private GraphicalView mView;
\r
32 /** The chart to be drawn. */
\r
33 private XYChart mChart;
\r
35 public static SimulationViewFragment newInstance( SimulationChart chart ) {
\r
36 SimulationViewFragment frag = new SimulationViewFragment();
\r
42 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
\r
43 setRetainInstance(true);
\r
44 setHasOptionsMenu(true);
\r
45 OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();
\r
47 this.container = container;
\r
48 if (savedInstanceState != null ) {
\r
49 chart = (SimulationChart) savedInstanceState.getSerializable("chart");
\r
51 mChart = chart.buildChart(rocketDocument);
\r
52 mView = new GraphicalView(container.getContext(), mChart);
\r
57 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
\r
58 inflater.inflate(R.menu.simulation_option_menu, menu);
\r
62 public boolean onOptionsItemSelected(MenuItem item) {
\r
63 switch (item.getItemId())
\r
65 case R.id.simulation_config_plot_menu_option:
\r
66 SimulationPlotConfigDialog seriesDialog = SimulationPlotConfigDialog.newInstance(chart);
\r
67 seriesDialog.show(getFragmentManager(), "AbraCadaver");
\r
68 seriesDialog.setOnConfirmListener(this);
\r
70 case R.id.simulation_view_events_menu_option:
\r
71 SimulationEventsDialog eventsDialog = SimulationEventsDialog.newInstance(chart);
\r
72 eventsDialog.show(getFragmentManager(), "AbraCadaver");
\r
75 return super.onOptionsItemSelected(item);
\r
80 public void onConfirm() {
\r
81 OpenRocketDocument rocketDocument = CurrentRocketHolder.getCurrentRocket().getRocketDocument();
\r
83 mChart = chart.buildChart(rocketDocument);
\r
84 ViewGroup parent = (ViewGroup) mView.getParent();
\r
85 parent.removeView(mView);
\r
86 mView = new GraphicalView(container.getContext(), mChart);
\r
87 parent.addView(mView);
\r
91 public void onSaveInstanceState(Bundle outState) {
\r
92 super.onSaveInstanceState(outState);
\r
93 outState.putSerializable("chart", chart);
\r