Fix so JOptionPane dialogs always display at center of main window by default

This commit is contained in:
drdev
2013-10-08 00:43:34 +00:00
parent c53cd32291
commit e4040d4a47
34 changed files with 72 additions and 75 deletions

View File

@@ -269,7 +269,7 @@ public class DeckgenUtil {
msg.append("Copy Decklist to Clipboard?"); msg.append("Copy Decklist to Clipboard?");
// Output // Output
final int rcMsg = JOptionPane.showConfirmDialog(null, msg, "Decklist", JOptionPane.OK_CANCEL_OPTION); final int rcMsg = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, "Decklist", JOptionPane.OK_CANCEL_OPTION);
if (rcMsg == JOptionPane.OK_OPTION) { if (rcMsg == JOptionPane.OK_OPTION) {
final StringSelection ss = new StringSelection(deckList.toString()); final StringSelection ss = new StringSelection(deckList.toString());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
@@ -287,14 +287,14 @@ public class DeckgenUtil {
boolean result = true; boolean result = true;
if (colors0.size() == 4) { if (colors0.size() == 4) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Sorry, four color generated decks aren't supported yet." "Sorry, four color generated decks aren't supported yet."
+ "\n\rPlease use 2, 3, or 5 colors for this deck.", + "\n\rPlease use 2, 3, or 5 colors for this deck.",
"Generate deck: 4 colors", JOptionPane.ERROR_MESSAGE); "Generate deck: 4 colors", JOptionPane.ERROR_MESSAGE);
result = false; result = false;
} }
else if (colors0.size() > 5) { else if (colors0.size() > 5) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Generate deck: maximum five colors!", "Generate deck: maximum five colors!",
"Generate deck: too many colors", JOptionPane.ERROR_MESSAGE); "Generate deck: too many colors", JOptionPane.ERROR_MESSAGE);
result = false; result = false;

View File

@@ -150,7 +150,7 @@ public class OldDeckParser {
this.draft.add(d); this.draft.add(d);
} else { } else {
final String msg = String.format("Draft '%s' lacked some decks.%n%nShould it be deleted?"); final String msg = String.format("Draft '%s' lacked some decks.%n%nShould it be deleted?");
mayDelete = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(null, msg, "Draft loading error", mayDelete = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, "Draft loading error",
JOptionPane.YES_NO_OPTION); JOptionPane.YES_NO_OPTION);
} }
@@ -187,7 +187,7 @@ public class OldDeckParser {
.format("Can not convert deck '%s' for some unsupported cards it contains. %n%s%n%nMay Forge delete all such decks?", .format("Can not convert deck '%s' for some unsupported cards it contains. %n%s%n%nMay Forge delete all such decks?",
name, ex.getMessage()); name, ex.getMessage());
allowDeleteUnsupportedConstructed = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog( allowDeleteUnsupportedConstructed = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(
null, msg, "Problem converting decks", JOptionPane.YES_NO_OPTION); JOptionPane.getRootFrame(), msg, "Problem converting decks", JOptionPane.YES_NO_OPTION);
} }
} }
if (importedOk || allowDeleteUnsupportedConstructed) { if (importedOk || allowDeleteUnsupportedConstructed) {

View File

@@ -274,7 +274,7 @@ public class BugReporter {
// browse to url // browse to url
Desktop.getDesktop().browse(new URI(url)); Desktop.getDesktop().browse(new URI(url));
} catch (Exception ex) { } catch (Exception ex) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Sorry, a problem occurred while opening the forum in your default browser.", "Sorry, a problem occurred while opening the forum in your default browser.",
"A problem occured", JOptionPane.ERROR_MESSAGE); "A problem occured", JOptionPane.ERROR_MESSAGE);
} }

View File

@@ -138,11 +138,9 @@ public final class BoosterDraft implements IBoosterDraft {
final List<CustomLimited> myDrafts = this.loadCustomDrafts("res/draft/", ".draft"); final List<CustomLimited> myDrafts = this.loadCustomDrafts("res/draft/", ".draft");
if (myDrafts.isEmpty()) { if (myDrafts.isEmpty()) {
JOptionPane JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "No custom draft files found.", "", JOptionPane.INFORMATION_MESSAGE);
.showMessageDialog(null, "No custom draft files found.", "", JOptionPane.INFORMATION_MESSAGE);
} else { } else {
final CustomLimited draft = GuiChoose.one("Choose Custom Draft", final CustomLimited draft = GuiChoose.one("Choose Custom Draft", myDrafts);
myDrafts);
this.setupCustomDraft(draft); this.setupCustomDraft(draft);
} }
break; break;

View File

