\r
private Application app;\r
\r
+ private final static int OVERVIEW_POS = 0;\r
+ private final static int COMPONENT_POS = 1;\r
+ private final static int SIMS_POS = 2;\r
+ private final static int CONFIGS_POS = 3;\r
+ private final static int TABSIZE = 4;\r
+\r
+ private OpenRocketViewerPagerAdapter viewPagerAdapter;\r
+\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
\r
app = (Application) this.getApplication();\r
- setContentView(R.layout.openrocketviewer);\r
- ViewPager viewPager = (ViewPager)findViewById(R.id.pager);\r
- viewPager.setAdapter( new OpenRocketViewerPager( this.getSupportFragmentManager()));\r
\r
setTitle(app.getRocketDocument().getRocket().getName());\r
-\r
getSupportActionBar().setDisplayHomeAsUpEnabled(true);\r
\r
+ setContentView(R.layout.openrocketviewer);\r
+ ViewPager viewPager = (ViewPager)findViewById(R.id.pager);\r
+ viewPagerAdapter = new OpenRocketViewerPagerAdapter( this.getSupportFragmentManager() );\r
+ viewPager.setAdapter( viewPagerAdapter );\r
+\r
+ app.setHandler( new RocketChangedEventHandler( ) );\r
+ }\r
+\r
+ @Override\r
+ protected void onPause() {\r
+ app.setHandler(null);\r
+ super.onPause();\r
}\r
\r
@Override\r
\r
Simulation sim = app.getRocketDocument().getSimulation(simulationId);\r
// Check if there is data for this simulation.\r
- if ( sim.getSimulatedData().getBranchCount() == 0 ) {\r
+ if ( sim.getSimulatedData() == null || sim.getSimulatedData().getBranchCount() == 0 ) {\r
AlertDialog.Builder builder = new AlertDialog.Builder(this);\r
builder.setMessage("The selected simulation does not have saved data.");\r
builder.setCancelable(true);\r
}\r
}\r
\r
- private class OpenRocketViewerPager extends FragmentPagerAdapter {\r
+ private class RocketChangedEventHandler extends net.sf.openrocket.android.RocketChangedEventHandler {\r
+\r
+ \r
+ @Override\r
+ protected void doSimsChanged() {\r
+ Simulations sims = (Simulations) viewPagerAdapter.getFragmentAtPos(SIMS_POS);\r
+ if ( sims != null ) {\r
+ sims.refreshSimulationList();\r
+ }\r
+ }\r
+\r
+ @Override\r
+ protected void doMotorConfigsChanged() {\r
+ Configurations configs = (Configurations) viewPagerAdapter.getFragmentAtPos(CONFIGS_POS);\r
+ if ( configs != null ) {\r
+ configs.refreshConfigsList();\r
+ }\r
+ }\r
+\r
+ };\r
+\r
\r
- public OpenRocketViewerPager( FragmentManager fm ) {\r
+ private class OpenRocketViewerPagerAdapter extends FragmentPagerAdapter {\r
+\r
+ public OpenRocketViewerPagerAdapter( FragmentManager fm ) {\r
super(fm);\r
}\r
@Override\r
public int getCount() {\r
- return 4;\r
+ return TABSIZE;\r
}\r
@Override\r
public Fragment getItem( int position ) {\r
switch (position) {\r
- case 0:\r
+ case OVERVIEW_POS:\r
return new Overview();\r
- case 1:\r
+ case COMPONENT_POS:\r
return new Component();\r
- case 2:\r
+ case SIMS_POS:\r
return new Simulations();\r
- case 3:\r
+ case CONFIGS_POS:\r
return new Configurations();\r
}\r
return null;\r
@Override\r
public CharSequence getPageTitle(int position) {\r
switch (position) {\r
- case 0:\r
+ case OVERVIEW_POS:\r
return "Overview";\r
- case 1:\r
+ case COMPONENT_POS:\r
return "Components";\r
- case 2:\r
+ case SIMS_POS:\r
return "Simulations";\r
- case 3:\r
+ case CONFIGS_POS:\r
return "Configurations";\r
}\r
return null;\r
}\r
+\r
+ public Fragment getFragmentAtPos( int pos ) {\r
+ String tag = "android:switcher:"+R.id.pager+":"+pos;\r
+ Fragment f = OpenRocketViewer.this.getSupportFragmentManager().findFragmentByTag(tag);\r
+ return f;\r
+ }\r
}\r
\r
}\r