package net.sf.openrocket.android.rocket;
import java.util.Set;
import net.sf.openrocket.R;
import net.sf.openrocket.android.util.AndroidLogWrapper;
import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import com.actionbarsherlock.app.SherlockDialogFragment;
public class MissingMotorDialogFragment extends SherlockDialogFragment {
private final static String MESSAGES_ARG_KEY = "messages";
public static MissingMotorDialogFragment newInstance( Set<ThrustCurveMotorPlaceholder> missingMotors ) {
MissingMotorDialogFragment frag = new MissingMotorDialogFragment();
Bundle b = new Bundle();
String[] messages = new String[ missingMotors.size() ];
int index = 0;
for( ThrustCurveMotorPlaceholder m : missingMotors ) {
messages[index++] = m.getManufacturer() + " " + m.getDesignation();
}
b.putStringArray(MESSAGES_ARG_KEY, messages);
frag.setArguments(b);
frag.setCancelable(false);
return frag;
}
private String buildMessage( String[] missingMotors ) {
StringBuilder sb = new StringBuilder();
sb.append(this.getString(R.string.missingMotorsMessageStart));
for( String m : missingMotors ) {
sb.append("\n").append(m);
}
sb.append("\n").append(this.getString(R.string.missingMotorsMessageEnd));
return sb.toString();
}
@Override
public void onCancel(DialogInterface dialog) {
((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();
super.onCancel(dialog);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AndroidLogWrapper.d(MissingMotorDialogFragment.class,"onCreateDialog");
String[] messages = getArguments().getStringArray(MESSAGES_ARG_KEY);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// .setIcon(android.R.drawable.alert_dialog_icon)
builder.setTitle(R.string.missingMotors);
builder.setMessage(buildMessage(messages));
builder.setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((OpenRocketLoaderActivity)getActivity()).doFixMissingMotors();
}
});
builder.setNegativeButton(R.string.no,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();
}
});
AlertDialog dialog = builder.create();
dialog.setOwnerActivity(getActivity());
return dialog;
}
}