@@ -152,7 +152,7 @@ public class SealedCardPoolGenerator {
// present list to user // present list to user
if (customs.isEmpty()) { if (customs.isEmpty()) {
JOptionPane.showMessageDialog(null, "No custom sealed files found.", "", JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "No custom sealed files found.", "", JOptionPane.INFORMATION_MESSAGE);
} else { } else {
final CustomLimited draft = GuiChoose.one("Choose Custom Sealed Pool", customs); final CustomLimited draft = GuiChoose.one("Choose Custom Sealed Pool", customs);

View File

@@ -146,10 +146,10 @@ public class PlayerControllerHuman extends PlayerController {
if (newMain != null) { if (newMain != null) {
if (newMain.size() < deckMinSize) { if (newMain.size() < deckMinSize) {
String errMsg = String.format("Too few cards in your main deck (minimum %d), please make modifications to your deck again.", deckMinSize); String errMsg = String.format("Too few cards in your main deck (minimum %d), please make modifications to your deck again.", deckMinSize);
JOptionPane.showMessageDialog(null, errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE);
} else { } else {
String errMsg = String.format("Too many cards in your sideboard (maximum %d), please make modifications to your deck again.", sbMax); String errMsg = String.format("Too many cards in your sideboard (maximum %d), please make modifications to your deck again.", sbMax);
JOptionPane.showMessageDialog(null, errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), errMsg, "Invalid deck", JOptionPane.ERROR_MESSAGE);
} }
} }
// Sideboard rules have changed for M14, just need to consider min maindeck and max sideboard sizes // Sideboard rules have changed for M14, just need to consider min maindeck and max sideboard sizes
@@ -218,7 +218,7 @@ public class PlayerControllerHuman extends PlayerController {
String message = String.format("How much will you announce for %s?%s", announce, canChooseZero ? "" : " (X cannot be 0)"); String message = String.format("How much will you announce for %s?%s", announce, canChooseZero ? "" : " (X cannot be 0)");
while(true){ while(true){
String str = JOptionPane.showInputDialog(null, message, ability.getSourceCard().getName(), JOptionPane.QUESTION_MESSAGE); String str = JOptionPane.showInputDialog(JOptionPane.getRootFrame(), message, ability.getSourceCard().getName(), JOptionPane.QUESTION_MESSAGE);
if (null == str) return null; // that is 'cancel' if (null == str) return null; // that is 'cancel'
if(StringUtils.isNumeric(str)) { if(StringUtils.isNumeric(str)) {

View File

@@ -138,7 +138,7 @@ public class CardListViewer {
} }
this.jList.setSelectedIndex(0); this.jList.setSelectedIndex(0);
this.dialog = this.optionPane.createDialog(this.optionPane.getParent(), this.title); this.dialog = this.optionPane.createDialog(JOptionPane.getRootFrame(), this.title);
this.dialog.setSize(720, 360); this.dialog.setSize(720, 360);
this.dialog.addWindowFocusListener(new CardListFocuser()); this.dialog.addWindowFocusListener(new CardListFocuser());
this.dialog.setLocationRelativeTo(null); this.dialog.setLocationRelativeTo(null);

View File

@@ -39,7 +39,7 @@ public class GuiDialog {
final String title = c == null ? "Question" : c.getName() + " - Ability"; final String title = c == null ? "Question" : c.getName() + " - Ability";
String questionToUse = StringUtils.isBlank(question) ? "Activate card's ability?" : question; String questionToUse = StringUtils.isBlank(question) ? "Activate card's ability?" : question;
String[] opts = options == null ? defaultConfirmOptions : options; String[] opts = options == null ? defaultConfirmOptions : options;
int answer = JOptionPane.showOptionDialog(null, questionToUse, title, int answer = JOptionPane.showOptionDialog(JOptionPane.getRootFrame(), questionToUse, title,
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
opts, opts[defaultIsYes ? 0 : 1]); opts, opts[defaultIsYes ? 0 : 1]);
return answer == JOptionPane.YES_OPTION; return answer == JOptionPane.YES_OPTION;
@@ -72,7 +72,7 @@ public class GuiDialog {
FThreads.invokeInEdtAndWait(new Runnable() { FThreads.invokeInEdtAndWait(new Runnable() {
@Override @Override
public void run() { public void run() {
JOptionPane.showMessageDialog(null, message, title, JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), message, title, JOptionPane.PLAIN_MESSAGE);
} }
}); });
} }

View File

@@ -129,9 +129,9 @@ public final class GuiDisplayUtil {
in.close(); in.close();
} catch (final FileNotFoundException fnfe) { } catch (final FileNotFoundException fnfe) {
JOptionPane.showMessageDialog(null, "File not found: " + fc.getSelectedFile().getAbsolutePath()); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "File not found: " + fc.getSelectedFile().getAbsolutePath());
} catch (final Exception e) { } catch (final Exception e) {
JOptionPane.showMessageDialog(null, "Error loading battle setup file!"); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Error loading battle setup file!");
return; return;
} }

View File

@@ -145,7 +145,7 @@ public class ListChooser<T> {
} }
Integer value; Integer value;
do { do {
this.dialog = this.optionPane.createDialog(this.optionPane.getParent(), this.title); this.dialog = this.optionPane.createDialog(JOptionPane.getRootFrame(), this.title);
if (this.minChoices != 0) { if (this.minChoices != 0) {
this.dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); this.dialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
} }

View File

@@ -41,7 +41,7 @@ public class SEditorIO {
// Warn if no name // Warn if no name
if (name == null || name.isEmpty()) { if (name == null || name.isEmpty()) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Please name your deck using the 'Title' box.", "Please name your deck using the 'Title' box.",
"Save Error!", "Save Error!",
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);
@@ -84,7 +84,7 @@ public class SEditorIO {
public static boolean confirmSaveChanges() { public static boolean confirmSaveChanges() {
if (!((DeckController<DeckBase>) CDeckEditorUI if (!((DeckController<DeckBase>) CDeckEditorUI
.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController()).isSaved()) { .SINGLETON_INSTANCE.getCurrentEditorController().getDeckController()).isSaved()) {
final int choice = JOptionPane.showConfirmDialog(null, final int choice = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(),
"Save changes to current deck?", "Save changes to current deck?",
"Save Changes?", "Save Changes?",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.YES_NO_CANCEL_OPTION,

View File

@@ -188,7 +188,7 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
* </p> * </p>
*/ */
private void saveDraft() { private void saveDraft() {
String s = JOptionPane.showInputDialog(null, String s = JOptionPane.showInputDialog(JOptionPane.getRootFrame(),
"Save this draft as:", "Save this draft as:",
"Save draft", "Save draft",
JOptionPane.QUESTION_MESSAGE); JOptionPane.QUESTION_MESSAGE);

View File

@@ -357,7 +357,7 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
final int value = this.getCardValue(item); final int value = this.getCardValue(item);
if (value > this.questData.getAssets().getCredits()) { if (value > this.questData.getAssets().getCredits()) {
JOptionPane.showMessageDialog(null, "Not enough credits!"); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Not enough credits!");
return; return;
} }
@@ -394,7 +394,7 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
getDeckManager().addItems(newInventory); getDeckManager().addItems(newInventory);
} }
boolean one = 1 == qty; boolean one = 1 == qty;
JOptionPane.showMessageDialog(null, String.format( JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), String.format(
"%s '%s' %s added to your decklist.%n%n%s cards were also added to your pool.", "%s '%s' %s added to your decklist.%n%n%s cards were also added to your pool.",
one ? "Deck" : String.format("%d copies of deck", qty), one ? "Deck" : String.format("%d copies of deck", qty),
deck.getName(), one ? "was" : "were", one ? "Its" : "Their"), deck.getName(), one ? "was" : "were", one ? "Its" : "Their"),

View File

@@ -175,7 +175,7 @@ public enum CSubmenuGauntletBuild implements ICDoc {
// Warn if no name // Warn if no name
if (name.equals(GauntletIO.TXF_PROMPT) || name.isEmpty()) { if (name.equals(GauntletIO.TXF_PROMPT) || name.isEmpty()) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Please name your gauntlet using the 'Gauntlet Name' box.", "Please name your gauntlet using the 'Gauntlet Name' box.",
"Save Error!", "Save Error!",
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);
@@ -185,7 +185,7 @@ public enum CSubmenuGauntletBuild implements ICDoc {
final File f = new File(NewConstants.GAUNTLET_DIR.userPrefLoc + name + ".dat"); final File f = new File(NewConstants.GAUNTLET_DIR.userPrefLoc + name + ".dat");
// Confirm if overwrite // Confirm if overwrite
if (f.exists()) { if (f.exists()) {
final int m = JOptionPane.showConfirmDialog(null, final int m = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(),
"There is already a gauntlet named '" + name + "'.\n" "There is already a gauntlet named '" + name + "'.\n"
+ "All progress and data will be overwritten. Continue?", + "All progress and data will be overwritten. Continue?",
"Overwrite Gauntlet?", "Overwrite Gauntlet?",
@@ -197,7 +197,7 @@ public enum CSubmenuGauntletBuild implements ICDoc {
} }
// Confirm if a new gauntlet will be created // Confirm if a new gauntlet will be created
else { else {
final int m = JOptionPane.showConfirmDialog(null, final int m = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(),
"This will create a new gauntlet named '" + name + "'. Continue?", "This will create a new gauntlet named '" + name + "'. Continue?",
"Create Gauntlet?", "Create Gauntlet?",
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,

View File

@@ -264,7 +264,7 @@ public class QuickGauntletLister extends JPanel {
private void deleteFile(RowPanel r0) { private void deleteFile(RowPanel r0) {
final GauntletData gd = r0.getGauntletData(); final GauntletData gd = r0.getGauntletData();
final int n = JOptionPane.showConfirmDialog(null, final int n = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(),
"Are you sure you want to delete \"" + gd.getName() "Are you sure you want to delete \"" + gd.getName()
+ "\" ?", "Delete Gauntlet", JOptionPane.YES_NO_OPTION); + "\" ?", "Delete Gauntlet", JOptionPane.YES_NO_OPTION);

View File

@@ -171,7 +171,7 @@ public enum CSubmenuQuestData implements ICDoc {
case CustomFormat: case CustomFormat:
if (customFormatCodes.isEmpty()) { if (customFormatCodes.isEmpty()) {
int answer = JOptionPane.showConfirmDialog(null, "You have defined custom format as containing no sets.\nThis will start a game without restriction.\n\nContinue?"); int answer = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "You have defined custom format as containing no sets.\nThis will start a game without restriction.\n\nContinue?");
if (JOptionPane.YES_OPTION != answer) { if (JOptionPane.YES_OPTION != answer) {
return; return;
} }
@@ -185,7 +185,7 @@ public enum CSubmenuQuestData implements ICDoc {
dckStartPool = view.getSelectedDeck(); dckStartPool = view.getSelectedDeck();
if (null == dckStartPool) { if (null == dckStartPool) {
JOptionPane.showMessageDialog(null, "You have not selected a deck to start", "Cannot start a quest", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "You have not selected a deck to start", "Cannot start a quest", JOptionPane.ERROR_MESSAGE);
return; return;
} }
break; break;
@@ -250,13 +250,13 @@ public enum CSubmenuQuestData implements ICDoc {
// } // }
final StartingPoolPreferences userPrefs = new StartingPoolPreferences(false, MagicColor.ALL_COLORS); // To be changed later final StartingPoolPreferences userPrefs = new StartingPoolPreferences(false, MagicColor.ALL_COLORS); // To be changed later
final Object o = JOptionPane.showInputDialog(null, "Poets will remember your quest as:", "Quest Name", JOptionPane.OK_CANCEL_OPTION); final Object o = JOptionPane.showInputDialog(JOptionPane.getRootFrame(), "Poets will remember your quest as:", "Quest Name", JOptionPane.OK_CANCEL_OPTION);
if (o == null) { return; } if (o == null) { return; }
final String questName = SSubmenuQuestUtil.cleanString(o.toString()); final String questName = SSubmenuQuestUtil.cleanString(o.toString());
if (getAllQuests().get(questName) != null || questName.equals("")) { if (getAllQuests().get(questName) != null || questName.equals("")) {
JOptionPane.showMessageDialog(null, "Please pick another quest name, a quest already has that name."); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Please pick another quest name, a quest already has that name.");
return; return;
} }

View File

@@ -293,7 +293,7 @@ public class QuestFileLister extends JPanel {
} }
private void editFileName(String s0) { private void editFileName(String s0) {
final Object o = JOptionPane.showInputDialog(null, final Object o = JOptionPane.showInputDialog(JOptionPane.getRootFrame(),
"Rename Quest to:", "Quest Rename", JOptionPane.OK_CANCEL_OPTION); "Rename Quest to:", "Quest Rename", JOptionPane.OK_CANCEL_OPTION);
if (o == null) { return; } if (o == null) { return; }
@@ -310,7 +310,7 @@ public class QuestFileLister extends JPanel {
} }
if (exists || questName.equals("")) { if (exists || questName.equals("")) {
JOptionPane.showMessageDialog(null, "Please pick another quest name, a quest already has that name."); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Please pick another quest name, a quest already has that name.");
return; return;
} }
else { else {
@@ -326,7 +326,7 @@ public class QuestFileLister extends JPanel {
private void deleteFile(RowPanel r0) { private void deleteFile(RowPanel r0) {
final QuestData qd = r0.getQuestData(); final QuestData qd = r0.getQuestData();
final int n = JOptionPane.showConfirmDialog(null, final int n = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(),
"Are you sure you want to delete \"" + qd.getName() "Are you sure you want to delete \"" + qd.getName()
+ "\" ?", "Delete Deck", JOptionPane.YES_NO_OPTION); + "\" ?", "Delete Deck", JOptionPane.YES_NO_OPTION);

View File

@@ -240,7 +240,7 @@ public class SSubmenuQuestUtil {
QuestController qc = Singletons.getModel().getQuest(); QuestController qc = Singletons.getModel().getQuest();
if (qc == null || qc.getAssets() == null) { if (qc == null || qc.getAssets() == null) {
String msg = "Please create a Quest before attempting to " + location; String msg = "Please create a Quest before attempting to " + location;
JOptionPane.showMessageDialog(null, msg, "No Quest", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg, "No Quest", JOptionPane.ERROR_MESSAGE);
System.out.println(msg); System.out.println(msg);
return false; return false;
} }
@@ -279,7 +279,7 @@ public class SSubmenuQuestUtil {
CardEdition unlocked = toUnlock.left; CardEdition unlocked = toUnlock.left;
qData.getAssets().subtractCredits(toUnlock.right); qData.getAssets().subtractCredits(toUnlock.right);
JOptionPane.showMessageDialog(null, "You have successfully unlocked " + unlocked.getName() + "!", JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "You have successfully unlocked " + unlocked.getName() + "!",
unlocked.getName() + " unlocked!", unlocked.getName() + " unlocked!",
JOptionPane.PLAIN_MESSAGE); JOptionPane.PLAIN_MESSAGE);
@@ -301,7 +301,7 @@ public class SSubmenuQuestUtil {
} }
if (worlds.size() < 1) { if (worlds.size() < 1) {
JOptionPane.showMessageDialog(null, "There are currently no worlds you can travel to\nin this version of Forge.", "No worlds", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "There are currently no worlds you can travel to\nin this version of Forge.", "No worlds", JOptionPane.ERROR_MESSAGE);
return; return;
} }
@@ -368,14 +368,14 @@ public class SSubmenuQuestUtil {
} }
if (deck == null) { if (deck == null) {
String msg = "Please select a Quest Deck."; String msg = "Please select a Quest Deck.";
JOptionPane.showMessageDialog(null, msg, "No Deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg, "No Deck", JOptionPane.ERROR_MESSAGE);
System.out.println(msg); System.out.println(msg);
return; return;
} }
String errorMessage = GameType.Quest.getDecksFormat().getDeckConformanceProblem(deck); String errorMessage = GameType.Quest.getDecksFormat().getDeckConformanceProblem(deck);
if (null != errorMessage) { if (null != errorMessage) {
JOptionPane.showMessageDialog(null, "Your deck " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Your deck " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE);
return; return;
} }

View File

@@ -102,19 +102,19 @@ public enum CSubmenuConstructed implements ICDoc, IMenuProvider {
RegisteredPlayer pscRight = view.getDcRight().getPlayer(); RegisteredPlayer pscRight = view.getDcRight().getPlayer();
if (pscLeft == null || pscRight == null) { if (pscLeft == null || pscRight == null) {
JOptionPane.showMessageDialog(null, "Please specify a Human and Computer deck first."); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Please specify a Human and Computer deck first.");
return; return;
} }
String leftDeckErrorMessage = gameType.getDecksFormat().getDeckConformanceProblem(pscLeft.getOriginalDeck()); String leftDeckErrorMessage = gameType.getDecksFormat().getDeckConformanceProblem(pscLeft.getOriginalDeck());
if (null != leftDeckErrorMessage) { if (null != leftDeckErrorMessage) {
JOptionPane.showMessageDialog(null, "Left-side deck " + leftDeckErrorMessage, "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Left-side deck " + leftDeckErrorMessage, "Invalid deck", JOptionPane.ERROR_MESSAGE);
return; return;
} }
String rightDeckErrorMessage = gameType.getDecksFormat().getDeckConformanceProblem(pscRight.getOriginalDeck()); String rightDeckErrorMessage = gameType.getDecksFormat().getDeckConformanceProblem(pscRight.getOriginalDeck());
if (null != rightDeckErrorMessage) { if (null != rightDeckErrorMessage) {
JOptionPane.showMessageDialog(null, "Right-side deck " + rightDeckErrorMessage, "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Right-side deck " + rightDeckErrorMessage, "Invalid deck", JOptionPane.ERROR_MESSAGE);
return; return;
} }

View File

@@ -98,14 +98,14 @@ public enum CSubmenuDraft implements ICDoc {
final int aiIndex = (int) Math.floor(Math.random() * 7); final int aiIndex = (int) Math.floor(Math.random() * 7);
if (humanDeck == null) { if (humanDeck == null) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"No deck selected for human!\r\n(You may need to build a new deck.)", "No deck selected for human!\r\n(You may need to build a new deck.)",
"No deck", JOptionPane.ERROR_MESSAGE); "No deck", JOptionPane.ERROR_MESSAGE);
return; return;
} }
String errorMessage = gameType.getDecksFormat().getDeckConformanceProblem(humanDeck); String errorMessage = gameType.getDecksFormat().getDeckConformanceProblem(humanDeck);
if (null != errorMessage) { if (null != errorMessage) {
JOptionPane.showMessageDialog(null, "Your deck " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Your deck " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE);
return; return;
} }

View File

@@ -123,7 +123,7 @@ public enum CSubmenuSealed implements ICDoc {
final Deck human = VSubmenuSealed.SINGLETON_INSTANCE.getLstDecks().getSelectedDeck(); final Deck human = VSubmenuSealed.SINGLETON_INSTANCE.getLstDecks().getSelectedDeck();
if (human == null) { if (human == null) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Please build and/or select a deck for yourself.", "Please build and/or select a deck for yourself.",
"No deck", JOptionPane.ERROR_MESSAGE); "No deck", JOptionPane.ERROR_MESSAGE);
return; return;
@@ -131,7 +131,7 @@ public enum CSubmenuSealed implements ICDoc {
String errorMessage = gameType.getDecksFormat().getDeckConformanceProblem(human); String errorMessage = gameType.getDecksFormat().getDeckConformanceProblem(human);
if (null != errorMessage) { if (null != errorMessage) {
JOptionPane.showMessageDialog(null, "Your deck " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Your deck " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE);
return; return;
} }
@@ -162,7 +162,7 @@ public enum CSubmenuSealed implements ICDoc {
if ( null == rounds ) return; if ( null == rounds ) return;
final String sDeckName = JOptionPane.showInputDialog(null, final String sDeckName = JOptionPane.showInputDialog(JOptionPane.getRootFrame(),
"Save this card pool as:", "Save this card pool as:",
"Save Card Pool", "Save Card Pool",
JOptionPane.QUESTION_MESSAGE); JOptionPane.QUESTION_MESSAGE);
@@ -182,7 +182,7 @@ public enum CSubmenuSealed implements ICDoc {
final IStorage<DeckGroup> sealedDecks = Singletons.getModel().getDecks().getSealed(); final IStorage<DeckGroup> sealedDecks = Singletons.getModel().getDecks().getSealed();
if (sealedDecks.contains(sDeckName)) { if (sealedDecks.contains(sDeckName)) {
final int deleteDeck = JOptionPane.showConfirmDialog(null, "\"" + sDeckName final int deleteDeck = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "\"" + sDeckName
+ "\" already exists! Do you want to replace it?", + "\" already exists! Do you want to replace it?",
"Sealed Deck Game Exists", JOptionPane.YES_NO_OPTION); "Sealed Deck Game Exists", JOptionPane.YES_NO_OPTION);

View File

@@ -163,7 +163,7 @@ public enum CSubmenuPreferences implements ICDoc {
String userPrompt = String userPrompt =
"This will reset all preferences to their defaults and restart Forge.\n\n" + "This will reset all preferences to their defaults and restart Forge.\n\n" +
"Reset and restart Forge?"; "Reset and restart Forge?";
int reply = JOptionPane.showConfirmDialog(null, userPrompt, "Reset Settings", JOptionPane.YES_NO_OPTION); int reply = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), userPrompt, "Reset Settings", JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) { if (reply == JOptionPane.YES_OPTION) {
ForgePreferences prefs = Singletons.getModel().getPreferences(); ForgePreferences prefs = Singletons.getModel().getPreferences();
prefs.reset(); prefs.reset();
@@ -178,10 +178,10 @@ public enum CSubmenuPreferences implements ICDoc {
"This will reset the Deck Editor screen layout.\n" + "This will reset the Deck Editor screen layout.\n" +
"All tabbed views will be restored to their default positions.\n\n" + "All tabbed views will be restored to their default positions.\n\n" +
"Reset layout?"; "Reset layout?";
int reply = JOptionPane.showConfirmDialog(null, userPrompt, "Reset Deck Editor Layout", JOptionPane.YES_NO_OPTION); int reply = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), userPrompt, "Reset Deck Editor Layout", JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) { if (reply == JOptionPane.YES_OPTION) {
deleteScreenLayoutFile(Screens.DECK_EDITOR_CONSTRUCTED); deleteScreenLayoutFile(Screens.DECK_EDITOR_CONSTRUCTED);
JOptionPane.showMessageDialog(null, "Deck Editor layout has been reset."); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Deck Editor layout has been reset.");
} }
} }
@@ -191,10 +191,10 @@ public enum CSubmenuPreferences implements ICDoc {
"If you want to save the current layout first, please use " + "If you want to save the current layout first, please use " +
"the Dock tab -> Save Layout option in the Match screen.\n\n" + "the Dock tab -> Save Layout option in the Match screen.\n\n" +
"Reset layout?"; "Reset layout?";
int reply = JOptionPane.showConfirmDialog(null, userPrompt, "Reset Match Screen Layout", JOptionPane.YES_NO_OPTION); int reply = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), userPrompt, "Reset Match Screen Layout", JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION) { if (reply == JOptionPane.YES_OPTION) {
deleteScreenLayoutFile(Screens.MATCH_SCREEN); deleteScreenLayoutFile(Screens.MATCH_SCREEN);
JOptionPane.showMessageDialog(null, "Match Screen layout has been reset."); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Match Screen layout has been reset.");
} }
} }

View File

@@ -20,7 +20,7 @@ public final class GamePlayerUtil {
if (StringUtils.isBlank(playerName)) { if (StringUtils.isBlank(playerName)) {
newName = (String)JOptionPane.showInputDialog( newName = (String)JOptionPane.showInputDialog(
Singletons.getView().getFrame(), JOptionPane.getRootFrame(),
"By default, Forge will refer to you as the \"Human\" during gameplay.\n" + "By default, Forge will refer to you as the \"Human\" during gameplay.\n" +
"If you would prefer a different name please enter it now.\n", "If you would prefer a different name please enter it now.\n",
"Personalize Forge Gameplay", "Personalize Forge Gameplay",
@@ -43,7 +43,7 @@ public final class GamePlayerUtil {
if (StringUtils.isBlank(playerName) && newName != "Human") { if (StringUtils.isBlank(playerName) && newName != "Human") {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
Singletons.getView().getFrame(), JOptionPane.getRootFrame(),
"Thank you, " + newName + ". " + "Thank you, " + newName + ". " +
"You will not be prompted again but you can change\nyour name at any time using the \"Player Name\" setting in Preferences.\n\n"); "You will not be prompted again but you can change\nyour name at any time using the \"Player Name\" setting in Preferences.\n\n");
} }
@@ -53,7 +53,7 @@ public final class GamePlayerUtil {
private static String getNewPlayerNameFromInputDialog(String playerName) { private static String getNewPlayerNameFromInputDialog(String playerName) {
String newName = String newName =
(String)JOptionPane.showInputDialog( (String)JOptionPane.showInputDialog(
Singletons.getView().getFrame(), JOptionPane.getRootFrame(),
"Please enter a new name (alpha-numeric only)\n", "Please enter a new name (alpha-numeric only)\n",
"Personalize Forge Gameplay", "Personalize Forge Gameplay",
JOptionPane.PLAIN_MESSAGE, JOptionPane.PLAIN_MESSAGE,

View File

@@ -130,7 +130,7 @@ public enum CSubmenuCommander implements ICDoc {
if (null != errorMessage) { if (null != errorMessage) {
if(!problemDecks.contains(d)) if(!problemDecks.contains(d))
{ {
JOptionPane.showMessageDialog(null, "The deck " + d.getName() + " " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "The deck " + d.getName() + " " + errorMessage + " Please edit or choose a different deck.", "Invalid deck", JOptionPane.ERROR_MESSAGE);
problemDecks.add(d); problemDecks.add(d);
} }
} }

View File

@@ -267,7 +267,7 @@ public enum CDock implements ICDoc {
msg.append("Copy Decklist to Clipboard?"); msg.append("Copy Decklist to Clipboard?");
int rcMsg = JOptionPane.showConfirmDialog(null, msg, ttl, JOptionPane.OK_CANCEL_OPTION); int rcMsg = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, ttl, JOptionPane.OK_CANCEL_OPTION);
if (rcMsg == JOptionPane.OK_OPTION) { if (rcMsg == JOptionPane.OK_OPTION) {
final StringSelection ss = new StringSelection(deckList.toString()); final StringSelection ss = new StringSelection(deckList.toString());

View File

@@ -12,7 +12,6 @@ import javax.swing.JMenuItem;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import forge.Singletons;
import forge.model.BuildInfo; import forge.model.BuildInfo;
import forge.util.FileUtil; import forge.util.FileUtil;
@@ -44,7 +43,7 @@ public final class HelpMenu {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
Singletons.getView().getFrame(), JOptionPane.getRootFrame(),
"Version : " + BuildInfo.getVersionString(), "Version : " + BuildInfo.getVersionString(),
"About Forge", "About Forge",
JOptionPane.INFORMATION_MESSAGE); JOptionPane.INFORMATION_MESSAGE);

View File

@@ -37,7 +37,7 @@ public final class MenuUtil {
public static boolean getUserConfirmation(String prompt, String dialogTitle) { public static boolean getUserConfirmation(String prompt, String dialogTitle) {
Object[] options = {"Yes", "No"}; Object[] options = {"Yes", "No"};
int reply = JOptionPane.showOptionDialog( int reply = JOptionPane.showOptionDialog(
null, JOptionPane.getRootFrame(),
prompt, prompt,
dialogTitle, dialogTitle,
JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION,

View File

@@ -58,7 +58,7 @@ public class FHyperlink extends FLabel {
try { try {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
} catch (IllegalStateException ex) { } catch (IllegalStateException ex) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
"Sorry, a problem occurred while copying this link to your system clipboard.", "Sorry, a problem occurred while copying this link to your system clipboard.",
"A problem occured", JOptionPane.ERROR_MESSAGE); "A problem occured", JOptionPane.ERROR_MESSAGE);
} }

View File

@@ -468,7 +468,7 @@ public class DeckLister extends JPanel implements ILocalRepaint {
private void deleteDeck(final RowPanel r0) { private void deleteDeck(final RowPanel r0) {
final Deck d0 = r0.getDeck(); final Deck d0 = r0.getDeck();
final int n = JOptionPane.showConfirmDialog(null, "Are you sure you want to delete \"" + d0.getName() + "\" ?", final int n = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "Are you sure you want to delete \"" + d0.getName() + "\" ?",
"Delete Deck", JOptionPane.YES_NO_OPTION); "Delete Deck", JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.NO_OPTION) { if (n == JOptionPane.NO_OPTION) {

View File

@@ -94,7 +94,7 @@ public class QuestUtilUnlockSets {
CardEdition choosenEdition = toBuy.left; CardEdition choosenEdition = toBuy.left;
if (qData.getAssets().getCredits() < price) { if (qData.getAssets().getCredits() < price) {
JOptionPane.showMessageDialog(null, "Unfortunately, you cannot afford that set yet.\n" JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Unfortunately, you cannot afford that set yet.\n"
+ "To unlock " + choosenEdition.getName() + ", you need " + price + " credits.\n" + "To unlock " + choosenEdition.getName() + ", you need " + price + " credits.\n"
+ "You have only " + qData.getAssets().getCredits() + " credits.", + "You have only " + qData.getAssets().getCredits() + " credits.",
"Failed to unlock " + choosenEdition.getName(), "Failed to unlock " + choosenEdition.getName(),
@@ -102,7 +102,7 @@ public class QuestUtilUnlockSets {
return null; return null;
} }
final int unlockConfirm = JOptionPane.showConfirmDialog(null, final int unlockConfirm = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(),
"Unlocking " + choosenEdition.getName() + " will cost you " + price + " credits.\n" "Unlocking " + choosenEdition.getName() + " will cost you " + price + " credits.\n"
+ "You have " + qData.getAssets().getCredits() + " credits.\n\n" + "You have " + qData.getAssets().getCredits() + " credits.\n\n"
+ "Are you sure you want to unlock " + choosenEdition.getName() + "?", + "Are you sure you want to unlock " + choosenEdition.getName() + "?",

View File

@@ -78,7 +78,7 @@ public abstract class StorageReaderFile<T> extends StorageReaderBase<T> {
if (null == item) { if (null == item) {
final String msg = "An object stored in " + this.file.getPath() final String msg = "An object stored in " + this.file.getPath()
+ " failed to load.\nPlease submit this as a bug with the mentioned file attached."; + " failed to load.\nPlease submit this as a bug with the mentioned file attached.";
JOptionPane.showMessageDialog(null, msg); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg);
continue; continue;
} }

View File

@@ -104,7 +104,7 @@ public abstract class StorageReaderFileSections<T> extends StorageReaderBase<T>
if (null != item) return item; if (null != item) return item;
final String msg = "An object stored in " + this.file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file attached."; final String msg = "An object stored in " + this.file.getPath() + " failed to load.\nPlease submit this as a bug with the mentioned file attached.";
JOptionPane.showMessageDialog(null, msg); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg);
return null; return null;
} }

View File

@@ -100,7 +100,7 @@ public abstract class StorageReaderFolder<T> extends StorageReaderBase<T> {
final String msg = "An object stored in " final String msg = "An object stored in "
+ file.getPath() + file.getPath()
+ " failed to load.\nPlease submit this as a bug with the mentioned file/directory attached."; + " failed to load.\nPlease submit this as a bug with the mentioned file/directory attached.";
JOptionPane.showMessageDialog(null, msg); JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), msg);
continue; continue;
} }
String newKey = keySelector.apply(newDeck); String newKey = keySelector.apply(newDeck);
@@ -110,10 +110,8 @@ public abstract class StorageReaderFolder<T> extends StorageReaderBase<T> {
result.put(newKey, newDeck); result.put(newKey, newDeck);
} catch (final OldDeckFileFormatException ex) { } catch (final OldDeckFileFormatException ex) {
if (!hasWarnedOfOldFormat) { if (!hasWarnedOfOldFormat) {
JOptionPane JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
.showMessageDialog( "Found a deck in old fileformat in the storage.\nMoving this file and all similiar ones to parent folder.\n\nForge will try to convert them in a second.");
null,
"Found a deck in old fileformat in the storage.\nMoving this file and all similiar ones to parent folder.\n\nForge will try to convert them in a second.");
hasWarnedOfOldFormat = true; hasWarnedOfOldFormat = true;
} }
file.renameTo(new File(this.directory.getParentFile(), file.getName())); file.renameTo(new File(this.directory.getParentFile(), file.getName()));
@@ -125,7 +123,7 @@ public abstract class StorageReaderFolder<T> extends StorageReaderBase<T> {
} }
if (!decksThatFailedToLoad.isEmpty()) { if (!decksThatFailedToLoad.isEmpty()) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),
StringUtils.join(decksThatFailedToLoad, System.getProperty("line.separator")), StringUtils.join(decksThatFailedToLoad, System.getProperty("line.separator")),
"Some of your objects were not loaded.", JOptionPane.WARNING_MESSAGE); "Some of your objects were not loaded.", JOptionPane.WARNING_MESSAGE);
} }

View File

@@ -17,6 +17,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import javax.swing.JLayeredPane; import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTextArea; import javax.swing.JTextArea;
@@ -94,6 +95,7 @@ public enum FView {
private FView() { private FView() {
frmSplash = new SplashFrame(); frmSplash = new SplashFrame();
frmDocument.setTitle("Forge: " + BuildInfo.getVersionString()); frmDocument.setTitle("Forge: " + BuildInfo.getVersionString());
JOptionPane.setRootFrame(frmDocument);
} }
/** */ /** */