package com.rapidftr.utilities;
import net.rim.device.api.ui.component.Dialog;
import com.rapidftr.controllers.internal.SaveDialogHandler;
import com.rapidftr.screens.ManageChildScreen;
public class SaveDialog {
public static final String MENU_MESSAGE = "The current record has been changed. What do you want to do with these changes?";
public static final String[] MENU_CHOICES = { "Save", "Discard", "Cancel" };
public SaveDialogHandler saveDialogHandler;
public SaveDialog(SaveDialogHandler saveDialogHandler) {
this.saveDialogHandler = saveDialogHandler;
}
public boolean show(ManageChildScreen screen){
if (screen.isDirty()) {
int defaultChoice = 0;
int result = Dialog.ask(MENU_MESSAGE, MENU_CHOICES, defaultChoice);
switch (result) {
case 0: {
if (screen.getController().validateOnSave(screen.getForms(),screen.getDateFormatter())) {
saveDialogHandler.onSave();
return true;
}
break;
}
case 1: {
saveDialogHandler.onDiscard();
break;
}
case 3: {
saveDialogHandler.onCancel();
break;
}
}
} else {
saveDialogHandler.onDiscard();
}
return true;
}
}