Many style and navigation changes. Pulled in ActionBarCompat from Android sample...
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / OpenRocketViewer.java
1 package net.sf.openrocket.android.rocket;\r
2 \r
3 \r
4 import net.sf.openrocket.R;\r
5 import net.sf.openrocket.android.ActivityHelpers;\r
6 import net.sf.openrocket.android.Application;\r
7 import net.sf.openrocket.android.actionbarcompat.ActionBarFragmentActivity;\r
8 import net.sf.openrocket.android.simulation.SimulationChart;\r
9 import net.sf.openrocket.android.simulation.SimulationFragment;\r
10 import net.sf.openrocket.android.simulation.SimulationViewActivity;\r
11 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
12 import net.sf.openrocket.document.Simulation;\r
13 import android.content.Intent;\r
14 import android.os.Bundle;\r
15 import android.support.v4.app.Fragment;\r
16 import android.support.v4.app.FragmentManager;\r
17 import android.support.v4.app.FragmentPagerAdapter;\r
18 import android.support.v4.app.FragmentTransaction;\r
19 import android.support.v4.view.ViewPager;\r
20 import android.view.Menu;\r
21 import android.view.MenuInflater;\r
22 import android.view.MenuItem;\r
23 import android.view.View;\r
24 \r
25 public class OpenRocketViewer extends ActionBarFragmentActivity\r
26 implements Simulations.OnSimulationSelectedListener\r
27 {\r
28 \r
29         private Application app;\r
30 \r
31         @Override\r
32         protected void onCreate(Bundle savedInstanceState) {\r
33                 super.onCreate(savedInstanceState);\r
34 \r
35                 app = (Application) this.getApplication();\r
36                 setContentView(R.layout.openrocketviewer);\r
37                 ViewPager viewPager = (ViewPager)findViewById(R.id.pager);\r
38                 viewPager.setAdapter( new OpenRocketViewerPager( this.getSupportFragmentManager()));\r
39                 \r
40                 setTitle(app.getRocketDocument().getRocket().getName());\r
41                 \r
42                 getActionBarHelper().setDisplayHomeAsUpEnabled(true);\r
43                 \r
44         }\r
45         \r
46         @Override\r
47         public boolean onCreateOptionsMenu(Menu menu) {\r
48                 MenuInflater inflater = getMenuInflater();\r
49                 inflater.inflate(R.menu.rocket_viewer_option_menu, menu);\r
50                 return true;\r
51         }\r
52 \r
53         @Override\r
54         public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
55                 AndroidLogWrapper.d(OpenRocketViewer.class,"onMenuItemSelected" + item.getItemId());\r
56                 switch(item.getItemId()) {\r
57                 case android.R.id.home:\r
58                         finish();\r
59                         return true;\r
60                 case R.id.motor_list_menu_option:\r
61                         ActivityHelpers.browseMotors(this);\r
62                         return true;\r
63                 case R.id.preference_menu_option:\r
64                         ActivityHelpers.startPreferences(this);\r
65                         return true;\r
66                 }\r
67                 return super.onMenuItemSelected(featureId, item);\r
68         }\r
69 \r
70         @Override\r
71         public void onSimulationSelected(int simulationId) {\r
72                 View sidepane = findViewById(R.id.sidepane);\r
73                 if ( /* if multi pane */ sidepane != null ) {\r
74                         Simulation sim = app.getRocketDocument().getSimulation(simulationId);\r
75                         SimulationChart chart = new SimulationChart(simulationId);\r
76 \r
77                         Fragment graph = SimulationFragment.newInstance(chart);\r
78 \r
79                         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
80                         ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);\r
81                         // probably only want to update back stack for first time.\r
82                         ft.addToBackStack("simulationplot");\r
83                         ft.replace(R.id.sidepane, graph);\r
84                         ft.show(graph);\r
85                         ft.commit();\r
86 \r
87 \r
88                 } else {\r
89                         Intent i = new Intent(this, SimulationViewActivity.class);\r
90                         i.putExtra("Simulation",simulationId);\r
91                         startActivity(i);\r
92                 }\r
93         }\r
94 \r
95         private class OpenRocketViewerPager extends FragmentPagerAdapter {\r
96 \r
97                 public OpenRocketViewerPager( FragmentManager fm ) {\r
98                         super(fm);\r
99                 }\r
100                 @Override\r
101                 public int getCount() {\r
102                         return 3;\r
103                 }\r
104                 @Override\r
105                 public Fragment getItem( int position ) {\r
106                         switch (position) {\r
107                         case 0:\r
108                                 return new Overview();\r
109                         case 1:\r
110                                 return new Component();\r
111                         case 2:\r
112                                 return new Simulations();\r
113                         }\r
114                         return null;\r
115                 }\r
116                 @Override\r
117                 public CharSequence getPageTitle(int position) {\r
118                         switch (position) {\r
119                         case 0:\r
120                                 return "Overview";\r
121                         case 1:\r
122                                 return "Components";\r
123                         case 2:\r
124                                 return "Simulations";\r
125                         }\r
126                         return null;\r
127                 }\r
128         }\r
129 \r
130 }\r