diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml
index fdcb8d17360..1d66bf123db 100644
--- a/Mage.Client/pom.xml
+++ b/Mage.Client/pom.xml
@@ -102,6 +102,11 @@
beansbinding
1.2.1
+
+ org.swinglabs
+ swing-layout
+ 1.0.3
+
diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java
index 45447490b8c..58f4cc17179 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.java
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.java
@@ -47,6 +47,7 @@ import mage.client.deckeditor.collection.viewer.CollectionViewerPane;
import mage.client.dialog.*;
import mage.client.plugins.impl.Plugins;
import mage.client.util.EDTExceptionHandler;
+import mage.client.util.SettingsManager;
import mage.client.util.gui.ArrowBuilder;
import mage.components.ImagePanel;
@@ -173,6 +174,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
initComponents();
setSize(1024, 768);
+ SettingsManager.getInstance().setScreenWidthAndHeight(1024, 768);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
session = new Session(this);
@@ -199,11 +201,6 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
addMageLabel();
setAppIcon();
- //PlayerPanelNew n = new PlayerPanelNew();
- //n.setBounds(100,100,100,300);
- //n.setVisible(true);
- //backgroundPane.add(n);
-
desktopPane.add(ArrowBuilder.getArrowsPanel(), JLayeredPane.DRAG_LAYER);
desktopPane.addComponentListener(new ComponentAdapter() {
@@ -211,12 +208,13 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
public void componentResized(ComponentEvent e) {
int width = ((JComponent) e.getSource()).getWidth();
int height = ((JComponent) e.getSource()).getHeight();
- if (!liteMode)
+ SettingsManager.getInstance().setScreenWidthAndHeight(width, height);
+ if (!liteMode) {
backgroundPane.setSize(width, height);
+ }
JPanel arrowsPanel = ArrowBuilder.getArrowsPanelRef();
if (arrowsPanel != null) arrowsPanel.setSize(width, height);
if (title != null) {
- //title.setBorder(BorderFactory.createLineBorder(Color.red));
title.setBounds((int) (width - titleRectangle.getWidth()) / 2, (int) (height - titleRectangle.getHeight()) / 2, titleRectangle.width, titleRectangle.height);
}
}
diff --git a/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java b/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java
new file mode 100644
index 00000000000..5166c3088f8
--- /dev/null
+++ b/Mage.Client/src/main/java/mage/client/components/ability/AbilityPicker.java
@@ -0,0 +1,296 @@
+package mage.client.components.ability;
+
+import com.sun.deploy.util.ArrayUtil;
+import mage.client.MageFrame;
+import mage.client.util.ImageHelper;
+import mage.client.util.SettingsManager;
+import mage.client.util.gui.GuiDisplayUtil;
+import mage.remote.Session;
+import mage.view.AbilityPickerView;
+import org.jdesktop.layout.GroupLayout;
+import org.jdesktop.layout.LayoutStyle;
+import org.jdesktop.swingx.JXPanel;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.awt.image.BufferedImage;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * Dialog for choosing abilities.
+ *
+ * @author nantuko
+ */
+public class AbilityPicker extends JXPanel implements MouseWheelListener {
+
+ private static final String DEFAULT_MESSAGE = "Choose spell or ability to play (double-click)";;
+ private static final int DIALOG_WIDTH = 320;
+ private static final int DIALOG_HEIGHT = 240;
+
+ private JList rows;
+ private List