Added dialog to load new file when the current file is modified.
This commit is contained in:
parent
cb601364d0
commit
b835dd08b4
@ -14,8 +14,11 @@
|
|||||||
<string name="view_events">View Events</string>
|
<string name="view_events">View Events</string>
|
||||||
<string name="simulationPlotDialogTitle">Select Series And Events</string>
|
<string name="simulationPlotDialogTitle">Select Series And Events</string>
|
||||||
<string name="plot">Plot</string>
|
<string name="plot">Plot</string>
|
||||||
<string name="saving">Saving file...</string>
|
<string name="saving">Saving file…</string>
|
||||||
<string name="loading">Loading file...</string>
|
<string name="loading">Loading file…</string>
|
||||||
|
<string name="loadWarnUnsaved">Would you like to save the changes to the current model?</string>
|
||||||
|
<string name="no">No</string>
|
||||||
|
<string name="yes">Yes</string>
|
||||||
|
|
||||||
<string-array name="PreferenceMotorBrowserGroupingEntries">
|
<string-array name="PreferenceMotorBrowserGroupingEntries">
|
||||||
<item>Case</item>
|
<item>Case</item>
|
||||||
|
@ -12,6 +12,7 @@ import net.sf.openrocket.android.util.AndroidLogWrapper;
|
|||||||
import net.sf.openrocket.document.OpenRocketDocument;
|
import net.sf.openrocket.document.OpenRocketDocument;
|
||||||
import net.sf.openrocket.document.Simulation;
|
import net.sf.openrocket.document.Simulation;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
@ -37,6 +38,9 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
|
|||||||
|
|
||||||
private OpenRocketViewerPagerAdapter viewPagerAdapter;
|
private OpenRocketViewerPagerAdapter viewPagerAdapter;
|
||||||
|
|
||||||
|
private final static String LOAD_AFTER_SAVE = "net.sf.openrocket.android.loadAfterSave";
|
||||||
|
private boolean loadAfterSave = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -51,6 +55,9 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
|
|||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (savedInstanceState != null ) {
|
||||||
|
loadAfterSave = savedInstanceState.getBoolean(LOAD_AFTER_SAVE);
|
||||||
|
}
|
||||||
setTitle(rocDoc.getRocket().getName());
|
setTitle(rocDoc.getRocket().getName());
|
||||||
getSupportActionBar().setHomeButtonEnabled(true);
|
getSupportActionBar().setHomeButtonEnabled(true);
|
||||||
|
|
||||||
@ -73,6 +80,12 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
outState.putBoolean(LOAD_AFTER_SAVE, loadAfterSave);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
MenuInflater inflater = getSupportMenuInflater();
|
MenuInflater inflater = getSupportMenuInflater();
|
||||||
@ -93,11 +106,30 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
|
|||||||
AndroidLogWrapper.d(OpenRocketViewer.class,"onMenuItemSelected" + item.getItemId());
|
AndroidLogWrapper.d(OpenRocketViewer.class,"onMenuItemSelected" + item.getItemId());
|
||||||
switch(item.getItemId()) {
|
switch(item.getItemId()) {
|
||||||
case R.id.menu_load:
|
case R.id.menu_load:
|
||||||
// FIXME - Might want to prompt for save here.
|
if ( CurrentRocketHolder.getCurrentRocket().isModified() ) {
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||||
|
builder.setMessage(R.string.loadWarnUnsaved);
|
||||||
|
builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
pickOrkFiles();
|
pickOrkFiles();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
OpenRocketViewer.this.loadAfterSave = true;
|
||||||
|
getSupportFragmentManager().beginTransaction()
|
||||||
|
.add( OpenRocketSaverFragment.newInstance(), "saver")
|
||||||
|
.commitAllowingStateLoss();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.create().show();
|
||||||
|
} else {
|
||||||
|
pickOrkFiles();
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
case R.id.menu_save:
|
case R.id.menu_save:
|
||||||
// FIXME - Probably want to open a dialog here.
|
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.add( OpenRocketSaverFragment.newInstance(), "saver")
|
.add( OpenRocketSaverFragment.newInstance(), "saver")
|
||||||
.commitAllowingStateLoss();
|
.commitAllowingStateLoss();
|
||||||
@ -156,6 +188,10 @@ implements Simulations.OnSimulationSelectedListener, OpenRocketSaverFragment.OnO
|
|||||||
@Override
|
@Override
|
||||||
public void onOpenRocketFileSaved(Boolean result) {
|
public void onOpenRocketFileSaved(Boolean result) {
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
|
if ( loadAfterSave ) {
|
||||||
|
loadAfterSave = false;
|
||||||
|
pickOrkFiles();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RocketChangedEventHandler extends net.sf.openrocket.android.RocketChangedEventHandler {
|
private class RocketChangedEventHandler extends net.sf.openrocket.android.RocketChangedEventHandler {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user