import net.sf.openrocket.R;\r
import net.sf.openrocket.android.ActivityHelpers;\r
import net.sf.openrocket.android.Application;\r
-import net.sf.openrocket.android.actionbarcompat.ActionBarFragmentActivity;\r
import net.sf.openrocket.android.simulation.SimulationChart;\r
import net.sf.openrocket.android.simulation.SimulationViewActivity;\r
import net.sf.openrocket.android.simulation.SimulationViewFragment;\r
import android.support.v4.app.FragmentPagerAdapter;\r
import android.support.v4.app.FragmentTransaction;\r
import android.support.v4.view.ViewPager;\r
-import android.view.Menu;\r
-import android.view.MenuInflater;\r
-import android.view.MenuItem;\r
import android.view.View;\r
\r
-public class OpenRocketViewer extends ActionBarFragmentActivity\r
+import com.actionbarsherlock.app.SherlockFragmentActivity;\r
+import com.actionbarsherlock.view.Menu;\r
+import com.actionbarsherlock.view.MenuInflater;\r
+import com.actionbarsherlock.view.MenuItem;\r
+\r
+public class OpenRocketViewer extends SherlockFragmentActivity\r
implements Simulations.OnSimulationSelectedListener\r
{\r
\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
+ 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
- getActionBarHelper().setDisplayHomeAsUpEnabled(true);\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
public boolean onCreateOptionsMenu(Menu menu) {\r
- MenuInflater inflater = getMenuInflater();\r
+ MenuInflater inflater = getSupportMenuInflater();\r
inflater.inflate(R.menu.rocket_viewer_option_menu, menu);\r
return true;\r
}\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
- public OpenRocketViewerPager( FragmentManager fm ) {\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
+ private class OpenRocketViewerPagerAdapter extends FragmentPagerAdapter {\r
+\r
+ public OpenRocketViewerPagerAdapter( FragmentManager fm ) {\r
super(fm);\r
}\r
@Override\r
public int getCount() {\r
- return 3;\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 CONFIGS_POS:\r
+ return new Configurations();\r
}\r
return null;\r
}\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 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