better text on option dialogs

This commit is contained in:
hneemann 2016-03-31 21:31:06 +02:00
parent 92c2dc33f7
commit edd00f1e68
4 changed files with 49 additions and 11 deletions

View File

@ -17,6 +17,9 @@ public class ClosingWindowListener extends WindowAdapter {
public static String SAVE_CHANGES_MESSAGE = Lang.get("win_saveChanges"); public static String SAVE_CHANGES_MESSAGE = Lang.get("win_saveChanges");
public static String CONFIRM_EXIT_MESSAGE = Lang.get("win_confirmExit"); public static String CONFIRM_EXIT_MESSAGE = Lang.get("win_confirmExit");
public static String STATE_CHANGED_MESSAGE = Lang.get("win_stateChanged"); public static String STATE_CHANGED_MESSAGE = Lang.get("win_stateChanged");
public static String NO_MESSAGE = Lang.get("btn_discard");
public static String YES_MESSAGE = Lang.get("btn_save");
public static String CANCEL_MESSAGE = Lang.get("btn_editFurther");
private final Component parent; private final Component parent;
private final GUICloser guiCloser; private final GUICloser guiCloser;
@ -66,7 +69,13 @@ public class ClosingWindowListener extends WindowAdapter {
*/ */
public static boolean checkForSave(JFrame parent, ConfirmSave confirmSave) { public static boolean checkForSave(JFrame parent, ConfirmSave confirmSave) {
if (confirmSave.isStateChanged()) { if (confirmSave.isStateChanged()) {
int r = JOptionPane.showConfirmDialog(parent, SAVE_CHANGES_MESSAGE, STATE_CHANGED_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION); int r = new ConfirmDialogBuilder(SAVE_CHANGES_MESSAGE)
.setTitle(STATE_CHANGED_MESSAGE)
.setNoOption(NO_MESSAGE)
.setYesOption(YES_MESSAGE)
.setCancleOption(CANCEL_MESSAGE)
.show(parent);
if (r != JOptionPane.CANCEL_OPTION) { if (r != JOptionPane.CANCEL_OPTION) {
if (r == JOptionPane.YES_OPTION) { if (r == JOptionPane.YES_OPTION) {
confirmSave.saveChanges(); confirmSave.saveChanges();
@ -93,8 +102,14 @@ public class ClosingWindowListener extends WindowAdapter {
@Override @Override
public void windowClosing(WindowEvent e) { public void windowClosing(WindowEvent e) {
if (guiCloser.isStateChanged()) { if (guiCloser.isStateChanged()) {
int r = JOptionPane.showConfirmDialog(parent, SAVE_CHANGES_MESSAGE, CONFIRM_EXIT_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION); int r = new ConfirmDialogBuilder(SAVE_CHANGES_MESSAGE)
if (r != JOptionPane.CANCEL_OPTION) { .setTitle(CONFIRM_EXIT_MESSAGE)
.setNoOption(NO_MESSAGE)
.setYesOption(YES_MESSAGE)
.setCancleOption(CANCEL_MESSAGE)
.show(parent);
if (r == JOptionPane.YES_OPTION || r == JOptionPane.NO_OPTION) {
if (r == JOptionPane.YES_OPTION) { if (r == JOptionPane.YES_OPTION) {
guiCloser.saveChanges(); guiCloser.saveChanges();
} }

View File

@ -15,6 +15,7 @@ public class ConfirmDialogBuilder {
private String yes = "Yes"; private String yes = "Yes";
private String no = "No"; private String no = "No";
private int def = 0; private int def = 0;
private String cancle;
/** /**
* Creates anew dialog builder * Creates anew dialog builder
@ -58,6 +59,17 @@ public class ConfirmDialogBuilder {
return this; return this;
} }
/**
* Sets the text for the cancle-option
*
* @param cancle the cancle option text
* @return this for chaining calls
*/
public ConfirmDialogBuilder setCancleOption(String cancle) {
this.cancle = cancle;
return this;
}
/** /**
* Sets yes as the default option * Sets yes as the default option
* *
@ -82,20 +94,23 @@ public class ConfirmDialogBuilder {
* Shows the dialog * Shows the dialog
* *
* @param parent the parent component * @param parent the parent component
* @return true if yes is pressed * @return the result of showOptionDialog
*/ */
public boolean show(Component parent) { public int show(Component parent) {
Object[] options = {yes, no}; Object[] options;
int n = JOptionPane.showOptionDialog(parent, if (cancle == null)
options = new Object[]{yes, no};
else
options = new Object[]{yes, no, cancle};
return JOptionPane.showOptionDialog(parent,
message, message,
title, title,
JOptionPane.YES_NO_OPTION, cancle == null ? JOptionPane.YES_NO_OPTION : JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, JOptionPane.QUESTION_MESSAGE,
null, null,
options, options,
options[def]); options[def]);
return n == JOptionPane.YES_OPTION;
} }
} }

View File

@ -82,6 +82,10 @@ btn_edit=Bearbeiten
btn_load=Laden btn_load=Laden
btn_reload=Neu Laden btn_reload=Neu Laden
btn_reload_tt=Letzte Datei noch einmal laden btn_reload_tt=Letzte Datei noch einmal laden
btn_discard=Verwerfen
btn_save=Speichern
btn_editFurther=Weiter bearbeiten
tt_moveItemUp=Eintrag nach oben schieben tt_moveItemUp=Eintrag nach oben schieben
tt_moveItemDown=Eintrag nach unten schieben tt_moveItemDown=Eintrag nach unten schieben
@ -132,6 +136,6 @@ menu_delete=L\u00F6schen
menu_delete_tt=L\u00F6scht ausgew\u00E4hlte Elemente menu_delete_tt=L\u00F6scht ausgew\u00E4hlte Elemente
menu_about=\u00DCber Digital menu_about=\u00DCber Digital
win_saveChanges=Ver\u00E4nderungen speichern? win_saveChanges=\u00C4nderungen speichern?
win_confirmExit=Beenden best\u00E4tigen! win_confirmExit=Beenden best\u00E4tigen!
win_stateChanged=Die Datei wurde ver\u00E4ndert! win_stateChanged=Die Datei wurde ver\u00E4ndert!

View File

@ -83,6 +83,10 @@ btn_edit=Edit
btn_load=Load btn_load=Load
btn_reload=Reload btn_reload=Reload
btn_reload_tt=Reload last hex file btn_reload_tt=Reload last hex file
btn_discard=Discard Changes
btn_save=Save
btn_editFurther=Continue editing
tt_moveItemUp=Move the item up tt_moveItemUp=Move the item up
tt_moveItemDown=Move the item down tt_moveItemDown=Move the item down