From adb6a0b7f0aa9b6c60d63d305db7a6ec9dfde4a5 Mon Sep 17 00:00:00 2001 From: drdev Date: Tue, 8 Oct 2013 02:11:50 +0000 Subject: [PATCH] Fix so Deck Importer and other JDialogs display centered over main Forge window --- .gitattributes | 1 + src/main/java/forge/error/BugReporter.java | 3 +-- src/main/java/forge/gui/GuiUtils.java | 19 --------------- .../java/forge/gui/deckeditor/DeckImport.java | 8 +++---- .../java/forge/gui/match/VAssignDamage.java | 5 ++-- src/main/java/forge/view/FDialog.java | 24 +++++++++++++++++++ 6 files changed, 32 insertions(+), 28 deletions(-) create mode 100644 src/main/java/forge/view/FDialog.java diff --git a/.gitattributes b/.gitattributes index de6d931602e..42831611c06 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15500,6 +15500,7 @@ src/main/java/forge/util/storage/StorageReaderFileSections.java -text src/main/java/forge/util/storage/StorageReaderFolder.java -text src/main/java/forge/util/storage/package-info.java -text src/main/java/forge/view/ButtonUtil.java svneol=native#text/plain +src/main/java/forge/view/FDialog.java -text src/main/java/forge/view/FFrame.java -text src/main/java/forge/view/FNavigationBar.java -text src/main/java/forge/view/FTitleBar.java -text diff --git a/src/main/java/forge/error/BugReporter.java b/src/main/java/forge/error/BugReporter.java index 886ee7d49d3..fee95750e9b 100644 --- a/src/main/java/forge/error/BugReporter.java +++ b/src/main/java/forge/error/BugReporter.java @@ -241,10 +241,9 @@ public class BugReporter { JOptionPane pane = new JOptionPane(p, JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION, null, options.toArray(), options.get(0)); - JDialog dlg = pane.createDialog(null, title); + JDialog dlg = pane.createDialog(JOptionPane.getRootFrame(), title); dlg.setSize(showExitAppBtn ? 780 : 600, 400); dlg.setResizable(true); - dlg.setLocationRelativeTo(null); dialogShown = true; dlg.setVisible(true); dlg.dispose(); diff --git a/src/main/java/forge/gui/GuiUtils.java b/src/main/java/forge/gui/GuiUtils.java index e8662c774cd..92afa865127 100644 --- a/src/main/java/forge/gui/GuiUtils.java +++ b/src/main/java/forge/gui/GuiUtils.java @@ -17,11 +17,8 @@ */ package forge.gui; -import java.awt.Dimension; import java.awt.Font; import java.awt.FontFormatException; -import java.awt.Rectangle; -import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -50,22 +47,6 @@ public final class GuiUtils { throw new AssertionError(); } - /** - * Centers a frame on the screen based on its current size. - * - * @param frame - * a fully laid-out frame - */ - public static void centerFrame(final Window frame) { - final Dimension screen = frame.getToolkit().getScreenSize(); - final Rectangle bounds = frame.getBounds(); - bounds.width = frame.getWidth(); - bounds.height = frame.getHeight(); - bounds.x = (screen.width - bounds.width) / 2; - bounds.y = (screen.height - bounds.height) / 2; - frame.setBounds(bounds); - } - /** * Attempts to create a font from a filename. Concise error reported if * exceptions found. diff --git a/src/main/java/forge/gui/deckeditor/DeckImport.java b/src/main/java/forge/gui/deckeditor/DeckImport.java index 56728eb59df..b4527dad450 100644 --- a/src/main/java/forge/gui/deckeditor/DeckImport.java +++ b/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.JDialog; import javax.swing.JEditorPane; import javax.swing.JOptionPane; import javax.swing.border.TitledBorder; @@ -44,7 +43,6 @@ import forge.deck.DeckBase; import forge.deck.DeckRecognizer; import forge.deck.DeckRecognizer.TokenType; import forge.deck.DeckSection; -import forge.gui.GuiUtils; import forge.gui.deckeditor.controllers.ACEditorBase; import forge.gui.toolbox.FButton; import forge.gui.toolbox.FCheckBox; @@ -55,6 +53,7 @@ import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FTextArea; import forge.item.PaperCard; import forge.item.InventoryItem; +import forge.view.FDialog; /** * @@ -63,7 +62,7 @@ import forge.item.InventoryItem; * @param * @param */ -public class DeckImport extends JDialog { +public class DeckImport extends FDialog { private static final long serialVersionUID = -5837776824284093004L; private final FTextArea txtInput = new FTextArea(); @@ -122,7 +121,6 @@ public class DeckImport ex this.setPreferredSize(new java.awt.Dimension(wWidth, wHeight)); this.setSize(wWidth, wHeight); - GuiUtils.centerFrame(this); this.setResizable(false); this.setTitle("Deck Importer"); @@ -179,7 +177,7 @@ public class DeckImport ex DeckImport.this.processWindowEvent(new WindowEvent(DeckImport.this, WindowEvent.WINDOW_CLOSING)); } }); - + ActionListener updateDateCheck = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/src/main/java/forge/gui/match/VAssignDamage.java b/src/main/java/forge/gui/match/VAssignDamage.java index b6dbf45811e..788a0142064 100644 --- a/src/main/java/forge/gui/match/VAssignDamage.java +++ b/src/main/java/forge/gui/match/VAssignDamage.java @@ -28,11 +28,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; + import net.miginfocom.swing.MigLayout; import forge.Card; import forge.CounterType; @@ -44,6 +44,7 @@ import forge.gui.toolbox.FButton; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; +import forge.view.FDialog; import forge.view.arcane.CardPanel; /** @@ -59,7 +60,7 @@ public class VAssignDamage { // Width and height of blocker dialog private final int wDlg = 700; private final int hDlg = 500; - private final JDialog dlg = new JDialog(); + private final FDialog dlg = new FDialog(); // Damage storage private final int totalDamageToAssign; diff --git a/src/main/java/forge/view/FDialog.java b/src/main/java/forge/view/FDialog.java new file mode 100644 index 00000000000..7444d31412f --- /dev/null +++ b/src/main/java/forge/view/FDialog.java @@ -0,0 +1,24 @@ +package forge.view; + +import javax.swing.JDialog; +import javax.swing.JOptionPane; + +@SuppressWarnings("serial") +public class FDialog extends JDialog { + + public FDialog() { + this(true); + } + + public FDialog(boolean modal0) { + super(JOptionPane.getRootFrame(), modal0); + } + + @Override + public void setVisible(boolean visible) { + if (visible) { + setLocationRelativeTo(JOptionPane.getRootFrame()); + } + super.setVisible(visible); + } +} \ No newline at end of file