diff --git a/forge-gui/CHANGES.txt b/forge-gui/CHANGES.txt index 4ccf13e1111..94d24e10123 100644 --- a/forge-gui/CHANGES.txt +++ b/forge-gui/CHANGES.txt @@ -8,6 +8,10 @@ Forge Beta: 12-##-2013 ver 1.5.8 Release Notes ------------- +- Improved dialog appearance - +Many message and confirmation dialogs now use skinned look with rounded border dialog on top of overlay + + - Deck Editor usability improvements - You can now mark a card as a favorite in the Catalog by clicking the star icon in the first column. This will default the card to sort ahead of non-favorite cards if you sort on that first column (which is now the Forge default). You can now add or remove cards from a deck using +/- buttons that appear on either side of the quantity for each card. diff --git a/forge-gui/src/main/java/forge/control/FControl.java b/forge-gui/src/main/java/forge/control/FControl.java index 398c6036dba..d59c20c8060 100644 --- a/forge-gui/src/main/java/forge/control/FControl.java +++ b/forge-gui/src/main/java/forge/control/FControl.java @@ -31,7 +31,6 @@ import java.util.List; import javax.swing.ImageIcon; import javax.swing.JLayeredPane; -import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; @@ -69,7 +68,7 @@ import forge.gui.match.controllers.CStack; import forge.gui.match.views.VAntes; import forge.gui.match.views.VField; import forge.gui.menus.ForgeMenu; -import forge.gui.menus.MenuUtil; +import forge.gui.toolbox.FOptionPane; import forge.gui.toolbox.FSkin; import forge.net.FServer; import forge.properties.ForgePreferences; @@ -122,20 +121,17 @@ public enum FControl implements KeyEventDispatcher { public void windowClosing(final WindowEvent e) { switch (closeAction) { case NONE: //prompt user for close action if not previously specified - Object[] options = {"Close Screen", "Exit Forge", "Cancel"}; - int reply = JOptionPane.showOptionDialog( - JOptionPane.getRootFrame(), - "Forge now supports navigation tabs which allow closing and switching between different screens with ease.\n" - + "As a result, you no longer need to use the X button in the upper right to close the current screen and go back.\n" - + "\n" - + "Please select what you want to happen when clicking the X button in the upper right. This choice will be used\n" + String[] options = {"Close Screen", "Exit Forge", "Cancel"}; + int reply = FOptionPane.showOptionDialog( + "Forge now supports navigation tabs which allow closing and switching between different screens with ease. " + + "As a result, you no longer need to use the X button in the upper right to close the current screen and go back." + + "\n\n" + + "Please select what you want to happen when clicking the X button in the upper right. This choice will be used " + "going forward and you will not see this message again. You can change this behavior at any time in Preferences.", "Select Your Close Action", - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, + FOptionPane.INFORMATION_ICON, options, - options[2]); + 2); switch (reply) { case 0: //Close Screen setCloseAction(CloseAction.CLOSE_SCREEN); @@ -181,7 +177,7 @@ public enum FControl implements KeyEventDispatcher { if (this.game != null) { userPrompt = "A game is currently active. " + userPrompt; } - if (!MenuUtil.getUserConfirmation(userPrompt, "Exit Forge", this.game == null)) { //default Yes if no game active + if (!FOptionPane.showConfirmDialog(userPrompt, "Exit Forge", this.game == null)) { //default Yes if no game active return false; } if (!CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true)) { @@ -429,7 +425,7 @@ public enum FControl implements KeyEventDispatcher { if (this.game != null) { this.setCurrentScreen(FScreen.MATCH_SCREEN); SOverlayUtils.hideOverlay(); - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Cannot start a new game while another game is already in progress."); + FOptionPane.showMessageDialog("Cannot start a new game while another game is already in progress."); return; //TODO: See if it's possible to run multiple games at once without crashing } setPlayerName(match.getPlayers()); diff --git a/forge-gui/src/main/java/forge/deck/io/OldDeckParser.java b/forge-gui/src/main/java/forge/deck/io/OldDeckParser.java index d779544152b..207662c6033 100644 --- a/forge-gui/src/main/java/forge/deck/io/OldDeckParser.java +++ b/forge-gui/src/main/java/forge/deck/io/OldDeckParser.java @@ -24,14 +24,13 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.TreeMap; -import javax.swing.JOptionPane; - import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.MutablePair; import org.apache.commons.lang3.tuple.Pair; import forge.deck.Deck; import forge.deck.DeckGroup; +import forge.gui.toolbox.FOptionPane; import forge.properties.NewConstants; import forge.util.FileSection; import forge.util.FileUtil; @@ -149,8 +148,7 @@ public class OldDeckParser { this.draft.add(d); } else { final String msg = String.format("Draft '%s' lacked some decks.%n%nShould it be deleted?"); - mayDelete = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, "Draft loading error", - JOptionPane.YES_NO_OPTION); + mayDelete = FOptionPane.showConfirmDialog(msg, "Draft loading error"); } if (mayDelete) { @@ -180,13 +178,13 @@ public class OldDeckParser { try { this.cube.add(Deck.fromSections(sections)); importedOk = true; - } catch (final NoSuchElementException ex) { + } + catch (final NoSuchElementException ex) { if (!allowDeleteUnsupportedConstructed) { final String msg = String .format("Can not convert deck '%s' for some unsupported cards it contains. %n%s%n%nMay Forge delete all such decks?", name, ex.getMessage()); - allowDeleteUnsupportedConstructed = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog( - JOptionPane.getRootFrame(), msg, "Problem converting decks", JOptionPane.YES_NO_OPTION); + allowDeleteUnsupportedConstructed = FOptionPane.showConfirmDialog(msg, "Problem converting decks"); } } if (importedOk || allowDeleteUnsupportedConstructed) { @@ -205,8 +203,7 @@ public class OldDeckParser { final String msg = String .format("Can not convert deck '%s' for some unsupported cards it contains. %n%s%n%nMay Forge delete all such decks?", name, ex.getMessage()); - allowDeleteUnsupportedConstructed = JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog( - null, msg, "Problem converting decks", JOptionPane.YES_NO_OPTION); + allowDeleteUnsupportedConstructed = FOptionPane.showConfirmDialog(msg, "Problem converting decks"); } } if (importedOk || allowDeleteUnsupportedConstructed) { @@ -258,9 +255,7 @@ public class OldDeckParser { } sb.append(System.getProperty("line.separator")); sb.append("May Forge delete these decks?"); - final int response = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), sb.toString(), - "Some of your sealed decks are orphaned", JOptionPane.YES_NO_OPTION); - if (response == JOptionPane.YES_OPTION) { + if (FOptionPane.showConfirmDialog(sb.toString(), "Some of your sealed decks are orphaned")) { for (final Pair> s : sealedDecks.values()) { if (s.getRight().getLeft() != null) { s.getRight().getLeft().delete(); diff --git a/forge-gui/src/main/java/forge/error/BugReporter.java b/forge-gui/src/main/java/forge/error/BugReporter.java index fee95750e9b..d274d2dee4b 100644 --- a/forge-gui/src/main/java/forge/error/BugReporter.java +++ b/forge-gui/src/main/java/forge/error/BugReporter.java @@ -54,6 +54,7 @@ import forge.FThreads; import forge.gui.WrapLayout; import forge.gui.toolbox.FHyperlink; import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FOptionPane; import forge.model.BuildInfo; /** @@ -272,14 +273,14 @@ public class BugReporter { // browse to url Desktop.getDesktop().browse(new URI(url)); - } catch (Exception ex) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), - "Sorry, a problem occurred while opening the forum in your default browser.", - "A problem occured", JOptionPane.ERROR_MESSAGE); + } + catch (Exception ex) { + FOptionPane.showMessageDialog("Sorry, a problem occurred while opening the forum in your default browser.", + "A problem occurred", FOptionPane.ERROR_ICON); } } } - + @SuppressWarnings("serial") private static class _SaveAction extends AbstractAction { private static JFileChooser c; @@ -306,7 +307,7 @@ public class BugReporter { break; } } - + c.setSelectedFile(f); c.showSaveDialog(null); f = c.getSelectedFile(); @@ -315,10 +316,10 @@ public class BugReporter { final BufferedWriter bw = new BufferedWriter(new FileWriter(f)); bw.write(this.area.getText()); bw.close(); - } catch (final IOException ex) { - JOptionPane.showMessageDialog(area.getTopLevelAncestor(), - "There was an error during saving. Sorry!\n" + ex, - "Error saving file", JOptionPane.ERROR_MESSAGE); + } + catch (final IOException ex) { + FOptionPane.showMessageDialog("There was an error during saving. Sorry!\n" + ex, + "Error saving file", FOptionPane.ERROR_ICON); } } } diff --git a/forge-gui/src/main/java/forge/gui/GuiDialog.java b/forge-gui/src/main/java/forge/gui/GuiDialog.java index 1660f43886d..5257c1ee009 100644 --- a/forge-gui/src/main/java/forge/gui/GuiDialog.java +++ b/forge-gui/src/main/java/forge/gui/GuiDialog.java @@ -3,7 +3,6 @@ package forge.gui; import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; -import javax.swing.JOptionPane; import javax.swing.UIManager; import org.apache.commons.lang3.StringUtils; @@ -11,6 +10,7 @@ import org.apache.commons.lang3.StringUtils; import forge.FThreads; import forge.game.card.Card; import forge.gui.match.CMatchUI; +import forge.gui.toolbox.FOptionPane; /** * Holds player interactions using standard windows @@ -39,17 +39,16 @@ public class GuiDialog { final String title = c == null ? "Question" : c.getName() + " - Ability"; String questionToUse = StringUtils.isBlank(question) ? "Activate card's ability?" : question; String[] opts = options == null ? defaultConfirmOptions : options; - int answer = JOptionPane.showOptionDialog(JOptionPane.getRootFrame(), questionToUse, title, - JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, - opts, opts[defaultIsYes ? 0 : 1]); - return answer == JOptionPane.YES_OPTION; + int answer = FOptionPane.showOptionDialog(questionToUse, title, FOptionPane.QUESTION_ICON, opts, defaultIsYes ? 0 : 1); + return answer == 0; }}; FutureTask future = new FutureTask(confirmTask); FThreads.invokeInEdtAndWait(future); try { return future.get().booleanValue(); - } catch (Exception e) { // should be no exception here + } + catch (Exception e) { // should be no exception here e.printStackTrace(); } return false; @@ -64,15 +63,14 @@ public class GuiDialog { * a {@link java.lang.String} object. */ public static void message(final String message) { - - message(message, UIManager.getString("OptionPane.messageDialogTitle")); + message(message, UIManager.getString("OptionPane.messageDialogTitle")); } public static void message(final String message, final String title) { FThreads.invokeInEdtAndWait(new Runnable() { @Override public void run() { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), message, title, JOptionPane.PLAIN_MESSAGE); + FOptionPane.showMessageDialog(message, title, null); } }); } diff --git a/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java b/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java index 623a312f963..c8a98f6adf4 100644 --- a/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java @@ -31,8 +31,6 @@ import java.util.Map; import java.util.Map.Entry; import javax.swing.JFileChooser; -import javax.swing.JOptionPane; - import com.google.common.base.Predicates; import com.google.common.collect.Lists; @@ -47,6 +45,7 @@ import forge.game.card.CardPredicates; import forge.game.card.CounterType; import forge.game.phase.PhaseType; import forge.gui.player.HumanPlay; +import forge.gui.toolbox.FOptionPane; import forge.game.player.Player; import forge.game.spellability.AbilityManaPart; import forge.game.spellability.SpellAbility; @@ -127,10 +126,12 @@ public final class GuiDisplayUtil { } in.close(); - } catch (final FileNotFoundException fnfe) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "File not found: " + fc.getSelectedFile().getAbsolutePath()); - } catch (final Exception e) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Error loading battle setup file!"); + } + catch (final FileNotFoundException fnfe) { + FOptionPane.showErrorMessageDialog("File not found: " + fc.getSelectedFile().getAbsolutePath()); + } + catch (final Exception e) { + FOptionPane.showErrorMessageDialog("Error loading battle setup file!"); return; } diff --git a/forge-gui/src/main/java/forge/gui/ImportDialog.java b/forge-gui/src/main/java/forge/gui/ImportDialog.java index 1b179af3b46..58c5907bdc3 100644 --- a/forge-gui/src/main/java/forge/gui/ImportDialog.java +++ b/forge-gui/src/main/java/forge/gui/ImportDialog.java @@ -62,6 +62,7 @@ import forge.gui.toolbox.FButton; import forge.gui.toolbox.FCheckBox; import forge.gui.toolbox.FComboBoxWrapper; import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FOptionPane; import forge.gui.toolbox.FOverlay; import forge.gui.toolbox.FPanel; import forge.gui.toolbox.FScrollPane; @@ -149,8 +150,9 @@ public class ImportDialog { if (JFileChooser.APPROVE_OPTION == _fileChooser.showOpenDialog(JOptionPane.getRootFrame())) { File f = _fileChooser.getSelectedFile(); if (!f.canRead()) { - JOptionPane.showMessageDialog(txfSrc, "Cannot access selected directory (Permission denied)."); - } else { + FOptionPane.showErrorMessageDialog("Cannot access selected directory (Permission denied)."); + } + else { txfSrc.setText(f.getAbsolutePath()); } } @@ -620,17 +622,17 @@ public class ImportDialog { sb.append("will come up again the next time you start Forge in order to migrate the remaining files
"); sb.append("unless you move or delete them manually."); - Object[] options = { "Whoops, let me fix that!", "Continue with the import, I know what I'm doing." }; - int chosen = JOptionPane.showOptionDialog(_operationLog, sb.toString(), "Migration warning", - JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); - - if (1 != chosen) { + String[] options = { "Whoops, let me fix that!", "Continue with the import, I know what I'm doing." }; + int chosen = FOptionPane.showOptionDialog(sb.toString(), "Migration warning", + FOptionPane.WARNING_ICON, options, 0); + + if (chosen != 1) { // i.e. option 0 was chosen or the dialog was otherwise closed return; } } } - + // ensure no other actions (except for cancel) can be taken while the import is in progress _btnStart.setEnabled(false); _btnChooseDir.setEnabled(false); diff --git a/forge-gui/src/main/java/forge/gui/deckchooser/DeckgenUtil.java b/forge-gui/src/main/java/forge/gui/deckchooser/DeckgenUtil.java index a5da50e35ba..d042ed9363c 100644 --- a/forge-gui/src/main/java/forge/gui/deckchooser/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/gui/deckchooser/DeckgenUtil.java @@ -24,6 +24,7 @@ import forge.deck.generation.DeckGenerator3Color; import forge.deck.generation.DeckGenerator5Color; import forge.deck.generation.DeckGeneratorBase; import forge.deck.generation.DeckGeneratorMonoColor; +import forge.gui.toolbox.FOptionPane; import forge.item.PaperCard; import forge.properties.ForgePreferences.FPref; import forge.quest.QuestController; @@ -267,8 +268,7 @@ public class DeckgenUtil { msg.append("Copy Decklist to Clipboard?"); // Output - final int rcMsg = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), msg, "Decklist", JOptionPane.OK_CANCEL_OPTION); - if (rcMsg == JOptionPane.OK_OPTION) { + if (FOptionPane.showConfirmDialog(msg.toString(), "Decklist", "OK", "Cancel")) { final StringSelection ss = new StringSelection(deckList.toString()); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); } @@ -285,16 +285,16 @@ public class DeckgenUtil { boolean result = true; if (colors0.size() == 4) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), + FOptionPane.showMessageDialog( "Sorry, four color generated decks aren't supported yet." + "\n\rPlease use 2, 3, or 5 colors for this deck.", - "Generate deck: 4 colors", JOptionPane.ERROR_MESSAGE); + "Generate deck: 4 colors", FOptionPane.ERROR_ICON); result = false; } else if (colors0.size() > 5) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), + FOptionPane.showMessageDialog( "Generate deck: maximum five colors!", - "Generate deck: too many colors", JOptionPane.ERROR_MESSAGE); + "Generate deck: too many colors", FOptionPane.ERROR_ICON); result = false; } return result; diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/DeckImport.java b/forge-gui/src/main/java/forge/gui/deckeditor/DeckImport.java index fd9d600b09f..dfed510ac2f 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/DeckImport.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/DeckImport.java @@ -26,7 +26,6 @@ import java.util.Calendar; import java.util.List; import javax.swing.BorderFactory; -import javax.swing.JOptionPane; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; @@ -47,6 +46,7 @@ import forge.gui.toolbox.FCheckBox; import forge.gui.toolbox.FComboBoxWrapper; import forge.gui.toolbox.FHtmlViewer; import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FOptionPane; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTextArea; @@ -158,9 +158,7 @@ public class DeckImport ex @Override public void actionPerformed(final ActionEvent e) { final String warning = "This will replace contents of your currently open deck with whatever you are importing. Proceed?"; - final int answer = JOptionPane.showConfirmDialog(DeckImport.this, warning, "Replacing old deck", - JOptionPane.YES_NO_OPTION); - if (JOptionPane.NO_OPTION == answer) { + if (!FOptionPane.showConfirmDialog(warning, "Replacing old deck")) { return; } final Deck toSet = DeckImport.this.buildDeck(); diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/SEditorIO.java b/forge-gui/src/main/java/forge/gui/deckeditor/SEditorIO.java index 58314ef2b71..980a08e9395 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/SEditorIO.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/SEditorIO.java @@ -9,6 +9,7 @@ import forge.deck.DeckBase; import forge.gui.deckeditor.controllers.DeckController; import forge.gui.deckeditor.views.VCurrentDeck; import forge.gui.framework.FScreen; +import forge.gui.toolbox.FOptionPane; /** * Handles editor preferences saving and loading. @@ -43,10 +44,8 @@ public class SEditorIO { // Warn if no name if (name == null || name.isEmpty()) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), - "Please name your deck using the 'Title' box.", - "Save Error!", - JOptionPane.ERROR_MESSAGE); + FOptionPane.showMessageDialog("Please name your deck using the 'Title' box.", + "Save Error!", FOptionPane.ERROR_ICON); return false; } // Confirm if overwrite @@ -86,15 +85,12 @@ public class SEditorIO { public static boolean confirmSaveChanges(FScreen screen) { if (!((DeckController) CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController()).isSaved()) { Singletons.getControl().ensureScreenActive(screen); //ensure Deck Editor is active before showing dialog - final int choice = JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), - "Save changes to current deck?", - "Save Changes?", - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE); + final int choice = FOptionPane.showOptionDialog("Save changes to current deck?", "Save Changes?", + FOptionPane.QUESTION_ICON, new String[] {"Save", "Don't Save", "Cancel"}, 0); - if (choice == JOptionPane.CANCEL_OPTION) { return false; } + if (choice == 2) { return false; } - if (choice == JOptionPane.YES_OPTION && !saveDeck()) { return false; } + if (choice == 0 && !saveDeck()) { return false; } } return true; diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java b/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java index c77b3531e8f..a2cbe5e96d4 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java @@ -48,6 +48,7 @@ import forge.gui.framework.DragCell; import forge.gui.framework.FScreen; import forge.gui.home.quest.CSubmenuQuestDecks; import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FOptionPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.itemmanager.SpellShopManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil; @@ -308,8 +309,7 @@ public final class CEditorQuestCardShop extends ACEditorBase this.questData.getAssets().getCredits()) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), - "Not enough credits to purchase " + (qty == 1 ? "" : qty + " copies of ") + item.getName() + "."); + FOptionPane.showMessageDialog("Not enough credits to purchase " + (qty == 1 ? "" : qty + " copies of ") + item.getName() + "."); continue; } diff --git a/forge-gui/src/main/java/forge/gui/framework/FScreen.java b/forge-gui/src/main/java/forge/gui/framework/FScreen.java index 78ace213e9b..ce2698d9907 100644 --- a/forge-gui/src/main/java/forge/gui/framework/FScreen.java +++ b/forge-gui/src/main/java/forge/gui/framework/FScreen.java @@ -2,8 +2,6 @@ package forge.gui.framework; import java.io.File; -import javax.swing.JOptionPane; - import forge.Singletons; import forge.gui.bazaar.CBazaarUI; import forge.gui.bazaar.VBazaarUI; @@ -13,6 +11,7 @@ import forge.gui.home.CHomeUI; import forge.gui.home.VHomeUI; import forge.gui.match.CMatchUI; import forge.gui.match.VMatchUI; +import forge.gui.toolbox.FOptionPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin.SkinImage; import forge.gui.workshop.CWorkshopUI; @@ -202,7 +201,7 @@ public enum FScreen { } catch (final Exception e) { e.printStackTrace(); - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Failed to delete layout file."); + FOptionPane.showErrorMessageDialog("Failed to delete layout file."); } return false; } diff --git a/forge-gui/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java b/forge-gui/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java index 59436f1a68d..8f486775934 100644 --- a/forge-gui/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java +++ b/forge-gui/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java @@ -19,6 +19,7 @@ import forge.deck.Deck; import forge.deck.DeckSection; import forge.game.GameFormat; import forge.gui.framework.ICDoc; +import forge.gui.toolbox.FOptionPane; import forge.item.PaperCard; import forge.properties.NewConstants; import forge.quest.QuestController; @@ -255,7 +256,7 @@ public enum CSubmenuQuestData implements ICDoc { final String questName = SSubmenuQuestUtil.cleanString(o.toString()); if (getAllQuests().get(questName) != null || questName.equals("")) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Please pick another quest name, a quest already has that name."); + FOptionPane.showMessageDialog("Please pick another quest name, a quest already has that name."); return; } diff --git a/forge-gui/src/main/java/forge/gui/home/quest/QuestFileLister.java b/forge-gui/src/main/java/forge/gui/home/quest/QuestFileLister.java index d5e9866e425..b624db82300 100644 --- a/forge-gui/src/main/java/forge/gui/home/quest/QuestFileLister.java +++ b/forge-gui/src/main/java/forge/gui/home/quest/QuestFileLister.java @@ -13,9 +13,11 @@ import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SwingConstants; + import net.miginfocom.swing.MigLayout; import forge.Command; import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FOptionPane; import forge.gui.toolbox.FSkin; import forge.properties.NewConstants; import forge.quest.data.QuestData; @@ -310,7 +312,7 @@ public class QuestFileLister extends JPanel { } if (exists || questName.equals("")) { - JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "Please pick another quest name, a quest already has that name."); + FOptionPane.showMessageDialog("Please pick another quest name, a quest already has that name."); return; } else { diff --git a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java index b818cb64e56..8317692dc27 100644 --- a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java +++ b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java @@ -20,6 +20,7 @@ import forge.gui.deckchooser.DecksComboBox.DeckType; import forge.gui.framework.ICDoc; import forge.gui.menus.IMenuProvider; import forge.gui.menus.MenuUtil; +import forge.gui.toolbox.FOptionPane; import forge.net.FServer; import forge.net.Lobby; import forge.properties.ForgePreferences.FPref; @@ -100,7 +101,7 @@ public enum CSubmenuConstructed implements ICDoc, IMenuProvider { private void startGame(final GameType gameType) { for(int i=0;i