diff --git a/Mage.Client/config/config.properties b/Mage.Client/config/config.properties
index 6b7d7172d4..f292f0f5b7 100644
--- a/Mage.Client/config/config.properties
+++ b/Mage.Client/config/config.properties
@@ -8,6 +8,7 @@ resource-path=/home/loki/.wine/drive_c/Program Files/Wizards of the Coast/Magic
#symbols-resource-path=resources/images/symbols/
#resource-path=resources/images/
card-scaling-factor=0.4
+hand-scaling-factor=1.3
# parameters for debugging and testing faster
default-deck-path=C:\\Users\\836D~1\\AppData\\Local\\Temp\\tempDeck1577fd51-f098-420e-8794-c22d2c0602d99142449166006085381.dck
diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java
index 2b5aa4e61f..45447490b8 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.java
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.java
@@ -761,7 +761,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}//GEN-LAST:event_btnCollectionViewerActionPerformed
private void btnPreferencesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPreferencesActionPerformed
- PhasesDialog.main(new String[]{});
+ //PhasesDialog.main(new String[]{});
+ PreferencesDialog.main(new String[]{});
}//GEN-LAST:event_btnPreferencesActionPerformed
public void exitApp() {
diff --git a/Mage.Client/src/main/java/mage/client/cards/Cards.java b/Mage.Client/src/main/java/mage/client/cards/Cards.java
index aea684f6d0..158a5e7f8e 100644
--- a/Mage.Client/src/main/java/mage/client/cards/Cards.java
+++ b/Mage.Client/src/main/java/mage/client/cards/Cards.java
@@ -152,7 +152,7 @@ public class Cards extends javax.swing.JPanel {
if (!isVisibleIfEmpty) {
cardArea.setVisible(cards.size() > 0);
}
- cardArea.setPreferredSize(new Dimension(cards.size() * (Config.dimensions.frameWidth + GAP_X), Config.dimensions.frameHeight));
+ cardArea.setPreferredSize(new Dimension((int)(cards.size() * (getCardDimension().getWidth() + GAP_X)), (int)(getCardDimension().getHeight())));
cardArea.revalidate();
cardArea.repaint();
this.revalidate();
diff --git a/Mage.Client/src/main/java/mage/client/dialog/PhasesDialog.form b/Mage.Client/src/main/java/mage/client/dialog/PhasesDialog.form
deleted file mode 100644
index 8142255e76..0000000000
--- a/Mage.Client/src/main/java/mage/client/dialog/PhasesDialog.form
+++ /dev/null
@@ -1,326 +0,0 @@
-
-
diff --git a/Mage.Client/src/main/java/mage/client/dialog/PhasesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PhasesDialog.java
deleted file mode 100644
index a64f238046..0000000000
--- a/Mage.Client/src/main/java/mage/client/dialog/PhasesDialog.java
+++ /dev/null
@@ -1,265 +0,0 @@
-package mage.client.dialog;
-
-import com.intellij.uiDesigner.core.GridConstraints;
-import com.intellij.uiDesigner.core.GridLayoutManager;
-import com.jgoodies.forms.layout.CellConstraints;
-import com.jgoodies.forms.layout.FormLayout;
-import mage.client.MageFrame;
-
-import static mage.client.util.PhaseManager.*;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.prefs.BackingStoreException;
-import java.util.prefs.Preferences;
-
-/**
- * Created by IntelliJ IDEA.
- * User: Administrator
- * Date: 12.12.10
- * Time: 13:48
- * To change this template use File | Settings | File Templates.
- */
-public class PhasesDialog {
- private JPanel panel1;
- private JCheckBox checkBoxUpkeepYou;
- private JCheckBox checkBoxUpkeepOthers;
- private JCheckBox checkBoxDrawYou;
- private JCheckBox checkBoxMainYou;
- private JCheckBox checkBoxBeforeCYou;
- private JCheckBox checkBoxEndCYou;
- private JCheckBox checkBoxMain2You;
- private JCheckBox checkBoxEndTurnYou;
- private JCheckBox checkBoxDrawOthers;
- private JCheckBox checkBoxMainOthers;
- private JCheckBox checkBoxBeforeCOthers;
- private JCheckBox checkBoxEndCOthers;
- private JCheckBox checkBoxMain2Others;
- private JCheckBox checkBoxEndTurnOthers;
- private JButton OKButton;
- private JButton cancelButton;
-
- private static final JFrame fInstance = new JFrame("PhasesDialog");
- private static final PhasesDialog dialog = new PhasesDialog();
-
- static {
- fInstance.setContentPane(dialog.panel1);
- fInstance.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
- fInstance.setLocation(300, 200);
- fInstance.setResizable(false);
- fInstance.setTitle("Configure phase stops");
- fInstance.pack();
- }
-
- public static void main(String[] args) {
- if (!fInstance.isVisible()) {
- Preferences prefs = MageFrame.getPreferences();
- load(prefs, dialog.checkBoxUpkeepYou, UPKEEP_YOU);
- load(prefs, dialog.checkBoxDrawYou, DRAW_YOU);
- load(prefs, dialog.checkBoxMainYou, MAIN_YOU);
- load(prefs, dialog.checkBoxBeforeCYou, BEFORE_COMBAT_YOU);
- load(prefs, dialog.checkBoxEndCYou, END_OF_COMBAT_YOU);
- load(prefs, dialog.checkBoxMain2You, MAIN_2_YOU);
- load(prefs, dialog.checkBoxEndTurnYou, END_OF_TURN_YOU);
-
- load(prefs, dialog.checkBoxUpkeepOthers, UPKEEP_OTHERS);
- load(prefs, dialog.checkBoxDrawOthers, DRAW_OTHERS);
- load(prefs, dialog.checkBoxMainOthers, MAIN_OTHERS);
- load(prefs, dialog.checkBoxBeforeCOthers, BEFORE_COMBAT_OTHERS);
- load(prefs, dialog.checkBoxEndCOthers, END_OF_COMBAT_OTHERS);
- load(prefs, dialog.checkBoxMain2Others, MAIN_2_OTHERS);
- load(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS);
- fInstance.setVisible(true);
- } else {
- fInstance.requestFocus();
- }
- }
-
- private static void load(Preferences prefs, JCheckBox checkBox, String propName) {
- String prop = prefs.get(propName, PHASE_ON);
- checkBox.setSelected(prop.equals(PHASE_ON));
- }
-
- private static void save(Preferences prefs, JCheckBox checkBox, String propName) {
- prefs.put(propName, checkBox.isSelected() ? PHASE_ON : PHASE_OFF);
- }
-
- public PhasesDialog() {
- OKButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- Preferences prefs = MageFrame.getPreferences();
- save(prefs, dialog.checkBoxUpkeepYou, "upkeepYou");
- save(prefs, dialog.checkBoxDrawYou, "drawYou");
- save(prefs, dialog.checkBoxMainYou, "mainYou");
- save(prefs, dialog.checkBoxBeforeCYou, "beforeCombatYou");
- save(prefs, dialog.checkBoxEndCYou, "endOfCombatYou");
- save(prefs, dialog.checkBoxMain2You, "main2You");
- save(prefs, dialog.checkBoxEndTurnYou, "endOfTurnYou");
-
- save(prefs, dialog.checkBoxUpkeepOthers, UPKEEP_OTHERS);
- save(prefs, dialog.checkBoxDrawOthers, DRAW_OTHERS);
- save(prefs, dialog.checkBoxMainOthers, MAIN_OTHERS);
- save(prefs, dialog.checkBoxBeforeCOthers, BEFORE_COMBAT_OTHERS);
- save(prefs, dialog.checkBoxEndCOthers, END_OF_COMBAT_OTHERS);
- save(prefs, dialog.checkBoxMain2Others, MAIN_2_OTHERS);
- save(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS);
- try {
- prefs.flush();
- } catch (BackingStoreException ex) {
- ex.printStackTrace();
- JOptionPane.showMessageDialog(null, "Error: couldn't save phase stops. Please try again.");
- }
- fInstance.setVisible(false);
- }
- });
- cancelButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- fInstance.setVisible(false);
- }
- });
- }
-
- {
-// GUI initializer generated by IntelliJ IDEA GUI Designer
-// >>> IMPORTANT!! <<<
-// DO NOT EDIT OR ADD ANY CODE HERE!
- $$$setupUI$$$();
- }
-
- /**
- * Method generated by IntelliJ IDEA GUI Designer
- * >>> IMPORTANT!! <<<
- * DO NOT edit this method OR call it in your code!
- *
- * @noinspection ALL
- */
- private void $$$setupUI$$$() {
- panel1 = new JPanel();
- panel1.setLayout(new FormLayout("fill:324px:noGrow", "center:d:noGrow,top:4dlu:noGrow,center:258px:noGrow,top:4dlu:noGrow,center:max(d;4px):noGrow"));
- panel1.setPreferredSize(new Dimension(324, 324));
- final JLabel label1 = new JLabel();
- label1.setMaximumSize(new Dimension(88, 20));
- label1.setMinimumSize(new Dimension(88, 20));
- label1.setPreferredSize(new Dimension(88, 20));
- label1.setText("Stop on (yes/no)");
- CellConstraints cc = new CellConstraints();
- panel1.add(label1, new CellConstraints(1, 1, 1, 1, CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(5, 10, 0, 0)));
- final JPanel panel2 = new JPanel();
- panel2.setLayout(new GridLayoutManager(8, 3, new Insets(0, 0, 0, 0), -1, -1));
- panel2.setMinimumSize(new Dimension(0, 0));
- panel2.setPreferredSize(new Dimension(300, 250));
- panel1.add(panel2, new CellConstraints(1, 3, 1, 1, CellConstraints.LEFT, CellConstraints.TOP, new Insets(0, 18, 0, 0)));
- final JLabel label2 = new JLabel();
- label2.setText("Upkeep:");
- panel2.add(label2, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- final JLabel label3 = new JLabel();
- label3.setText("Draw:");
- panel2.add(label3, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- final JLabel label4 = new JLabel();
- label4.setText("Main:");
- panel2.add(label4, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- final JLabel label5 = new JLabel();
- label5.setText("Before combat:");
- panel2.add(label5, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- final JLabel label6 = new JLabel();
- label6.setText("End of combat:");
- panel2.add(label6, new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- final JLabel label7 = new JLabel();
- label7.setText("Main 2:");
- panel2.add(label7, new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- final JLabel label8 = new JLabel();
- label8.setText("End of turn:");
- panel2.add(label8, new GridConstraints(7, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 16), null, 0, false));
- checkBoxUpkeepYou = new JCheckBox();
- checkBoxUpkeepYou.setSelected(true);
- checkBoxUpkeepYou.setText("");
- panel2.add(checkBoxUpkeepYou, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxDrawYou = new JCheckBox();
- checkBoxDrawYou.setSelected(true);
- checkBoxDrawYou.setText("");
- panel2.add(checkBoxDrawYou, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxMainYou = new JCheckBox();
- checkBoxMainYou.setSelected(true);
- checkBoxMainYou.setText("");
- panel2.add(checkBoxMainYou, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxBeforeCYou = new JCheckBox();
- checkBoxBeforeCYou.setSelected(true);
- checkBoxBeforeCYou.setText("");
- panel2.add(checkBoxBeforeCYou, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxEndCYou = new JCheckBox();
- checkBoxEndCYou.setSelected(true);
- checkBoxEndCYou.setText("");
- panel2.add(checkBoxEndCYou, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxMain2You = new JCheckBox();
- checkBoxMain2You.setSelected(true);
- checkBoxMain2You.setText("");
- panel2.add(checkBoxMain2You, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxEndTurnYou = new JCheckBox();
- checkBoxEndTurnYou.setSelected(true);
- checkBoxEndTurnYou.setText("");
- panel2.add(checkBoxEndTurnYou, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxUpkeepOthers = new JCheckBox();
- checkBoxUpkeepOthers.setSelected(true);
- checkBoxUpkeepOthers.setText("");
- panel2.add(checkBoxUpkeepOthers, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxDrawOthers = new JCheckBox();
- checkBoxDrawOthers.setSelected(true);
- checkBoxDrawOthers.setText("");
- panel2.add(checkBoxDrawOthers, new GridConstraints(2, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxMainOthers = new JCheckBox();
- checkBoxMainOthers.setSelected(true);
- checkBoxMainOthers.setText("");
- panel2.add(checkBoxMainOthers, new GridConstraints(3, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxBeforeCOthers = new JCheckBox();
- checkBoxBeforeCOthers.setSelected(true);
- checkBoxBeforeCOthers.setText("");
- panel2.add(checkBoxBeforeCOthers, new GridConstraints(4, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxEndCOthers = new JCheckBox();
- checkBoxEndCOthers.setSelected(true);
- checkBoxEndCOthers.setText("");
- panel2.add(checkBoxEndCOthers, new GridConstraints(5, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxMain2Others = new JCheckBox();
- checkBoxMain2Others.setSelected(true);
- checkBoxMain2Others.setText("");
- panel2.add(checkBoxMain2Others, new GridConstraints(6, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- checkBoxEndTurnOthers = new JCheckBox();
- checkBoxEndTurnOthers.setSelected(true);
- checkBoxEndTurnOthers.setText("");
- panel2.add(checkBoxEndTurnOthers, new GridConstraints(7, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(10, 21), null, 0, false));
- final JLabel label9 = new JLabel();
- label9.setText("");
- panel2.add(label9, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(107, 0), null, 0, false));
- final JLabel label10 = new JLabel();
- label10.setHorizontalTextPosition(0);
- label10.setText("Your turn");
- panel2.add(label10, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(61, 16), null, 0, false));
- final JLabel label11 = new JLabel();
- label11.setHorizontalTextPosition(0);
- label11.setText("Others turn");
- panel2.add(label11, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(61, 16), null, 0, false));
- final JPanel panel3 = new JPanel();
- panel3.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));
- panel1.add(panel3, cc.xy(1, 5));
- OKButton = new JButton();
- OKButton.setInheritsPopupMenu(true);
- OKButton.setLabel("Save");
- OKButton.setText("Save");
- panel3.add(OKButton);
- cancelButton = new JButton();
- cancelButton.setText("Cancel");
- cancelButton.setMnemonic('C');
- cancelButton.setDisplayedMnemonicIndex(0);
- panel3.add(cancelButton);
- }
-
- /**
- * @noinspection ALL
- */
- public JComponent $$$getRootComponent$$$() {
- return panel1;
- }
-}
diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form
new file mode 100644
index 0000000000..771df998b4
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.form
@@ -0,0 +1,385 @@
+
+
+
diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java
new file mode 100644
index 0000000000..b59bbc827c
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java
@@ -0,0 +1,463 @@
+/*
+* Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without modification, are
+* permitted provided that the following conditions are met:
+*
+* 1. Redistributions of source code must retain the above copyright notice, this list of
+* conditions and the following disclaimer.
+*
+* 2. Redistributions in binary form must reproduce the above copyright notice, this list
+* of conditions and the following disclaimer in the documentation and/or other materials
+* provided with the distribution.
+*
+* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+* The views and conclusions contained in the software and documentation are those of the
+* authors and should not be interpreted as representing official policies, either expressed
+* or implied, of BetaSteward_at_googlemail.com.
+*/
+
+/*
+ * PreferencesDialog.java
+ *
+ * Created on 26.06.2011, 16:35:40
+ */
+package mage.client.dialog;
+
+import java.util.prefs.BackingStoreException;
+import mage.client.MageFrame;
+
+import javax.swing.*;
+import java.util.prefs.Preferences;
+
+import static mage.client.util.PhaseManager.*;
+import static mage.client.util.PhaseManager.END_OF_TURN_OTHERS;
+
+/**
+ * Preferences dialog.
+ *
+ * @author nantuko
+ */
+public class PreferencesDialog extends javax.swing.JDialog {
+
+ public static final String KEY_HAND_USE_BIG_CARDS = "handUseBigCards";
+
+ /** Creates new form PreferencesDialog */
+ public PreferencesDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jTabbedPane1 = new javax.swing.JTabbedPane();
+ jPanel1 = new javax.swing.JPanel();
+ jPanel3 = new javax.swing.JPanel();
+ showToolTipsInHand = new javax.swing.JCheckBox();
+ displayBigCardsInHand = new javax.swing.JCheckBox();
+ jPanel2 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jLabel2 = new javax.swing.JLabel();
+ jLabel3 = new javax.swing.JLabel();
+ jLabel4 = new javax.swing.JLabel();
+ jLabel5 = new javax.swing.JLabel();
+ jLabel6 = new javax.swing.JLabel();
+ jLabel7 = new javax.swing.JLabel();
+ jLabel8 = new javax.swing.JLabel();
+ jLabel9 = new javax.swing.JLabel();
+ jLabel10 = new javax.swing.JLabel();
+ checkBoxUpkeepYou = new javax.swing.JCheckBox();
+ checkBoxDrawYou = new javax.swing.JCheckBox();
+ checkBoxMainYou = new javax.swing.JCheckBox();
+ checkBoxBeforeCYou = new javax.swing.JCheckBox();
+ checkBoxEndOfCYou = new javax.swing.JCheckBox();
+ checkBoxMain2You = new javax.swing.JCheckBox();
+ checkBoxEndTurnYou = new javax.swing.JCheckBox();
+ checkBoxUpkeepOthers = new javax.swing.JCheckBox();
+ checkBoxDrawOthers = new javax.swing.JCheckBox();
+ checkBoxMainOthers = new javax.swing.JCheckBox();
+ checkBoxBeforeCOthers = new javax.swing.JCheckBox();
+ checkBoxEndOfCOthers = new javax.swing.JCheckBox();
+ checkBoxMain2Others = new javax.swing.JCheckBox();
+ checkBoxEndTurnOthers = new javax.swing.JCheckBox();
+ saveButton = new javax.swing.JButton();
+ exitButton = new javax.swing.JButton();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setTitle("Preferences");
+
+ jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Hand"));
+
+ showToolTipsInHand.setSelected(true);
+ showToolTipsInHand.setText("Show tooltips");
+ showToolTipsInHand.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ showToolTipsInHandActionPerformed(evt);
+ }
+ });
+
+ displayBigCardsInHand.setText("Use big images (for high resolution screens)");
+ displayBigCardsInHand.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ displayBigCardsInHandActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
+ jPanel3.setLayout(jPanel3Layout);
+ jPanel3Layout.setHorizontalGroup(
+ jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(showToolTipsInHand)
+ .addComponent(displayBigCardsInHand))
+ .addContainerGap(170, Short.MAX_VALUE))
+ );
+ jPanel3Layout.setVerticalGroup(
+ jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel3Layout.createSequentialGroup()
+ .addComponent(showToolTipsInHand)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(displayBigCardsInHand)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(173, Short.MAX_VALUE))
+ );
+
+ jTabbedPane1.addTab("Main", jPanel1);
+
+ jLabel1.setText("Choose phases MAGE will stop on:");
+
+ jLabel2.setText("Upkeep:");
+
+ jLabel3.setText("Draw:");
+
+ jLabel4.setText("Main:");
+
+ jLabel5.setText("Before combat:");
+
+ jLabel6.setText("End of combat:");
+
+ jLabel7.setText("Main 2:");
+
+ jLabel8.setText("End of turn:");
+
+ jLabel9.setText("Your turn");
+
+ jLabel10.setText("Opponent(s) turn");
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGap(20, 20, 20)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel2)
+ .addComponent(jLabel5)
+ .addComponent(jLabel6)
+ .addComponent(jLabel7)
+ .addComponent(jLabel8))
+ .addGap(77, 77, 77)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGap(2, 2, 2)
+ .addComponent(jLabel9)
+ .addGap(32, 32, 32)
+ .addComponent(jLabel10))
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGap(13, 13, 13)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(checkBoxDrawYou)
+ .addComponent(checkBoxUpkeepYou)
+ .addComponent(checkBoxMainYou)
+ .addComponent(checkBoxBeforeCYou)
+ .addComponent(checkBoxEndOfCYou)
+ .addComponent(checkBoxMain2You)
+ .addComponent(checkBoxEndTurnYou))
+ .addGap(78, 78, 78)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(checkBoxUpkeepOthers)
+ .addComponent(checkBoxBeforeCOthers)
+ .addComponent(checkBoxMainOthers)
+ .addComponent(checkBoxEndOfCOthers)
+ .addComponent(checkBoxDrawOthers)
+ .addComponent(checkBoxMain2Others)
+ .addComponent(checkBoxEndTurnOthers)))))
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabel1)))
+ .addContainerGap(109, Short.MAX_VALUE))
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addComponent(jLabel10)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(checkBoxUpkeepOthers))
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addComponent(jLabel1)
+ .addGap(20, 20, 20))
+ .addComponent(jLabel9))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(checkBoxUpkeepYou)
+ .addComponent(jLabel2))))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel3)
+ .addComponent(checkBoxDrawYou)
+ .addComponent(checkBoxDrawOthers))
+ .addGap(4, 4, 4)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel4)
+ .addComponent(checkBoxMainYou)
+ .addComponent(checkBoxMainOthers))
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(checkBoxBeforeCYou, javax.swing.GroupLayout.Alignment.TRAILING)))
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGap(6, 6, 6)
+ .addComponent(checkBoxBeforeCOthers)))
+ .addGap(7, 7, 7)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel6)
+ .addComponent(checkBoxEndOfCYou)
+ .addComponent(checkBoxEndOfCOthers))
+ .addGap(9, 9, 9)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel7)
+ .addComponent(checkBoxMain2You)
+ .addComponent(checkBoxMain2Others))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(checkBoxEndTurnYou)
+ .addComponent(jLabel8)
+ .addComponent(checkBoxEndTurnOthers))
+ .addContainerGap(24, Short.MAX_VALUE))
+ );
+
+ jTabbedPane1.addTab("Phases", jPanel2);
+
+ saveButton.setLabel("Save");
+ saveButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ saveButtonActionPerformed(evt);
+ }
+ });
+
+ exitButton.setLabel("Exit");
+ exitButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ exitButtonActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap(320, Short.MAX_VALUE)
+ .addComponent(saveButton)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(exitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(exitButton)
+ .addComponent(saveButton))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
+ Preferences prefs = MageFrame.getPreferences();
+ save(prefs, dialog.checkBoxUpkeepYou, UPKEEP_YOU);
+ save(prefs, dialog.checkBoxDrawYou, DRAW_YOU);
+ save(prefs, dialog.checkBoxMainYou, MAIN_YOU);
+ save(prefs, dialog.checkBoxBeforeCYou, BEFORE_COMBAT_YOU);
+ save(prefs, dialog.checkBoxEndOfCYou, END_OF_COMBAT_YOU);
+ save(prefs, dialog.checkBoxMain2You, MAIN_2_YOU);
+ save(prefs, dialog.checkBoxEndTurnYou, END_OF_TURN_YOU);
+
+ save(prefs, dialog.checkBoxUpkeepOthers, UPKEEP_OTHERS);
+ save(prefs, dialog.checkBoxDrawOthers, DRAW_OTHERS);
+ save(prefs, dialog.checkBoxMainOthers, MAIN_OTHERS);
+ save(prefs, dialog.checkBoxBeforeCOthers, BEFORE_COMBAT_OTHERS);
+ save(prefs, dialog.checkBoxEndOfCOthers, END_OF_COMBAT_OTHERS);
+ save(prefs, dialog.checkBoxMain2Others, MAIN_2_OTHERS);
+ save(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS);
+ save(prefs, dialog.displayBigCardsInHand, KEY_HAND_USE_BIG_CARDS, "true", "false");
+ try {
+ prefs.flush();
+ } catch (BackingStoreException ex) {
+ ex.printStackTrace();
+ JOptionPane.showMessageDialog(null, "Error: couldn't save phase stops. Please try again.");
+ }
+ dialog.setVisible(false);
+ }//GEN-LAST:event_saveButtonActionPerformed
+
+ private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed
+ dialog.setVisible(false);
+ }//GEN-LAST:event_exitButtonActionPerformed
+
+ private void showToolTipsInHandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showToolTipsInHandActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_showToolTipsInHandActionPerformed
+
+ private void displayBigCardsInHandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_displayBigCardsInHandActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_displayBigCardsInHandActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ if (!dialog.isVisible()) {
+ Preferences prefs = MageFrame.getPreferences();
+ load(prefs, dialog.checkBoxUpkeepYou, UPKEEP_YOU);
+ load(prefs, dialog.checkBoxDrawYou, DRAW_YOU);
+ load(prefs, dialog.checkBoxMainYou, MAIN_YOU);
+ load(prefs, dialog.checkBoxBeforeCYou, BEFORE_COMBAT_YOU);
+ load(prefs, dialog.checkBoxEndOfCYou, END_OF_COMBAT_YOU);
+ load(prefs, dialog.checkBoxMain2You, MAIN_2_YOU);
+ load(prefs, dialog.checkBoxEndTurnYou, END_OF_TURN_YOU);
+
+ load(prefs, dialog.checkBoxUpkeepOthers, UPKEEP_OTHERS);
+ load(prefs, dialog.checkBoxDrawOthers, DRAW_OTHERS);
+ load(prefs, dialog.checkBoxMainOthers, MAIN_OTHERS);
+ load(prefs, dialog.checkBoxBeforeCOthers, BEFORE_COMBAT_OTHERS);
+ load(prefs, dialog.checkBoxEndOfCOthers, END_OF_COMBAT_OTHERS);
+ load(prefs, dialog.checkBoxMain2Others, MAIN_2_OTHERS);
+ load(prefs, dialog.checkBoxEndTurnOthers, END_OF_TURN_OTHERS);
+ load(prefs, dialog.displayBigCardsInHand, KEY_HAND_USE_BIG_CARDS, "true");
+ dialog.setLocation(300, 200);
+ dialog.reset();
+ dialog.setVisible(true);
+ } else {
+ dialog.requestFocus();
+ }
+ }
+ });
+ }
+
+ private static void load(Preferences prefs, JCheckBox checkBox, String propName, String yesValue) {
+ String prop = prefs.get(propName, yesValue);
+ checkBox.setSelected(prop.equals(yesValue));
+ }
+
+ private static void load(Preferences prefs, JCheckBox checkBox, String propName) {
+ load(prefs, checkBox, propName, PHASE_ON);
+ }
+
+ private static void save(Preferences prefs, JCheckBox checkBox, String propName) {
+ save(prefs, checkBox, propName, PHASE_ON, PHASE_OFF);
+ }
+
+ private static void save(Preferences prefs, JCheckBox checkBox, String propName, String yesValue, String onValue) {
+ prefs.put(propName, checkBox.isSelected() ? yesValue : onValue);
+ }
+
+ public void reset() {
+ jTabbedPane1.setSelectedIndex(0);
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JCheckBox checkBoxBeforeCOthers;
+ private javax.swing.JCheckBox checkBoxBeforeCYou;
+ private javax.swing.JCheckBox checkBoxDrawOthers;
+ private javax.swing.JCheckBox checkBoxDrawYou;
+ private javax.swing.JCheckBox checkBoxEndOfCOthers;
+ private javax.swing.JCheckBox checkBoxEndOfCYou;
+ private javax.swing.JCheckBox checkBoxEndTurnOthers;
+ private javax.swing.JCheckBox checkBoxEndTurnYou;
+ private javax.swing.JCheckBox checkBoxMain2Others;
+ private javax.swing.JCheckBox checkBoxMain2You;
+ private javax.swing.JCheckBox checkBoxMainOthers;
+ private javax.swing.JCheckBox checkBoxMainYou;
+ private javax.swing.JCheckBox checkBoxUpkeepOthers;
+ private javax.swing.JCheckBox checkBoxUpkeepYou;
+ private javax.swing.JCheckBox displayBigCardsInHand;
+ private javax.swing.JButton exitButton;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JLabel jLabel7;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JLabel jLabel9;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JTabbedPane jTabbedPane1;
+ private javax.swing.JButton saveButton;
+ private javax.swing.JCheckBox showToolTipsInHand;
+ // End of variables declaration//GEN-END:variables
+
+ private static final PreferencesDialog dialog = new PreferencesDialog(new javax.swing.JFrame(), true);
+
+ static {
+ dialog.setResizable(false);
+ }
+}
diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
index 3257fc2e2c..fa4cd73bed 100644
--- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
@@ -42,6 +42,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import java.util.prefs.Preferences;
import javax.swing.*;
import javax.swing.border.Border;
@@ -52,11 +53,7 @@ import mage.Constants;
import mage.client.MageFrame;
import mage.client.cards.Cards;
import mage.client.chat.ChatPanel;
-import mage.client.dialog.CombatDialog;
-import mage.client.dialog.ExileZoneDialog;
-import mage.client.dialog.PickChoiceDialog;
-import mage.client.dialog.PickNumberDialog;
-import mage.client.dialog.ShowCardsDialog;
+import mage.client.dialog.*;
import mage.client.game.FeedbackPanel.FeedbackMode;
import mage.client.plugins.impl.Plugins;
import mage.remote.Session;
@@ -84,7 +81,17 @@ public class GamePanel extends javax.swing.JPanel {
private CombatDialog combat;
private PickNumberDialog pickNumber;
- private static final Dimension handCardDimension = new Dimension(75, (int)(75 * 3.5f / 2.5f));
+ private static final int HAND_CARD_WIDTH = 75;
+ private static final Dimension handCardDimension = new Dimension(HAND_CARD_WIDTH, (int)(HAND_CARD_WIDTH * 3.5f / 2.5f));
+ private static final Dimension handCardDimensionBig;
+
+ static {
+ double factor = Config.handScalingFactor;
+ if (factor < 1) factor = 1;
+ if (factor > 2) factor = 2;
+ int width = (int)(factor * HAND_CARD_WIDTH);
+ handCardDimensionBig = new Dimension(width, (int)(width * 3.5f / 2.5f));
+ }
/** Creates new form GamePanel */
public GamePanel() {
@@ -293,7 +300,7 @@ public class GamePanel extends javax.swing.JPanel {
} else {
this.hand.loadCards(game.getHand(), bigCard, gameId);
int count = game.getHand().size();
- hand.setPreferredSize(new java.awt.Dimension((handCardDimension.width + 5) * count + 5, handCardDimension.height + 20)); // for scroll
+ hand.setPreferredSize(new java.awt.Dimension((getHandCardDimension().width + 5) * count + 5, getHandCardDimension().height + 20)); // for scroll
}
if (game.getPhase() != null)
this.txtPhase.setText(game.getPhase().toString());
@@ -535,7 +542,7 @@ public class GamePanel extends javax.swing.JPanel {
gameChatPanel.disableInput();
jTabbedPane1 = new JTabbedPane();
- hand.setCardDimension(handCardDimension);
+ hand.setCardDimension(getHandCardDimension());
jSplitPane1.setBorder(null);
jSplitPane1.setDividerSize(7);
@@ -834,6 +841,15 @@ public class GamePanel extends javax.swing.JPanel {
session.previousPlay(gameId);
}//GEN-LAST:event_btnPreviousPlayActionPerformed
+ private Dimension getHandCardDimension() {
+ Preferences pref = MageFrame.getPreferences();
+ String useBigCards = pref.get(PreferencesDialog.KEY_HAND_USE_BIG_CARDS, "false");
+ if (useBigCards.equals("true")) {
+ return handCardDimensionBig;
+ }
+ return handCardDimension;
+ }
+
private class HandContainer extends JPanel {
public HandContainer(Cards hand) {
diff --git a/Mage.Client/src/main/java/mage/client/util/Config.java b/Mage.Client/src/main/java/mage/client/util/Config.java
index c4b60cc23c..9c7f409e08 100644
--- a/Mage.Client/src/main/java/mage/client/util/Config.java
+++ b/Mage.Client/src/main/java/mage/client/util/Config.java
@@ -48,6 +48,7 @@ public class Config {
public static final String serverName;
public static final int port;
public static final double cardScalingFactor;
+ public static final double handScalingFactor;
public static final CardDimensions dimensions;
public static final String defaultGameType;
@@ -66,6 +67,7 @@ public class Config {
port = Integer.parseInt(p.getProperty("port"));
remoteServer = p.getProperty("remote-server");
cardScalingFactor = Double.valueOf(p.getProperty("card-scaling-factor"));
+ handScalingFactor = Double.valueOf(p.getProperty("hand-scaling-factor"));
defaultGameType = p.getProperty("default-game-type", "Human");
defaultDeckPath = p.getProperty("default-deck-path");
defaultOtherPlayerIndex = p.getProperty("default-other-player-index");